{"version":3,"sources":["src/app/reports/reports-type/reports-type.component.ts","src/app/reports/reports-type/reports-type.component.html","src/app/reports/reports-home/reports-home.component.ts","src/app/reports/reports-home/reports-home.component.html","src/app/reports/reports-bloodlead-screening/reports-bloodlead-screening.component.ts","src/app/reports/reports-bloodlead-screening/reports-bloodlead-screening.component.html","src/app/reports/reports-member-eligibility-roster/reports-member-eligibility-roster.component.ts","src/app/reports/reports-member-eligibility-roster/reports-member-eligibility-roster.component.html","src/app/reports/reports-pay-for-value/reports-pay-for-value.component.ts","src/app/reports/reports-pay-for-value/reports-pay-for-value.component.html","src/app/reports/reports-pcp-member-roster/reports-pcp-member-roster.component.ts","src/app/reports/reports-pcp-member-roster/reports-pcp-member-roster.component.html","src/app/reports/reports-pcp-attestation/pcp-attestation-member/pcp-attestation-member.component.ts","src/app/reports/reports-pcp-attestation/pcp-attestation-member/pcp-attestation-member.component.html","src/app/app-components/reports-member-search/reports-member-search.component.ts","src/app/app-components/reports-member-search/reports-member-search.component.html","src/app/reports/reports-pcp-attestation/pcp-attestation-provider/pcp-attestation-provider.component.ts","src/app/reports/reports-pcp-attestation/pcp-attestation-provider/pcp-attestation-provider.component.html","src/app/reports/reports-pcp-attestation/reports-pcp-attestation.component.ts","src/app/reports/reports-pcp-attestation/reports-pcp-attestation.component.html","src/app/reports/reports-dhcs-bloodlead-screening/reports-dhcs-bloodlead-screening.component.ts","src/app/reports/reports-dhcs-bloodlead-screening/reports-dhcs-bloodlead-screening.component.html","src/app/reports/reports-pay-for-value-manual/reports-pay-for-value-manual.component.ts","src/app/reports/reports-pay-for-value-manual/reports-pay-for-value-manual.component.html","src/app/reports/attestation/attestation-type/attestation-type.component.ts","src/app/reports/attestation/attestation-type/attestation-type.component.html","src/app/reports/attestation/attestation-home/attestation-home.component.ts","src/app/reports/attestation/attestation-home/attestation-home.component.html","src/app/services/models/attestationstatus.ts","src/app/reports/attestation/attestation-bloodlead-screening/attestation-dialog/attestation-dialog.component.ts","src/app/reports/attestation/attestation-bloodlead-screening/attestation-dialog/attestation-dialog.component.html","src/app/reports/attestation/attestation-bloodlead-screening/attestation-bloodlead-screening.component.ts","src/app/reports/attestation/attestation-bloodlead-screening/attestation-bloodlead-screening.component.html","src/app/reports/reports-BH-pay-for-value/reports-bh-pay-for-value.component.ts","src/app/reports/reports-BH-pay-for-value/reports-bh-pay-for-value.component.html","src/app/app-components/reports-tin-search/reports-tin-search.component.ts","src/app/app-components/reports-tin-search/reports-tin-search.component.html","src/app/reports/reports-awp/awp-member/awp-member.component.ts","src/app/reports/reports-awp/awp-member/awp-member.component.html","src/app/services/models/wellness-details.ts","src/app/reports/reports-awp/awp-dialogs/report-wellness-details-dialog/report-wellness-details-dialog.component.ts","src/app/reports/reports-awp/awp-dialogs/report-wellness-details-dialog/report-wellness-details-dialog.component.html","src/app/reports/reports-awp/awp-components/report-wellness-details/report-wellness-details.component.ts","src/app/reports/reports-awp/awp-components/report-wellness-details/report-wellness-details.component.html","src/app/reports/reports-awp/awp-components/report-wellness-attachments/report-wellness-attachments.component.ts","src/app/reports/reports-awp/awp-components/report-wellness-attachments/report-wellness-attachments.component.html","src/app/reports/reports-awp/awp-components/report-wellness-survey/report-wellness-survey.component.ts","src/app/reports/reports-awp/awp-components/report-wellness-survey/report-wellness-survey.component.html","src/app/reports/reports-awp/awp-dialogs/report-wellness-attachment-dialog/report-wellness-attachment-dialog.component.ts","src/app/reports/reports-awp/awp-dialogs/report-wellness-attachment-dialog/report-wellness-attachment-dialog.component.html","src/app/reports/reports-awp/awp-provider/awp-provider.component.ts","src/app/reports/reports-awp/awp-provider/awp-provider.component.html","src/app/reports/reports-awp/reports-awp.component.ts","src/app/reports/reports-awp/reports-awp.component.html","src/app/reports/reports-hif/hif-provider/hif-provider.component.ts","src/app/reports/reports-hif/hif-provider/hif-provider.component.html","src/app/reports/reports-hif/hif-member/hif-member.component.ts","src/app/reports/reports-hif/hif-member/hif-member.component.html","src/app/reports/reports-hif/reports-hif.component.ts","src/app/reports/reports-hif/reports-hif.component.html","src/app/reports/reports-pcp-member-iha/reports-pcp-member-iha.component.ts","src/app/reports/reports-pcp-member-iha/reports-pcp-member-iha.component.html","src/app/reports/reports-bhi/reports-bhi.component.ts","src/app/reports/reports-bhi/reports-bhi.component.html","src/app/reports/attestation/attestation-bhi/attestationbhi-dialog.component.ts","src/app/reports/attestation/attestation-bhi/attestationbhi-dialog.component.html","src/app/reports/reports-bhaba-referrals/reports-bhaba-referrals.component.ts","src/app/reports/reports-bhaba-referrals/reports-bhaba-referrals.component.html","node_modules/@angular/cdk/fesm2022/clipboard.mjs","src/app/reports/attestation/attestation-provider-training/attestation-provider-training-dialog/attestation-provider-training-dialog.component.ts","src/app/reports/attestation/attestation-provider-training/attestation-provider-training-dialog/attestation-provider-training-dialog.component.html","src/app/reports/attestation/attestation-provider-training/attestation-provider-training-annual/attestation-provider-training-annual.component.ts","src/app/reports/attestation/attestation-provider-training/attestation-provider-training-annual/attestation-provider-training-annual.component.html","src/app/reports/attestation/attestation-provider-training/attestation-provider-training-individual/attestation-provider-training-individual.component.ts","src/app/reports/attestation/attestation-provider-training/attestation-provider-training-individual/attestation-provider-training-individual.component.html","src/app/reports/attestation/attestation-provider-training/attestation-provider-training.component.ts","src/app/reports/attestation/attestation-provider-training/attestation-provider-training.component.html","src/app/reports/attestation/attestation-bh-aba-referrals/attestation-bh-aba-referrals-member/attestation-bh-aba-referrals-member.component.ts","src/app/reports/attestation/attestation-bh-aba-referrals/attestation-bh-aba-referrals-member/attestation-bh-aba-referrals-member.component.html","src/app/services/models/bh-aba-referral-attestation.ts","src/app/services/models/bh-aba-referral.ts","src/app/services/models/requests/resource-request.ts","src/app/services/resources.service.ts","node_modules/primeng/fesm2022/primeng-icons-minus.mjs","node_modules/primeng/fesm2022/primeng-panel.mjs","src/app/reports/attestation/attestation-bh-aba-referrals/attestation-bh-aba-referrals-dialog/attestation-bh-aba-referrals-dialog.component.ts","src/app/reports/attestation/attestation-bh-aba-referrals/attestation-bh-aba-referrals-dialog/attestation-bh-aba-referrals-dialog.component.html","src/app/reports/attestation/attestation-bh-aba-referrals/attestation-bh-aba-referrals-provider/attestation-bh-aba-referrals-provider.component.ts","src/app/reports/attestation/attestation-bh-aba-referrals/attestation-bh-aba-referrals-provider/attestation-bh-aba-referrals-provider.component.html","src/app/reports/attestation/attestation-bh-aba-referrals/attestation-bh-aba-referrals.component.ts","src/app/reports/attestation/attestation-bh-aba-referrals/attestation-bh-aba-referrals.component.html","src/app/reports/reports-pdc/pdc-health-network/pdc-health-network.component.ts","src/app/reports/reports-pdc/pdc-health-network/pdc-health-network.component.html","src/app/reports/reports-pdc/pdc-provider/pdc-provider.component.ts","src/app/reports/reports-pdc/pdc-provider/pdc-provider.component.html","src/app/reports/reports-pdc/pdc-provider-search/pdc-provider-search.component.ts","src/app/reports/reports-pdc/pdc-provider-search/pdc-provider-search.component.html","src/app/reports/reports-pdc/reports-pdc.component.ts","src/app/reports/reports-pdc/reports-pdc.component.html","src/app/reports/reports-provider-member-roster/reports-roster-provider/reports-roster-provider.component.ts","src/app/reports/reports-provider-member-roster/reports-roster-provider/reports-roster-provider.component.html","src/app/reports/reports-provider-member-roster/reports-roster-menu/reports-roster-menu.component.ts","src/app/reports/reports-provider-member-roster/reports-roster-menu/reports-roster-menu.component.html","src/app/reports/reports-provider-member-roster/reports-roster-member-dialog/reports-roster-member-dialog.component.ts","src/app/reports/reports-provider-member-roster/reports-roster-member-dialog/reports-roster-member-dialog.component.html","src/app/reports/reports-provider-member-roster/reports-roster-member/reports-roster-member.component.ts","src/app/reports/reports-provider-member-roster/reports-roster-member/reports-roster-member.component.html","src/app/reports/reports-provider-member-roster/reports-provider-member-roster.component.ts","src/app/reports/reports-provider-member-roster/reports-provider-member-roster.component.html","src/app/reports/reports-routing.ts","src/app/reports/reports.module.ts"],"sourcesContent":["\r\nimport { AfterViewInit, Component, Input, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { UiUtility } from '../../utils/ui-utility';\r\nimport { SessionService } from 'src/app/services/session.service';\r\nimport { UserPermission } from 'src/app/services/models/user-permission';\r\n\r\n@Component({\r\n selector: 'app-reports-type',\r\n templateUrl: './reports-type.component.html',\r\n styleUrls: ['./reports-type.component.scss']\r\n})\r\nexport class ReportsTypeComponent implements OnInit{\r\n private paramsviaState: any = null;\r\n private currentUserPermission: UserPermission;\r\n private isInternalUser: boolean = false;\r\n\r\n constructor(\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private sessionService: SessionService) \r\n { \r\n if(this.router.getCurrentNavigation() && this.router.getCurrentNavigation().extras && this.router.getCurrentNavigation().extras.state)\r\n this.paramsviaState = this.router.getCurrentNavigation().extras.state;\r\n }\r\n \r\n @Input() reportType: string;\r\n\r\n public get showDHCSBLS() : boolean{\r\n var lastdate = new Date(\"2023-08-01\").valueOf();\r\n var todayDate = Date.now().valueOf();\r\n \r\n return (todayDate < lastdate);\r\n }\r\n\r\n public get showPDC() : boolean {\r\n var result = (this.isInternalUser || !UiUtility.isNullUndefinedOrEmpty(this.currentUserPermission.healthNetworkPlanCodes));\r\n return result;\r\n }\r\n \r\n ngOnInit() {\r\n this.currentUserPermission = this.sessionService.currentPermission;\r\n this.isInternalUser = this.sessionService.isEnterpriseAdmin || this.sessionService.isEnterpriseUser;\r\n\r\n if(this.paramsviaState) {\r\n this.extractStateParam(this.paramsviaState);\r\n } \r\n else {\r\n this.route.params.subscribe(value => {\r\n // If suspenseID get user and assigne to selected user\r\n this.extractStateParam(value); \r\n }); \r\n }\r\n }\r\n\r\n public onChange() {\r\n this.router.navigate(['/reports/' + this.reportType]);\r\n }\r\n\r\n public redirectToAttestation() {\r\n this.router.navigate(['/reports/attestationhome'])\r\n }\r\n\r\n public onContinue(){\r\n \r\n }\r\n\r\n private extractStateParam(params) {\r\n if (params && params.rname) {\r\n const reportName = params.rname;\r\n if (!UiUtility.isNullOrUndefined(reportName)) {\r\n this.reportType = reportName;\r\n this.onChange();\r\n }\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n

Report Type:

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

Manage Attestation

\r\n
\r\n
\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-reports-home',\r\n templateUrl: './reports-home.component.html',\r\n styleUrls: ['./reports-home.component.scss']\r\n})\r\nexport class ReportsHomeComponent implements OnInit {\r\n\r\n constructor(\r\n ) { }\r\n\r\n ngOnInit() {\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\nLet's take a look at that report.\r\n
\r\n
\r\nSelect from the many report types provided via the select menu above.\r\n
\r\n
\r\n
\r\n","\r\nimport { Component, OnInit, Provider, Inject } from '@angular/core';\r\nimport { SelectItem } from 'primeng/api';\r\nimport { DropDownObject } from '../../services/models/drop-down-object.interface';\r\nimport { ProviderDetail, ProviderDetailWithAttestation } from '../../services/models/provider-detail';\r\nimport { ReportsService } from '../../services/reports.service';\r\nimport { SessionService } from '../../services/session.service';\r\nimport { saveAs } from 'file-saver';\r\nimport { DatePipe, DOCUMENT } from '@angular/common';\r\nimport { ReportType } from '../../services/models/reportype';\r\nimport { UserProfile } from '@caloptima/authentication';\r\nimport { UiUtility } from '../../utils/ui-utility';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-reports-bloodlead-screening',\r\n templateUrl: './reports-bloodlead-screening.component.html',\r\n styleUrls: ['./reports-bloodlead-screening.component.scss']\r\n})\r\n\r\nexport class ReportsBloodleadScreeningComponent implements OnInit {\r\n\r\n public userProfile: UserProfile;\r\n public providers:ProviderDetailWithAttestation[] = [];\r\n public displayProviders:ProviderDetailWithAttestation[] = [];\r\n public selectedCalProviderID: string;\r\n public selectedCalProvider: ProviderDetailWithAttestation;\r\n private sortColumn: string;\r\n private sortAscending: boolean;\r\n public totalRecords: number;\r\n public fileList: SelectItem[];\r\n public selectedFile: DropDownObject;\r\n public searchProviderId: string;\r\n public searchProviderName: string;\r\n\r\n constructor(\r\n private sessionService: SessionService,\r\n private reportsService: ReportsService,\r\n private datePipe: DatePipe,\r\n private router: Router,\r\n @Inject(DOCUMENT) private document: Document) {\r\n this.sortColumn = 'name';\r\n this.sortAscending = true;\r\n this.selectedFile = null;\r\n this.searchProviderId = '';\r\n this.searchProviderName = '';\r\n this.selectedCalProviderID = '';\r\n }\r\n\r\n ngOnInit() {\r\n\r\n if (!(this.sessionService.currentPermission.isEnterpriseAdmin || this.sessionService.currentPermission.isEnterpriseUser)) { \r\n this.reportsService.getProvidersWithAttestationForReports(this.sessionService.currentPermission.providerCollectionID, this.sessionService.currentPermission.collectionName, ReportType.BLS).subscribe(result=>{\r\n\r\n this.providers = result;\r\n\r\n this.totalRecords = this.providers.length;\r\n\r\n if(this.providers)\r\n this.displayProviders = this.providers.slice();\r\n\r\n let param: any = {\r\n \"field\": \"name\",\r\n \"order\": 1\r\n }\r\n this.onSort(param)\r\n });\r\n }\r\n }\r\n\r\n public sortClass(column: string): string {\r\n let cls: string;\r\n if (column == this.sortColumn) {\r\n cls = this.sortAscending ? \"fa fa-chevron-up\" : \"fa fa-chevron-down\";\r\n }\r\n else {\r\n cls = \"fa fa-chevron-up\";\r\n }\r\n return cls;\r\n }\r\n\r\n public onPage(e: any) {\r\n let s = JSON.stringify(e);\r\n }\r\n\r\n public onSort(e: any): void {\r\n this.providers.sort((data1, data2) => {\r\n let value1 = data1[e.field];\r\n let value2 = data2[e.field];\r\n let result = null;\r\n\r\n if (value1 == null && value2 != null)\r\n result = -1;\r\n else if (value1 != null && value2 == null)\r\n result = 1;\r\n else if (value1 == null && value2 == null)\r\n result = 0;\r\n else if (typeof value1 === 'string' && typeof value2 === 'string')\r\n result = value1.localeCompare(value2);\r\n else\r\n result = (value1 < value2) ? -1 : (value1 > value2) ? 1 : 0;\r\n\r\n return (e.order * result);\r\n });\r\n this.sortAscending = e.order == 1;\r\n this.sortColumn = e.field;\r\n }\r\n\r\n public onProviderSelected(provider: ProviderDetailWithAttestation): void {\r\n this.selectedCalProviderID = provider.calProviderID;\r\n this.selectedCalProvider = provider;\r\n\r\n this.fileList = [];\r\n this.selectedFile = null;\r\n\r\n this.reportsService.getReportFilesForProvider(this.selectedCalProviderID, ReportType.BLS).subscribe(result=>{\r\n result.forEach(x=>\r\n {\r\n this.fileList.push(\r\n {\r\n label: this.datePipe.transform(x.yearMonth, 'yyyy-MM'),\r\n value: x\r\n });\r\n });\r\n\r\n if(this.fileList.length > 0) {\r\n this.selectedFile = this.fileList[0].value;\r\n }\r\n\r\n UiUtility.scrollDown(this.document);\r\n });\r\n }\r\n\r\n public get displayText(): string {\r\n if(this.selectedCalProviderID) {\r\n\r\n let providerDetail: ProviderDetail = this.providers.find(x=> x.calProviderID === this.selectedCalProviderID);\r\n\r\n if(providerDetail) {\r\n let s = providerDetail.name;\r\n return s;\r\n }\r\n else {\r\n return \"\"\r\n }\r\n }\r\n else {\r\n return \"\";\r\n }\r\n }\r\n\r\n public get enableBuildReport() : boolean {\r\n\r\n return this.selectedCalProviderID !== '' && this.selectedFile !== null\r\n }\r\n\r\n public onBuildReport() : void {\r\n\r\n var temp:any = this.selectedFile;\r\n var fileName = temp.fileName;\r\n var filePath = temp.filePath;\r\n var fileType = filePath.split('.').pop();\r\n\r\n this.reportsService.downloadReportFileForProvider(this.selectedCalProviderID, fileName, ReportType.BLS).subscribe(result=>{\r\n this.saveAsFile(result, filePath, fileType);\r\n });\r\n }\r\n\r\n public get attestationMessage() : string {\r\n return \"Attestation Required! You will need to attest to having received and reviewed the Blood Lead Screening Report, go to Manage Attestation\"\r\n }\r\n\r\n private saveAsFile(buffer: any, fileName: string, fileType: string): void {\r\n const data: Blob = new Blob([buffer], { type: fileType });\r\n saveAs(data, fileName);\r\n }\r\n\r\n public get isAdminUser(): boolean {\r\n return (this.sessionService.currentPermission.isEnterpriseAdmin || this.sessionService.currentPermission.isEnterpriseUser);\r\n }\r\n\r\n public onSearch(search) : void {\r\n this.selectedCalProviderID = '';\r\n this.fileList = [];\r\n this.selectedFile = null;\r\n\r\n if (search && (search.providerName || search.providerId || search.providerTin)) {\r\n\r\n if(this.sessionService.currentPermission.isEnterpriseAdmin || this.sessionService.currentPermission.isEnterpriseUser) {\r\n this.reportsService.searchProvidersWithAttestationForReports(search.providerId, search.providerName, search.providerTin, ReportType.BLS).subscribe(result => {\r\n this.providers = result;\r\n this.displayProviders = this.providers.slice();\r\n });\r\n }\r\n else {\r\n if (!UiUtility.isNullUndefinedOrEmpty(search.providerName)) {\r\n this.displayProviders = this.providers\r\n .filter(p => p.name.toLowerCase().indexOf(search.providerName.trim().toLowerCase()) >= 0);\r\n }\r\n else if (!UiUtility.isNullUndefinedOrEmpty(search.providerId)) {\r\n this.displayProviders = this.providers\r\n .filter(p => p.calProviderID.toLowerCase().indexOf(search.providerId.trim().toLowerCase()) >= 0);\r\n }\r\n else if (!UiUtility.isNullUndefinedOrEmpty(search.providerTin)) {\r\n this.displayProviders = this.providers\r\n .filter(p => p.taxId.toLowerCase().indexOf(search.providerTin.trim().toLowerCase()) >= 0);\r\n } \r\n }\r\n }\r\n else {\r\n this.displayProviders = this.providers.slice();\r\n }\r\n }\r\n\r\n private scrollToNext() {\r\n let el = this.document.getElementsByClassName(\"page\");\r\n el[0].scrollTop = el[0].scrollHeight;\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 Name
\r\n Provider ID
\r\n Medical Group
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{row.name}}
\r\n \r\n \r\n
{{row.calProviderID}}
\r\n \r\n \r\n
{{row.groupName}}
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
0\">\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { CollectionService } from '../../services/collection.service';\r\nimport { ReportsService } from '../../services/reports.service';\r\nimport { SessionService } from '../../services/session.service';\r\nimport { saveAs } from 'file-saver';\r\n\r\n@Component({\r\n selector: 'app-reports-member-eligibility-roster',\r\n templateUrl: './reports-member-eligibility-roster.component.html',\r\n styleUrls: ['./reports-member-eligibility-roster.component.scss']\r\n})\r\nexport class ReportsMemberEligibilityRosterComponent implements OnInit {\r\n\r\n constructor(\r\n private sessionService: SessionService, \r\n private collectionService: CollectionService,\r\n private reportsService: ReportsService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n \r\n }\r\n\r\n public onBuildReport() {\r\n\r\n }\r\n\r\n private saveAsFile(buffer: any, fileName: string, fileType: string): void {\r\n const data: Blob = new Blob([buffer], { type: fileType });\r\n saveAs(data, fileName);\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n

Work in progress

\r\n
","\r\nimport { Component, OnInit, Provider, Inject } from '@angular/core';\r\nimport { UserProfile } from '@caloptima/authentication';\r\nimport { SelectItem } from 'primeng/api';\r\nimport { DropDownObject } from '../../services/models/drop-down-object.interface';\r\nimport { ProviderDetail } from '../../services/models/provider-detail';\r\nimport { ReportsService } from '../../services/reports.service';\r\nimport { SessionService } from '../../services/session.service';\r\nimport { saveAs } from 'file-saver';\r\nimport { DatePipe, DOCUMENT } from '@angular/common';\r\nimport { ReportType } from '../../services/models/reportype';\r\nimport { UiUtility } from '../../utils/ui-utility';\r\n\r\n@Component({\r\n selector: 'app-reports-pay-for-value',\r\n templateUrl: './reports-pay-for-value.component.html',\r\n styleUrls: ['./reports-pay-for-value.component.scss']\r\n})\r\nexport class ReportsPayForValueComponent implements OnInit {\r\n\r\n public userProfile: UserProfile;\r\n public providers:ProviderDetail[] = [];\r\n public displayProviders:ProviderDetail[] = [];\r\n public selectedCalProviderID: string;\r\n private sortColumn: string;\r\n private sortAscending: boolean;\r\n public totalRecords: number;\r\n public fileList: SelectItem[];\r\n public selectedFile: DropDownObject;\r\n public searchProviderId: string;\r\n public searchProviderName: string;\r\n\r\n constructor(\r\n private sessionService: SessionService,\r\n private reportsService: ReportsService,\r\n private datePipe: DatePipe,\r\n @Inject(DOCUMENT) private document: Document) {\r\n this.sortColumn = 'name';\r\n this.sortAscending = true;\r\n this.selectedFile = null;\r\n this.searchProviderId = '';\r\n this.searchProviderName = '';\r\n this.selectedCalProviderID = '';\r\n }\r\n\r\n ngOnInit() {\r\n\r\n if(this.sessionService.currentPermission.isEnterpriseAdmin || this.sessionService.currentPermission.isEnterpriseUser) {\r\n // Nothing. \r\n }\r\n else {\r\n this.reportsService.getProvidersForReports(this.sessionService.currentPermission.providerCollectionID, ReportType.P4V).subscribe(result=>{\r\n\r\n this.providers = result;\r\n \r\n this.totalRecords = this.providers.length;\r\n \r\n if(this.providers)\r\n this.displayProviders = this.providers.slice();\r\n \r\n let param: any = {\r\n \"field\": \"name\",\r\n \"order\": 1\r\n }\r\n this.onSort(param)\r\n });\r\n }\r\n }\r\n\r\n public sortClass(column: string): string {\r\n let cls: string;\r\n if (column == this.sortColumn) {\r\n cls = this.sortAscending ? \"fa fa-chevron-up\" : \"fa fa-chevron-down\";\r\n }\r\n else {\r\n cls = \"fa fa-chevron-up\";\r\n }\r\n return cls;\r\n }\r\n\r\n public onPage(e: any) {\r\n let s = JSON.stringify(e);\r\n }\r\n\r\n public onSort(e: any): void {\r\n this.providers.sort((data1, data2) => {\r\n let value1 = data1[e.field];\r\n let value2 = data2[e.field];\r\n let result = null;\r\n\r\n if (value1 == null && value2 != null)\r\n result = -1;\r\n else if (value1 != null && value2 == null)\r\n result = 1;\r\n else if (value1 == null && value2 == null)\r\n result = 0;\r\n else if (typeof value1 === 'string' && typeof value2 === 'string')\r\n result = value1.localeCompare(value2);\r\n else\r\n result = (value1 < value2) ? -1 : (value1 > value2) ? 1 : 0;\r\n\r\n return (e.order * result);\r\n });\r\n this.sortAscending = e.order == 1;\r\n this.sortColumn = e.field;\r\n }\r\n\r\n public onProviderSelected(provider: ProviderDetail): void {\r\n this.selectedCalProviderID = provider.calProviderID;\r\n\r\n this.fileList = [];\r\n this.selectedFile = null;\r\n\r\n this.reportsService.getReportFilesForProvider(this.selectedCalProviderID, ReportType.P4V).subscribe(result=>{\r\n result.forEach(x=>\r\n {\r\n this.fileList.push(\r\n {\r\n label: this.datePipe.transform(x.yearMonth, 'yyyy-MM'),\r\n value: x\r\n });\r\n });\r\n\r\n if(this.fileList.length > 0) {\r\n this.selectedFile = this.fileList[0].value;\r\n UiUtility.scrollDown(this.document);\r\n }\r\n });\r\n }\r\n\r\n public get displayText(): string {\r\n if(this.selectedCalProviderID) {\r\n\r\n let providerDetail: ProviderDetail = this.providers.find(x=> x.calProviderID === this.selectedCalProviderID);\r\n\r\n if(providerDetail) {\r\n let s = providerDetail.name;\r\n return s;\r\n }\r\n else {\r\n return \"\"\r\n }\r\n }\r\n else {\r\n return \"\";\r\n }\r\n }\r\n\r\n public get enableBuildReport() : boolean {\r\n\r\n return this.selectedCalProviderID !== '' && this.selectedFile !== null\r\n }\r\n\r\n public onBuildReport() : void {\r\n\r\n var temp:any = this.selectedFile;\r\n var fileName = temp.fileName;\r\n\r\n this.reportsService.downloadReportFileForProvider(this.selectedCalProviderID, fileName, ReportType.P4V).subscribe(result=>{\r\n this.saveAsFile(result, fileName + \".xlsb\", 'xlsb');\r\n });\r\n }\r\n\r\n private saveAsFile(buffer: any, fileName: string, fileType: string): void {\r\n const data: Blob = new Blob([buffer], { type: fileType });\r\n saveAs(data, fileName);\r\n }\r\n\r\n public onSearch(search) : void {\r\n this.selectedCalProviderID = '';\r\n this.fileList = [];\r\n this.selectedFile = null;\r\n\r\n if (search && (search.providerName || search.providerId || search.providerTin)) {\r\n \r\n if(this.sessionService.currentPermission.isEnterpriseAdmin || this.sessionService.currentPermission.isEnterpriseUser) {\r\n this.reportsService.searchProvidersForReports(search.providerId, search.providerName, search.providerTin, ReportType.P4V).subscribe(result => {\r\n this.providers = result;\r\n this.displayProviders = this.providers.slice();\r\n });\r\n }\r\n else {\r\n if (!UiUtility.isNullUndefinedOrEmpty(search.providerName)) {\r\n this.displayProviders = this.providers\r\n .filter(p => p.name.toLowerCase().indexOf(search.providerName.trim().toLowerCase()) >= 0);\r\n }\r\n else if (!UiUtility.isNullUndefinedOrEmpty(search.providerId)) {\r\n this.displayProviders = this.providers\r\n .filter(p => p.calProviderID.toLowerCase().indexOf(search.providerId.trim().toLowerCase()) >= 0);\r\n }\r\n else if (!UiUtility.isNullUndefinedOrEmpty(search.providerTin)) {\r\n this.displayProviders = this.providers\r\n .filter(p => p.taxId.toLowerCase().indexOf(search.providerTin.trim().toLowerCase()) >= 0);\r\n } \r\n }\r\n }\r\n else {\r\n this.displayProviders = this.providers.slice();\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 Name
\r\n Provider ID
\r\n Medical Group
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{row.name}}
\r\n \r\n \r\n
{{row.calProviderID}}
\r\n \r\n \r\n
{{row.groupName}}
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
0\">\r\n \r\n \r\n \r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { CollectionService } from '../../services/collection.service';\r\nimport { ProviderDetail } from '../../services/models/provider-detail';\r\nimport { ReportsService } from '../../services/reports.service';\r\nimport { SessionService } from '../../services/session.service';\r\nimport { saveAs } from 'file-saver';\r\n\r\n@Component({\r\n selector: 'app-reports-pcp-member-roster',\r\n templateUrl: './reports-pcp-member-roster.component.html',\r\n styleUrls: ['./reports-pcp-member-roster.component.scss']\r\n})\r\nexport class ReportsPcpMemberRosterComponent implements OnInit {\r\n\r\n public providers:ProviderDetail[] = [];\r\n public selected: ProviderDetail[] = [];\r\n private sortColumn: string;\r\n private sortAscending: boolean;\r\n private enableBuildReport: boolean;\r\n private threshold: number = 25000;\r\n public showThresholdAlert: boolean = false;\r\n\r\n constructor(\r\n private sessionService: SessionService, \r\n private collectionService: CollectionService,\r\n private reportsService: ReportsService\r\n\r\n ) {\r\n\r\n this.sortColumn = 'name';\r\n this.sortAscending = true; \r\n this.enableBuildReport = true;\r\n }\r\n\r\n ngOnInit() {\r\n \r\n this.reportsService.getProvidersForPCPMemberRoster(this.sessionService.currentPermission.providerCollectionID).subscribe(result=>{\r\n this.providers = result;\r\n\r\n let param: any = {\r\n \"field\": \"name\",\r\n \"order\": 1\r\n }\r\n this.onSort(param)\r\n\r\n this.selected = result;\r\n })\r\n }\r\n\r\n public onBuildReport() {\r\n\r\n this.enableBuildReport = false;\r\n\r\n let providerIds: string[] = [];\r\n this.selected.forEach(x=> {\r\n providerIds.push(x.calProviderID);\r\n });\r\n\r\n this.reportsService.downloadMemberPcpRosterUsingProviderIds(providerIds).subscribe(result => {\r\n this.saveAsFile(result, 'member-pcp-roster.csv', 'text/csv');\r\n this.enableBuildReport = true;\r\n })\r\n }\r\n\r\n private saveAsFile(buffer: any, fileName: string, fileType: string): void {\r\n const data: Blob = new Blob([buffer], { type: fileType });\r\n saveAs(data, fileName);\r\n }\r\n\r\n public sortClass(column: string): string {\r\n let cls: string;\r\n if (column == this.sortColumn) {\r\n cls = this.sortAscending ? \"fa fa-chevron-up\" : \"fa fa-chevron-down\";\r\n }\r\n else {\r\n cls = \"fa fa-chevron-up\";\r\n }\r\n return cls;\r\n }\r\n\r\n public onSort(e: any): void {\r\n this.providers.sort((data1, data2) => {\r\n let value1 = data1[e.field];\r\n let value2 = data2[e.field];\r\n let result = null;\r\n\r\n if (value1 == null && value2 != null)\r\n result = -1;\r\n else if (value1 != null && value2 == null)\r\n result = 1;\r\n else if (value1 == null && value2 == null)\r\n result = 0;\r\n else if (typeof value1 === 'string' && typeof value2 === 'string')\r\n result = value1.localeCompare(value2);\r\n else\r\n result = (value1 < value2) ? -1 : (value1 > value2) ? 1 : 0;\r\n\r\n return (e.order * result);\r\n });\r\n this.sortAscending = e.order == 1;\r\n this.sortColumn = e.field;\r\n }\r\n\r\n public get IsEnterpriseUser() : boolean {\r\n return (this.sessionService.isEnterpriseAdmin || this.sessionService.isEnterpriseUser);\r\n }\r\n\r\n public onSearch(search) : void {\r\n\r\n if(this.sessionService.currentPermission.isEnterpriseAdmin || this.sessionService.currentPermission.isEnterpriseUser) {\r\n this.selected = [];\r\n this.reportsService.searchProvidersForPCPMemberRoster(search.providerId, search.providerName, search.providerTin).subscribe(result => {\r\n this.providers = result;\r\n });\r\n } \r\n }\r\n\r\n public get totalCount() : number{\r\n this.showThresholdAlert = false;\r\n \r\n let totalCount: number = 0;\r\n this.selected.forEach(x=>{\r\n totalCount += x.pcpMemberCount\r\n });\r\n\r\n if(totalCount > this.threshold)\r\n this.showThresholdAlert = true;\r\n\r\n return totalCount;\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 Name
\r\n Provider ID
\r\n Member Count
\r\n Medical Group
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{row.name}}
\r\n \r\n \r\n
{{row.calProviderID}}
\r\n \r\n \r\n
{{row.pcpMemberCount}}
\r\n \r\n \r\n
{{row.groupName}}
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n Total Selected Members : {{totalCount}}.\r\n \r\n \r\n  Too many members selected ({{threshold}}) MAX.\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
","\r\nimport { Component, OnInit,ViewChild, Inject } from '@angular/core';\r\nimport { UserProfile } from '@caloptima/authentication';\r\nimport { SelectItem } from 'primeng/api';\r\nimport { DropDownObject } from '../../../services/models/drop-down-object.interface';\r\nimport { ReportsService } from '../../../services/reports.service';\r\nimport { SessionService } from '../../../services/session.service';\r\nimport { saveAs } from 'file-saver';\r\nimport { DatePipe, DOCUMENT } from '@angular/common';\r\nimport { ReportType } from '../../../services/models/reportype';\r\nimport { ReportsMemberSearchComponent } from '../../../app-components/reports-member-search/reports-member-search.component';\r\nimport { UiUtility } from '../../../utils/ui-utility';\r\nimport { ReportMemberDetails } from '../../../services/models/reportmemberdetails';\r\n\r\n@Component({\r\n selector: 'app-pcp-attestation-member',\r\n templateUrl: './pcp-attestation-member.component.html',\r\n styleUrls: ['./pcp-attestation-member.component.scss']\r\n})\r\nexport class PcpAttestationMemberComponent implements OnInit {\r\n\r\n public userProfile: UserProfile;\r\n public members:ReportMemberDetails[] = [];\r\n public displayMembers:ReportMemberDetails[] = [];\r\n public selectedCin: string;\r\n private sortColumn: string;\r\n private sortAscending: boolean;\r\n public totalRecords: number;\r\n public fileList: SelectItem[];\r\n public selectedFile: DropDownObject;\r\n public searchCin: string;\r\n public searchName: string;\r\n public collectionId: number;\r\n public calProviderId: string;\r\n\r\n @ViewChild('memberSearch') memberSearch: ReportsMemberSearchComponent;\r\n\r\n constructor(\r\n private reportsService: ReportsService,\r\n private sessionService: SessionService,\r\n private datePipe: DatePipe,\r\n @Inject(DOCUMENT) private document: Document) {\r\n }\r\n\r\n ngOnInit() {\r\n this.collectionId = this.sessionService.currentPermission.providerCollectionID;\r\n\r\n this.initialize();\r\n }\r\n\r\n public setProviderId(providerId: string) {\r\n this.calProviderId = providerId;\r\n this.initialize(true);\r\n }\r\n\r\n public initialize(resetComponent = false) {\r\n this.sortColumn = 'memberName';\r\n this.sortAscending = true;\r\n this.selectedFile = null;\r\n this.searchCin = '';\r\n this.searchName = '';\r\n this.selectedCin = '';\r\n this.displayMembers = [];\r\n\r\n if (resetComponent) {\r\n this.memberSearch.resetSearchFilters();\r\n }\r\n\r\n if(!UiUtility.isNullUndefinedOrEmpty(this.calProviderId)) {\r\n this.reportsService.getMembersForReports(this.collectionId, this.calProviderId, ReportType.PCPDocAttest).subscribe(result=>{\r\n\r\n this.members = result;\r\n\r\n this.totalRecords = this.members.length;\r\n\r\n if(this.members)\r\n this.displayMembers = this.members.slice();\r\n\r\n let param: any = {\r\n \"field\": \"memberName\",\r\n \"order\": 1\r\n }\r\n this.onSort(param)\r\n });\r\n }\r\n }\r\n\r\n public sortClass(column: string): string {\r\n let cls: string;\r\n if (column == this.sortColumn) {\r\n cls = this.sortAscending ? \"fa fa-chevron-up\" : \"fa fa-chevron-down\";\r\n }\r\n else {\r\n cls = \"fa fa-chevron-up\";\r\n }\r\n return cls;\r\n }\r\n\r\n public onPage(e: any) {\r\n let s = JSON.stringify(e);\r\n }\r\n\r\n public onSort(e: any): void {\r\n this.displayMembers.sort((data1, data2) => {\r\n let value1 = data1[e.field];\r\n let value2 = data2[e.field];\r\n let result = null;\r\n\r\n if (value1 == null && value2 != null)\r\n result = -1;\r\n else if (value1 != null && value2 == null)\r\n result = 1;\r\n else if (value1 == null && value2 == null)\r\n result = 0;\r\n else if (typeof value1 === 'string' && typeof value2 === 'string')\r\n result = value1.localeCompare(value2);\r\n else\r\n result = (value1 < value2) ? -1 : (value1 > value2) ? 1 : 0;\r\n\r\n return (e.order * result);\r\n });\r\n this.sortAscending = e.order == 1;\r\n this.sortColumn = e.field;\r\n }\r\n\r\n public onMemberSelected(member: ReportMemberDetails): void {\r\n this.selectedCin = member.cin; \r\n this.fileList = [];\r\n this.selectedFile = null;\r\n\r\n const providerId = UiUtility.isNullUndefinedOrEmpty(this.calProviderId) ? member.providerId : this.calProviderId;\r\n\r\n this.reportsService.getReportFilesForMember(providerId, this.selectedCin, ReportType.PCPDocAttest).subscribe(result=>{\r\n result.forEach(x=>\r\n {\r\n this.fileList.push(\r\n {\r\n label: this.datePipe.transform(x.yearMonth, 'yyyy-MM'),\r\n value: x\r\n });\r\n });\r\n\r\n if(this.fileList.length > 0) {\r\n this.selectedFile = this.fileList[0].value;\r\n\r\n UiUtility.scrollDown(this.document);\r\n }\r\n });\r\n }\r\n\r\n public get displayText(): string {\r\n if(this.selectedCin) {\r\n\r\n let memeberDetail: ReportMemberDetails = this.members.find(x=> x.cin === this.selectedCin);\r\n\r\n if(memeberDetail) {\r\n let s = memeberDetail.memberName;\r\n return s;\r\n }\r\n else {\r\n return \"\"\r\n }\r\n }\r\n else {\r\n return \"\";\r\n }\r\n }\r\n\r\n public get enableBuildReport() : boolean {\r\n\r\n return this.selectedCin !== '' && this.selectedFile !== null\r\n }\r\n\r\n public onBuildReport() : void {\r\n\r\n var temp:any = this.selectedFile;\r\n var fileName = temp.fileName;\r\n\r\n this.reportsService.downloadReportFileForMember(this.calProviderId, this.selectedCin, fileName, ReportType.PCPDocAttest).subscribe(result=>{\r\n this.saveAsFile(result, fileName + \".pdf\", 'pdf');\r\n });\r\n }\r\n\r\n private saveAsFile(buffer: any, fileName: string, fileType: string): void {\r\n const data: Blob = new Blob([buffer], { type: fileType });\r\n saveAs(data, fileName);\r\n }\r\n\r\n // public onKeyPress(e:any) : void {\r\n // if (e.keyCode === 13) {\r\n // this.onMemberSearch();\r\n // }\r\n // }\r\n\r\n public onMemberSearch(search) : void {\r\n\r\n this.selectedCin = '';\r\n this.fileList = [];\r\n this.selectedFile = null;\r\n\r\n if(!UiUtility.isNullUndefinedOrEmpty(this.calProviderId)) {\r\n if(search.memberName === '' && search.memberId === '') {\r\n this.displayMembers = this.members.slice();\r\n }\r\n else {\r\n this.displayMembers = [];\r\n this.members.forEach(x => {\r\n\r\n let include: boolean = false;\r\n\r\n if(search.memberName !== '') {\r\n include = x.memberName.trim().toUpperCase().includes(search.memberName.trim().toUpperCase());\r\n }\r\n if(!include && search.memberId !== '') {\r\n include = x.cin == search.memberId;\r\n }\r\n if(!include && search.memberId !== '') {\r\n include = x.medsId == search.memberId;\r\n } \r\n if(!include && search.memberId !== '') {\r\n include = x.mbi == search.memberId;\r\n } \r\n if(include){\r\n this.displayMembers.push(x);\r\n }\r\n });\r\n }\r\n }\r\n else {\r\n\r\n this.reportsService.searchMembersForReports(ReportType.PCPDocAttest, this.collectionId, search.memberName, search.memberId).subscribe(result=>{\r\n\r\n this.members = result;\r\n\r\n this.totalRecords = this.members.length;\r\n\r\n if(this.members)\r\n this.displayMembers = this.members.slice();\r\n\r\n let param: any = {\r\n \"field\": \"memberName\",\r\n \"order\": 1\r\n }\r\n this.onSort(param)\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 Name
\r\n Member ID
\r\n Provider ID
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{row.memberName}}
\r\n \r\n \r\n
{{row.cin}}
\r\n \r\n \r\n
{{row.providerId}}
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
0\">\r\n \r\n \r\n \r\n
\r\n
\r\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-reports-member-search',\r\n templateUrl: './reports-member-search.component.html',\r\n styleUrls: ['./reports-member-search.component.scss']\r\n})\r\nexport class ReportsMemberSearchComponent implements OnInit {\r\n public memberName: string;\r\n public memberId: string;\r\n public searchLabel: string = \"Search for Members\";\r\n public idLabel: string = \"Member ID\";\r\n public instructionLabel: string =\"CIN, MEDS ID, or MBI accepted\";\r\n @Output() onMemberSearch: EventEmitter = new EventEmitter(null);\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n public findMembers() {\r\n this.onMemberSearch.emit({ memberName: this.memberName, memberId: this.memberId });\r\n }\r\n\r\n public resetSearchFilters() {\r\n this.memberName = '';\r\n this.memberId = '';\r\n }\r\n\r\n public setLabel(instructionlabel: string, id: string, search: string ){\r\n this.instructionLabel = instructionlabel;\r\n this.idLabel = id;\r\n this.searchLabel = search;\r\n }\r\n}\r\n","
\r\n \r\n
\r\n \r\n
\r\n
{{instructionLabel}}
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ProviderDetail } from '../../../services/models/provider-detail';\r\nimport { ReportType } from '../../../services/models/reportype';\r\nimport { ReportsService } from '../../../services/reports.service';\r\nimport { SessionService } from '../../../services/session.service';\r\nimport { UiUtility } from '../../../utils/ui-utility';\r\nimport { trigger, transition, query, style, group, animate, state } from '@angular/animations';\r\nimport { ReportsProviderSearchComponent } from '../../../app-components/reports-provider-search/reports-provider-search.component';\r\nimport { ReportsMemberSearchComponent } from '../../../app-components/reports-member-search/reports-member-search.component';\r\nimport { PcpAttestationMemberComponent } from '../pcp-attestation-member/pcp-attestation-member.component';\r\n\r\n@Component({\r\n selector: 'app-pcp-attestation-provider',\r\n templateUrl: './pcp-attestation-provider.component.html',\r\n styleUrls: ['./pcp-attestation-provider.component.scss'],\r\n animations: [\r\n trigger('showMember', [\r\n state('false', style({ opacity: 1, transform: 'translateX(0%)', display: 'block' })),\r\n state('true', style({ opacity: 0, transform: 'translateX(-100%)', display: 'none' })),\r\n transition('false => true', animate('500ms ease-in')),\r\n transition('true => false', animate('500ms ease-out'))\r\n ])]\r\n})\r\n\r\nexport class PcpAttestationProviderComponent implements OnInit {\r\n public providers: ProviderDetail[] = [];\r\n public displayedProviders: ProviderDetail[] = [];\r\n public selectedProvider: ProviderDetail;\r\n public totalRecords: number;\r\n public rowsPerPage: number = 10;\r\n public pageNumber: number = 1;\r\n public selectedCalProviderID: string;\r\n public animationState: string = '';\r\n public displayMembers = false;\r\n\r\n private sortColumn: string;\r\n private sortAscending: boolean;\r\n\r\n public columns: any = [\r\n { field: '', header: '', width: '5%', classHeader: 'provider-reports-header', classContent: 'provider-reports-content-alt1', sort: false },\r\n { field: 'name', header: 'Name', width: '40%', classHeader: 'provider-reports-header', classContent: 'provider-reports-content', sort: true },\r\n { field: 'taxId', header: 'TIN', width: '25%', classHeader: 'provider-reports-header-alt1', classContent: 'provider-reports-content-alt1', sort: true },\r\n { field: 'calProviderID', header: 'Provider ID', width: '25%', classHeader: 'provider-reports-header-alt1', classContent: 'provider-reports-content-alt1', sort: true }\r\n ];\r\n\r\n @ViewChild('providerSearch') providerSearch: ReportsProviderSearchComponent;\r\n @ViewChild('memberComponent') memberComponent: PcpAttestationMemberComponent;\r\n\r\n constructor(\r\n private reportsService: ReportsService,\r\n private sessionService: SessionService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.initialize();\r\n }\r\n\r\n public initialize(resetComponent = false) {\r\n\r\n this.sortColumn = 'name';\r\n this.selectedCalProviderID = '';\r\n\r\n if (resetComponent) {\r\n this.providerSearch.resetSearchFilters();\r\n this.displayMembers = false;\r\n this.providers = [];\r\n this.displayedProviders = [];\r\n }\r\n\r\n if(this.sessionService.currentPermission.isEnterpriseAdmin || this.sessionService.currentPermission.isEnterpriseUser) {\r\n // Do nothing.\r\n }\r\n else {\r\n this.reportsService.getProvidersForReports(this.sessionService.currentPermission.providerCollectionID, ReportType.PCPDocAttest).subscribe(result => {\r\n this.providers = result;\r\n\r\n this.pageNumber = 1;\r\n this.onProviderSearch(null);\r\n\r\n let param: any = {\r\n \"field\": \"name\",\r\n \"order\": 1\r\n }\r\n this.onSort(param)\r\n });\r\n }\r\n }\r\n\r\n public sortClass(column: string): string {\r\n let cls: string;\r\n if (column == this.sortColumn) {\r\n cls = this.sortAscending ? \"fa fa-chevron-up\" : \"fa fa-chevron-down\";\r\n }\r\n else {\r\n cls = \"fa fa-chevron-up\";\r\n }\r\n return cls;\r\n }\r\n\r\n public onPage(e: any) {\r\n let s = JSON.stringify(e);\r\n }\r\n\r\n public onSort(e: any): void {\r\n this.providers.sort((data1, data2) => {\r\n let value1 = data1[e.field];\r\n let value2 = data2[e.field];\r\n let result = null;\r\n\r\n if (value1 == null && value2 != null)\r\n result = -1;\r\n else if (value1 != null && value2 == null)\r\n result = 1;\r\n else if (value1 == null && value2 == null)\r\n result = 0;\r\n else if (typeof value1 === 'string' && typeof value2 === 'string')\r\n result = value1.localeCompare(value2);\r\n else\r\n result = (value1 < value2) ? -1 : (value1 > value2) ? 1 : 0;\r\n\r\n return (e.order * result);\r\n });\r\n this.sortAscending = e.order == 1;\r\n this.sortColumn = e.field;\r\n }\r\n\r\n public onProviderSelected(provider: ProviderDetail) {\r\n this.selectedCalProviderID = provider.calProviderID;\r\n this.displayMembers = true;\r\n this.selectedProvider = provider;\r\n this.memberComponent.setProviderId(this.selectedCalProviderID);\r\n }\r\n\r\n public backToProvider() {\r\n this.displayMembers = false;\r\n }\r\n\r\n public onProviderSearch(search) {\r\n this.selectedCalProviderID = '';\r\n if (search && (search.providerName || search.providerId || search.providerTin)) {\r\n\r\n if(this.sessionService.currentPermission.isEnterpriseAdmin || this.sessionService.currentPermission.isEnterpriseUser) {\r\n this.reportsService.searchProvidersForReports(search.providerId, search.providerName, search.providerTin, ReportType.PCPDocAttest).subscribe(result => {\r\n this.providers = result;\r\n this.displayedProviders = this.providers.slice();\r\n });\r\n }\r\n else {\r\n if (!UiUtility.isNullUndefinedOrEmpty(search.providerName)) {\r\n this.displayedProviders = this.providers\r\n .filter(p => p.name.toLowerCase().indexOf(search.providerName.trim().toLowerCase()) >= 0);\r\n }\r\n else if (!UiUtility.isNullUndefinedOrEmpty(search.providerId)) {\r\n this.displayedProviders = this.providers\r\n .filter(p => p.calProviderID.toLowerCase().indexOf(search.providerId.trim().toLowerCase()) >= 0);\r\n }\r\n else if (!UiUtility.isNullUndefinedOrEmpty(search.providerTin)) {\r\n this.displayedProviders = this.providers\r\n .filter(p => p.taxId.toLowerCase().indexOf(search.providerTin.trim().toLowerCase()) >= 0);\r\n } \r\n }\r\n }\r\n else {\r\n this.displayedProviders = this.providers.slice();\r\n }\r\n this.setPagedData();\r\n }\r\n\r\n private setPagedData(page: number = 0) {\r\n if (page === 0) {\r\n this.pageNumber = 1;\r\n }\r\n this.totalRecords = this.displayedProviders.length;\r\n const start = (this.pageNumber - 1) * this.rowsPerPage;\r\n let end = start + this.rowsPerPage;\r\n if (end > this.displayedProviders.length) {\r\n end = this.displayedProviders.length;\r\n }\r\n\r\n this.displayedProviders = this.displayedProviders.slice(start, end);\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 {{col.header}}\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 {{provider[col.field]}}\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n

{{selectedProvider.name}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { Component, OnInit, AfterViewInit, ViewChild, ElementRef, Output, EventEmitter } from '@angular/core';\r\nimport { UiUtility } from '../../utils/ui-utility';\r\nimport { TabView } from 'primeng/tabview';\r\nimport { ConfirmationService } from 'primeng/api';\r\nimport { PcpAttestationProviderComponent } from './pcp-attestation-provider/pcp-attestation-provider.component';\r\nimport { PcpAttestationMemberComponent } from './pcp-attestation-member/pcp-attestation-member.component';\r\n\r\n@Component({\r\n selector: 'app-reports-pcp-attestation',\r\n templateUrl: './reports-pcp-attestation.component.html',\r\n styleUrls: ['./reports-pcp-attestation.component.scss']\r\n})\r\nexport class ReportsPcpAttestationComponent implements OnInit, AfterViewInit {\r\n public displayConfirmContinue = false;\r\n public activeindex:number = 0;\r\n\r\n @ViewChild('tabView') tabview: TabView;\r\n @ViewChild('providerComponent') providerComponent: PcpAttestationProviderComponent;\r\n @ViewChild('memberComponent') memberComponent: PcpAttestationMemberComponent;\r\n\r\n private tabs: any = [\r\n { index: 0, id: 'pcpattestation-provider', label: 'Provider', enable: true },\r\n { index: 1, id: 'pcpattestation-member', label: 'Member', enable: true }\r\n ];\r\n\r\n constructor(\r\n private confirmationService: ConfirmationService,\r\n private elementRef: ElementRef\r\n ) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.setPcpReportAttestationTabs();\r\n }\r\n\r\n public canViewTab(index: number) {\r\n const currentTab = this.tabs.find((tab: any) => tab.index === index);\r\n return currentTab ? currentTab.enable : false;\r\n }\r\n\r\n public getTabName(index: number) {\r\n const currentTab = this.tabs.find((tab: any) => tab.index === index);\r\n return currentTab ? currentTab.label : '';\r\n }\r\n\r\n public getTabIndex(name: string) {\r\n const currentTab = this.tabs.find((tab: any) => tab.label === name);\r\n return currentTab ? currentTab.index : 0;\r\n }\r\n\r\n public onTabChanged(e: any) {\r\n this.displayConfirmContinue = true;\r\n this.tabview.activeIndex = e.index === 1 ? 0 : 1;\r\n }\r\n\r\n public handleChange(selectedIndex:number, e:MouseEvent) {\r\n const currentIndex = this.tabview.activeIndex;\r\n e.stopPropagation();\r\n if (currentIndex == selectedIndex){\r\n return;\r\n }\r\n this.confirmationService.confirm({\r\n header: 'Are you sure?',\r\n message: 'Your search results will be cleared.',\r\n key: 'continueDialog',\r\n accept: () => {\r\n this.tabview.activeIndex = selectedIndex;\r\n if (selectedIndex === this.getTabIndex('Provider')) {\r\n this.providerComponent.initialize(true);\r\n }\r\n else if (selectedIndex === this.getTabIndex('Member')) {\r\n if (this.memberComponent) {\r\n this.memberComponent.setProviderId(null);\r\n }\r\n }\r\n },\r\n reject: () => {\r\n this.tabview.activeIndex = currentIndex;\r\n }\r\n });\r\n }\r\n\r\n private setPcpReportAttestationTabs() {\r\n const tabView = this.elementRef.nativeElement.querySelector('div.pcpattestation-tabview-styles ul.p-tabview-nav');\r\n UiUtility.SetTabsWidthDynamically(tabView, 0, 250);\r\n\r\n const tabElements = tabView.querySelectorAll('li');\r\n tabElements.forEach(element => {\r\n const currentChild = element.firstChild;\r\n const tabName = (element.querySelector(\"a\") as HTMLAnchorElement).innerText;\r\n const tabIndex = this.getTabIndex(tabName.trim());\r\n\r\n const newDiv = window.document.createElement(\"div\");\r\n newDiv.addEventListener('click', this.handleChange.bind(this, tabIndex), false);\r\n newDiv.style.cursor = 'pointer';\r\n newDiv.appendChild(currentChild);\r\n\r\n element.firstChild.remove();\r\n element.appendChild(newDiv);\r\n });\r\n }\r\n\r\n public confirmContinue(event) {\r\n this.displayConfirmContinue = false;\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 {{getTabName(0)}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{getTabName(1)}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n","\r\nimport { Component, OnInit, Provider, Inject } from '@angular/core';\r\nimport { SelectItem } from 'primeng/api';\r\nimport { DropDownObject } from '../../services/models/drop-down-object.interface';\r\nimport { ProviderDetail } from '../../services/models/provider-detail';\r\nimport { ReportsService } from '../../services/reports.service';\r\nimport { SessionService } from '../../services/session.service';\r\nimport { saveAs } from 'file-saver';\r\nimport { DatePipe, DOCUMENT } from '@angular/common';\r\nimport { ReportType } from '../../services/models/reportype';\r\nimport { UserProfile } from '@caloptima/authentication';\r\nimport { UiUtility } from '../../utils/ui-utility';\r\n\r\n@Component({\r\n selector: 'app-reports-dhcs-bloodlead-screening',\r\n templateUrl: './reports-dhcs-bloodlead-screening.component.html',\r\n styleUrls: ['./reports-dhcs-bloodlead-screening.component.scss']\r\n})\r\n\r\nexport class ReportsDHCSBloodleadScreeningComponent implements OnInit {\r\n\r\n public userProfile: UserProfile;\r\n public providers:ProviderDetail[] = [];\r\n public displayProviders:ProviderDetail[] = [];\r\n public selectedCalProviderID: string;\r\n private sortColumn: string;\r\n private sortAscending: boolean;\r\n public totalRecords: number;\r\n public fileList: SelectItem[];\r\n public selectedFile: DropDownObject;\r\n public searchProviderId: string;\r\n public searchProviderName: string;\r\n\r\n constructor(\r\n private sessionService: SessionService,\r\n private reportsService: ReportsService,\r\n private datePipe: DatePipe,\r\n @Inject(DOCUMENT) private document: Document) {\r\n this.sortColumn = 'name';\r\n this.sortAscending = true;\r\n this.selectedFile = null;\r\n this.searchProviderId = '';\r\n this.searchProviderName = '';\r\n this.selectedCalProviderID = '';\r\n }\r\n\r\n ngOnInit() {\r\n\r\n if(this.sessionService.currentPermission.isEnterpriseAdmin || this.sessionService.currentPermission.isEnterpriseUser) {\r\n // Nothing. \r\n }\r\n else {\r\n this.reportsService.getProvidersForReports(this.sessionService.currentPermission.providerCollectionID, ReportType.DHCS_BLS).subscribe(result=>{\r\n\r\n this.providers = result;\r\n\r\n this.totalRecords = this.providers.length;\r\n\r\n if(this.providers)\r\n this.displayProviders = this.providers.slice();\r\n\r\n let param: any = {\r\n \"field\": \"name\",\r\n \"order\": 1\r\n }\r\n this.onSort(param)\r\n });\r\n }\r\n }\r\n\r\n public sortClass(column: string): string {\r\n let cls: string;\r\n if (column == this.sortColumn) {\r\n cls = this.sortAscending ? \"fa fa-chevron-up\" : \"fa fa-chevron-down\";\r\n }\r\n else {\r\n cls = \"fa fa-chevron-up\";\r\n }\r\n return cls;\r\n }\r\n\r\n public onPage(e: any) {\r\n let s = JSON.stringify(e);\r\n }\r\n\r\n public onSort(e: any): void {\r\n this.providers.sort((data1, data2) => {\r\n let value1 = data1[e.field];\r\n let value2 = data2[e.field];\r\n let result = null;\r\n\r\n if (value1 == null && value2 != null)\r\n result = -1;\r\n else if (value1 != null && value2 == null)\r\n result = 1;\r\n else if (value1 == null && value2 == null)\r\n result = 0;\r\n else if (typeof value1 === 'string' && typeof value2 === 'string')\r\n result = value1.localeCompare(value2);\r\n else\r\n result = (value1 < value2) ? -1 : (value1 > value2) ? 1 : 0;\r\n\r\n return (e.order * result);\r\n });\r\n this.sortAscending = e.order == 1;\r\n this.sortColumn = e.field;\r\n }\r\n\r\n public onProviderSelected(provider: ProviderDetail): void {\r\n this.selectedCalProviderID = provider.calProviderID;\r\n\r\n this.fileList = [];\r\n this.selectedFile = null;\r\n\r\n this.reportsService.getReportFilesForProvider(this.selectedCalProviderID, ReportType.DHCS_BLS).subscribe(result=>{\r\n result.forEach(x=>\r\n {\r\n this.fileList.push(\r\n {\r\n label: this.datePipe.transform(x.yearMonth, 'yyyy-MM'),\r\n value: x\r\n });\r\n });\r\n\r\n if(this.fileList.length > 0) {\r\n this.selectedFile = this.fileList[0].value;\r\n }\r\n\r\n UiUtility.scrollDown(this.document);\r\n });\r\n }\r\n\r\n public get displayText(): string {\r\n if(this.selectedCalProviderID) {\r\n\r\n let providerDetail: ProviderDetail = this.providers.find(x=> x.calProviderID === this.selectedCalProviderID);\r\n\r\n if(providerDetail) {\r\n let s = providerDetail.name;\r\n return s;\r\n }\r\n else {\r\n return \"\"\r\n }\r\n }\r\n else {\r\n return \"\";\r\n }\r\n }\r\n\r\n public get enableBuildReport() : boolean {\r\n\r\n return this.selectedCalProviderID !== '' && this.selectedFile !== null\r\n }\r\n\r\n public onBuildReport() : void {\r\n\r\n var temp:any = this.selectedFile;\r\n var fileName = temp.fileName;\r\n var filePath = temp.filePath;\r\n var fileType = filePath.split('.').pop();\r\n\r\n this.reportsService.downloadReportFileForProvider(this.selectedCalProviderID, fileName, ReportType.DHCS_BLS).subscribe(result=>{\r\n this.saveAsFile(result, filePath, fileType);\r\n });\r\n }\r\n\r\n private saveAsFile(buffer: any, fileName: string, fileType: string): void {\r\n const data: Blob = new Blob([buffer], { type: fileType });\r\n saveAs(data, fileName);\r\n }\r\n\r\n public onSearch(search) : void {\r\n this.selectedCalProviderID = '';\r\n this.fileList = [];\r\n this.selectedFile = null;\r\n\r\n if (search && (search.providerName || search.providerId || search.providerTin)) {\r\n\r\n if(this.sessionService.currentPermission.isEnterpriseAdmin || this.sessionService.currentPermission.isEnterpriseUser) {\r\n this.reportsService.searchProvidersForReports(search.providerId, search.providerName, search.providerTin, ReportType.DHCS_BLS).subscribe(result => {\r\n this.providers = result;\r\n this.displayProviders = this.providers.slice();\r\n });\r\n }\r\n else {\r\n if (!UiUtility.isNullUndefinedOrEmpty(search.providerName)) {\r\n this.displayProviders = this.providers\r\n .filter(p => p.name.toLowerCase().indexOf(search.providerName.trim().toLowerCase()) >= 0);\r\n }\r\n else if (!UiUtility.isNullUndefinedOrEmpty(search.providerId)) {\r\n this.displayProviders = this.providers\r\n .filter(p => p.calProviderID.toLowerCase().indexOf(search.providerId.trim().toLowerCase()) >= 0);\r\n }\r\n else if (!UiUtility.isNullUndefinedOrEmpty(search.providerTin)) {\r\n this.displayProviders = this.providers\r\n .filter(p => p.taxId.toLowerCase().indexOf(search.providerTin.trim().toLowerCase()) >= 0);\r\n } \r\n }\r\n }\r\n else {\r\n this.displayProviders = this.providers.slice();\r\n }\r\n }\r\n\r\n private scrollToNext() {\r\n let el = this.document.getElementsByClassName(\"page\");\r\n el[0].scrollTop = el[0].scrollHeight;\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 Name
\r\n Provider ID
\r\n Medical Group
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{row.name}}
\r\n \r\n \r\n
{{row.calProviderID}}
\r\n \r\n \r\n
{{row.groupName}}
\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\nimport { Component, OnInit, Provider, Inject } from '@angular/core';\r\nimport { UserProfile } from '@caloptima/authentication';\r\nimport { SelectItem } from 'primeng/api';\r\nimport { DropDownObject } from '../../services/models/drop-down-object.interface';\r\nimport { ReportsService } from '../../services/reports.service';\r\nimport { SessionService } from '../../services/session.service';\r\nimport { saveAs } from 'file-saver';\r\nimport { DatePipe, DOCUMENT } from '@angular/common';\r\nimport { ReportType } from '../../services/models/reportype';\r\nimport { UiUtility } from '../../utils/ui-utility';\r\n\r\n@Component({\r\n selector: 'app-reports-pay-for-value-manual',\r\n templateUrl: './reports-pay-for-value-manual.component.html',\r\n styleUrls: ['./reports-pay-for-value-manual.component.scss']\r\n})\r\nexport class ReportsPayForValueManualComponent implements OnInit {\r\n\r\n public userProfile: UserProfile;\r\n public totalRecords: number;\r\n public fileList: SelectItem[];\r\n public selectedFile: DropDownObject;\r\n\r\n constructor(\r\n private sessionService: SessionService,\r\n private reportsService: ReportsService,\r\n private datePipe: DatePipe,\r\n @Inject(DOCUMENT) private document: Document) {\r\n this.selectedFile = null;\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.onShowPeriod();\r\n }\r\n\r\n\r\n\r\n public onShowPeriod(): void {\r\n this.fileList = [];\r\n this.selectedFile = null;\r\n\r\n this.reportsService.getReportFilesForProvider(\"ALL\", ReportType.P4V_Manual).subscribe(result=>{\r\n result.forEach(x=>\r\n {\r\n this.fileList.push(\r\n {\r\n label: this.datePipe.transform(x.yearMonth, 'yyyy'),\r\n value: x\r\n });\r\n });\r\n\r\n if(this.fileList.length > 0) {\r\n this.selectedFile = this.fileList[0].value;\r\n UiUtility.scrollDown(this.document);\r\n }\r\n });\r\n }\r\n\r\n public get enableBuildReport() : boolean {\r\n\r\n return this.selectedFile !== null\r\n }\r\n\r\n public onBuildReport() : void {\r\n\r\n var temp:any = this.selectedFile;\r\n var fileName = temp.fileName;\r\n\r\n this.reportsService.downloadReportFileForProvider(\"ALL\", fileName, ReportType.P4V_Manual).subscribe(result=>{\r\n this.saveAsFile(result, fileName + \".pdf\", 'pdf');\r\n });\r\n }\r\n\r\n private saveAsFile(buffer: any, fileName: string, fileType: string): void {\r\n const data: Blob = new Blob([buffer], { type: fileType });\r\n saveAs(data, fileName);\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
0\">\r\n \r\n \r\n \r\n
\r\n
\r\n
No measurement period files available to download.
\r\n
\r\n
\r\n\r\n","\r\nimport { AfterViewInit, Component, Input, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { UiUtility } from '../../../utils/ui-utility';\r\nimport { SessionService } from 'src/app/services/session.service';\r\nimport { ReportsService } from 'src/app/services/reports.service';\r\nimport { AppConfig } from '@caloptima/portal-foundation';\r\n\r\n@Component({\r\n selector: 'app-attestation-type',\r\n templateUrl: './attestation-type.component.html',\r\n styleUrls: ['./attestation-type.component.scss']\r\n})\r\nexport class AttestationTypeComponent implements OnInit{\r\n public showProviderTrainingAttestation: boolean = false;\r\n\r\n private paramsviaState: any = null;\r\n\r\n constructor(\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private sessionService: SessionService,\r\n private reportsService: ReportsService,\r\n private appConfig: AppConfig\r\n ) { \r\n if(this.router.getCurrentNavigation() && this.router.getCurrentNavigation().extras && this.router.getCurrentNavigation().extras.state)\r\n this.paramsviaState = this.router.getCurrentNavigation().extras.state;\r\n }\r\n \r\n @Input() attestationType: string;\r\n\r\n ngOnInit() {\r\n if(this.paramsviaState) {\r\n this.extractStateParam(this.paramsviaState);\r\n } \r\n else {\r\n this.route.params.subscribe(value => {\r\n // If suspenseID get user and assigne to selected user\r\n this.extractStateParam(value); \r\n }); \r\n }\r\n\r\n if (this.appConfig.getConfig('EnableProviderAttestation').trim().toLowerCase() === \"false\") {\r\n this.showProviderTrainingAttestation = false;\r\n return;\r\n }\r\n\r\n if (this.attestationType === 'providertrainingattestation') {\r\n this.showProviderTrainingAttestation = true;\r\n }\r\n else {\r\n if (this.sessionService.isAdmin && !this.showProviderTrainingAttestation) {\r\n this.reportsService.accessProviderTrainingAttestation(this.sessionService.currentPermission.providerCollectionID).subscribe(result => {\r\n this.showProviderTrainingAttestation = result;\r\n });\r\n }\r\n else {\r\n this.showProviderTrainingAttestation = this.sessionService.isEnterpriseAdmin || this.sessionService.isEnterpriseUser;\r\n }\r\n }\r\n }\r\n\r\n public onChange() {\r\n this.router.navigate(['/reports/' + this.attestationType]);\r\n }\r\n\r\n public onContinue(){\r\n \r\n }\r\n\r\n private extractStateParam(params) {\r\n if (params && params.rname) {\r\n const attestationType = params.rname;\r\n if (!UiUtility.isNullOrUndefined(attestationType)) {\r\n this.attestationType = attestationType;\r\n this.onChange();\r\n }\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n

Attestation Type:

\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-attestation-home',\r\n templateUrl: './attestation-home.component.html',\r\n styleUrls: ['./attestation-home.component.scss']\r\n})\r\nexport class AttestationHomeComponent implements OnInit {\r\n\r\n constructor(\r\n ) { }\r\n\r\n ngOnInit() {\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\nLet's take a look at that attestation.\r\n
\r\n
\r\nSelect from the many report attestation types provided via the select menu above.\r\n
\r\n
\r\n
\r\n","export enum AttestationStatus {\r\n NotAvailable = 0,\r\n Attested = 1,\r\n Pending = 2,\r\n PastDue = 3\r\n}\r\n","import { Component, OnInit, Output, EventEmitter, Input } from '@angular/core';\r\nimport { MessageService } from 'primeng/api';\r\nimport { CollectionService } from '../../../../services/collection.service';\r\nimport { CollectionListItem } from '../../../../services/models/collection-list-item';\r\nimport { Messages } from '../../../../app.messages';\r\nimport { isNgContent } from '@angular/compiler';\r\n\r\nconst ATTESTATION_VERSION: string = \"1.0\"\r\n\r\n@Component({\r\n selector: 'attestation-dialog',\r\n templateUrl: './attestation-dialog.component.html',\r\n styleUrls: ['./attestation-dialog.component.scss']\r\n})\r\n\r\nexport class AttestationDialogComponent implements OnInit {\r\n @Input() fullname: string;\r\n @Output() submitAttestation = new EventEmitter();\r\n @Output() cancelAttestation = new EventEmitter();\r\n public iagree:boolean = false; \r\n \r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n public onSubmit() {\r\n this.submitAttestation.emit(ATTESTATION_VERSION);\r\n }\r\n\r\n public onCancel() {\r\n this.cancelAttestation.emit();\r\n }\r\n\r\n public get display(): boolean {\r\n return true;\r\n }\r\n\r\n public set display(value: boolean) {\r\n this.onCancel();\r\n }\r\n}\r\n","\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n The DHCS release All Plan Letter (APL) 20-016 (Revised): Blood Lead Screening of Young Children. This APL requires providers to screen children in Medicaid for elevated blood lead levels as part of required prevention services offered through Early and Periodic Screening, Diagnostic, and Treatment (EPSDT) program.\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n By agreeing to the terms below, I am attesting that I:\r\n
\r\n 1) Received and reviewed the CalOptima Health Lead Screening Performance quarterly report, and\r\n
\r\n 2) Will comply with APL 20-016 to provide oral or written anticipatory guidance to the parent(s) or guardian(s) of a child member that at a minimum includes information that children are at resk for lead poisoning and can be harmed by exposure to lead.\r\n
\r\n 3) Will comply with APL 20-016 reporting requirements for submitting claims and encounters using standard formats and proper CPT coding.\r\n
\r\n 4) Will document reason(s) for not performing the blood lead screening in the child member's medical record. In cases where screening consent has been withheld, a signed statement of voluntary refusal must be obtained and documented in the child member's medical record. Records of voluntary refusal must be provided to CalOptima Health upon request.\r\n
\r\n 5) Will follow California Lead Poisoning Prevention Branch minimum standards of care for conducting blood lead screenings, interpreting blood lead levels, and determining appropriate follow-up.\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n Your Full Name\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\nimport { Component, OnInit, Provider, Inject } from '@angular/core';\r\nimport { SelectItem } from 'primeng/api';\r\nimport { DropDownObject } from '../../../services/models/drop-down-object.interface';\r\nimport { ProviderDetail, ProviderDetailWithAttestation } from '../../../services/models/provider-detail';\r\nimport { ReportsService } from '../../../services/reports.service';\r\nimport { SessionService } from '../../../services/session.service';\r\nimport { DatePipe, DOCUMENT } from '@angular/common';\r\nimport { ReportType } from '../../../services/models/reportype';\r\nimport { AuthenticationService, UserProfile } from '@caloptima/authentication';\r\nimport { UiUtility } from '../../../utils/ui-utility';\r\nimport { AttestationDetail } from '../../../services/models/attestation-detail';\r\nimport { AttestationStatus } from '../../../services/models/attestationstatus';\r\nimport { OAuthService } from 'angular-oauth2-oidc';\r\nimport { PortalConfig } from '../../../portal-config';\r\n\r\n@Component({\r\n selector: 'app-attestation-bloodlead-screening',\r\n templateUrl: './attestation-bloodlead-screening.component.html',\r\n styleUrls: ['./attestation-bloodlead-screening.component.scss']\r\n})\r\n\r\nexport class AttestationBloodleadScreeningComponent implements OnInit {\r\n\r\n public userProfile: UserProfile;\r\n public providers:ProviderDetailWithAttestation[] = [];\r\n public displayProviders:ProviderDetailWithAttestation[] = [];\r\n public selectedProviderID: string;\r\n public selectedProvider: ProviderDetailWithAttestation;\r\n private sortColumn: string;\r\n private sortAscending: boolean;\r\n public totalRecords: number;\r\n public attestationList: AttestationDetail[];\r\n public searchProviderId: string;\r\n public searchProviderName: string;\r\n public showAttestation: boolean;\r\n public anyAttestationAvailableToSelect: boolean;\r\n private overAllCheckUnCheckValue: boolean;\r\n\r\n constructor(\r\n private sessionService: SessionService,\r\n private reportsService: ReportsService,\r\n private outhService: OAuthService,\r\n private datePipe: DatePipe,\r\n private authenticationService: AuthenticationService,\r\n private portalConfig: PortalConfig,\r\n @Inject(DOCUMENT) private document: Document) {\r\n this.sortColumn = 'name';\r\n this.sortAscending = true;\r\n this.searchProviderId = '';\r\n this.searchProviderName = '';\r\n this.selectedProviderID = '';\r\n }\r\n\r\n ngOnInit() {\r\n\r\n var userEmail: string = \"\";\r\n const claims = this.outhService.getIdentityClaims();\r\n if (claims) {\r\n userEmail = claims['sub'];\r\n }\r\n\r\n this.authenticationService.findUsers(null, userEmail, this.portalConfig.ClientId,1, 1).subscribe(users=>{\r\n if(users != null && users.length == 1) {\r\n this.userProfile = users[0];\r\n }\r\n\r\n this.selectedProvider = null;\r\n this.loadProviders();\r\n });\r\n }\r\n\r\n public loadProviders():void {\r\n if(this.sessionService.currentPermission.isEnterpriseAdmin || this.sessionService.currentPermission.isEnterpriseUser) {\r\n // Nothing. \r\n }\r\n else {\r\n this.reportsService.getProvidersWithAttestationForReports(this.sessionService.currentPermission.providerCollectionID, this.sessionService.currentPermission.collectionName, ReportType.BLS).subscribe(result=>{\r\n\r\n this.providers = result.filter(x=>x.attestationStatus != AttestationStatus.NotAvailable);\r\n\r\n this.totalRecords = this.providers.length;\r\n\r\n if(this.providers)\r\n this.displayProviders = this.providers.slice();\r\n\r\n let param: any = {\r\n \"field\": \"name\",\r\n \"order\": 1\r\n }\r\n this.onSort(param)\r\n\r\n this.onProviderSelected(this.selectedProvider);\r\n });\r\n } \r\n }\r\n\r\n public sortClass(column: string): string {\r\n let cls: string;\r\n if (column == this.sortColumn) {\r\n cls = this.sortAscending ? \"fa fa-chevron-up\" : \"fa fa-chevron-down\";\r\n }\r\n else {\r\n cls = \"fa fa-chevron-up\";\r\n }\r\n return cls;\r\n }\r\n\r\n public onPage(e: any) {\r\n let s = JSON.stringify(e);\r\n }\r\n\r\n public onSort(e: any): void {\r\n this.providers.sort((data1, data2) => {\r\n let value1 = data1[e.field];\r\n let value2 = data2[e.field];\r\n let result = null;\r\n\r\n if (value1 == null && value2 != null)\r\n result = -1;\r\n else if (value1 != null && value2 == null)\r\n result = 1;\r\n else if (value1 == null && value2 == null)\r\n result = 0;\r\n else if (typeof value1 === 'string' && typeof value2 === 'string')\r\n result = value1.localeCompare(value2);\r\n else\r\n result = (value1 < value2) ? -1 : (value1 > value2) ? 1 : 0;\r\n\r\n return (e.order * result);\r\n });\r\n this.sortAscending = e.order == 1;\r\n this.sortColumn = e.field;\r\n }\r\n\r\n public onProviderSelected(provider: ProviderDetailWithAttestation): void {\r\n if(!provider) return;\r\n\r\n this.selectedProviderID = provider.calProviderID;\r\n this.selectedProvider = provider;\r\n\r\n this.attestationList = [];\r\n this.anyAttestationAvailableToSelect = false;\r\n this.overAllCheckUnCheckValue = false;\r\n\r\n this.reportsService.getAttestationListForProvider(this.selectedProviderID, ReportType.BLS).subscribe(result=>{\r\n\r\n result.forEach(item => {\r\n item.reportPeriodDisplay = this.getReportPeriodDisplay(item.reportPeriod);\r\n item.measurementPeriodDisplay = this.getMeasurementPeriodDisplay(item.reportPeriod);\r\n\r\n if(item.attestationStatus == AttestationStatus.PastDue || item.attestationStatus == AttestationStatus.Pending)\r\n this.anyAttestationAvailableToSelect = true;\r\n });\r\n\r\n this.attestationList = result;\r\n });\r\n }\r\n\r\n public get displayText(): string {\r\n if(this.selectedProviderID) {\r\n\r\n let providerDetail: ProviderDetailWithAttestation = this.providers.find(x=> x.calProviderID === this.selectedProviderID);\r\n\r\n if(providerDetail) {\r\n let s = providerDetail.name;\r\n return s;\r\n }\r\n else {\r\n return \"\"\r\n }\r\n }\r\n else {\r\n return \"\";\r\n }\r\n }\r\n\r\n public onSearch(search) : void {\r\n this.selectedProviderID = '';\r\n this.attestationList = [];\r\n\r\n if (search && (search.providerName || search.providerId)) {\r\n\r\n if(this.sessionService.currentPermission.isEnterpriseAdmin || this.sessionService.currentPermission.isEnterpriseUser) {\r\n this.reportsService.searchProvidersWithAttestationForReports(search.providerId, search.providerName, search.providerTin, ReportType.BLS).subscribe(result => {\r\n\r\n this.providers = result.filter(x=>x.attestationStatus != AttestationStatus.NotAvailable);\r\n\r\n if(this.providers)\r\n this.displayProviders = this.providers.slice();\r\n });\r\n }\r\n else {\r\n if (!UiUtility.isNullUndefinedOrEmpty(search.providerName) && !UiUtility.isNullUndefinedOrEmpty(search.providerId)) {\r\n this.displayProviders = this.providers\r\n .filter(p => p.name.toLowerCase().indexOf(search.providerName.trim().toLowerCase()) >= 0 || p.calProviderID.toLowerCase().indexOf(search.providerId.trim().toLowerCase()) >= 0);\r\n }\r\n else if (!UiUtility.isNullUndefinedOrEmpty(search.providerName)) {\r\n this.displayProviders = this.providers\r\n .filter(p => p.name.toLowerCase().indexOf(search.providerName.trim().toLowerCase()) >= 0);\r\n }\r\n else {\r\n this.displayProviders = this.providers\r\n .filter(p => p.calProviderID.toLowerCase().indexOf(search.providerId.trim().toLowerCase()) >= 0);\r\n }\r\n }\r\n }\r\n else {\r\n this.displayProviders = this.providers.slice();\r\n }\r\n } \r\n\r\n public attestationStatusDisplay(attestationStatus:AttestationStatus): string {\r\n if(attestationStatus === AttestationStatus.Attested)\r\n return \"Up to date\";\r\n else if(attestationStatus == AttestationStatus.Pending)\r\n return \"Pending\";\r\n else \r\n return \"Past Due\";\r\n }\r\n\r\n private getReportPeriodDisplay(reportPeriod:string): string {\r\n\r\n var quarter: string = reportPeriod.substring(0,2);\r\n var year: string = reportPeriod.substring(2,6);\r\n var month: string = reportPeriod.substring(6,8);\r\n\r\n return month + ' - ' + year;\r\n }\r\n\r\n private getMeasurementPeriodDisplay(reportPeriod:string): string {\r\n\r\n var quarter: string = reportPeriod.substring(0,2);\r\n var year: string = reportPeriod.substring(2,6);\r\n var month: string = reportPeriod.substring(6,8);\r\n \r\n var numMonth = Number(month);\r\n var numYear = Number(year);\r\n\r\n if(numMonth == 1) {\r\n numMonth = 12\r\n numYear = numYear - 1;\r\n }\r\n else {\r\n numMonth = numMonth - 1;\r\n }\r\n \r\n month = numMonth.toString();\r\n year = numYear.toString();\r\n\r\n if(month.length == 1)\r\n month = \"0\" + month;\r\n\r\n return month + ' - ' + year;\r\n }\r\n\r\n public onAttest(): void {\r\n this.showAttestation = true;\r\n }\r\n\r\n public get enableAttest() : boolean {\r\n return (this.attestationList && this.attestationList.find(x=>x.hasChecked) != null);\r\n }\r\n\r\n public onSubmitAttestation(event) {\r\n var list:AttestationDetail[] = this.attestationList.filter(x=>x.hasChecked);\r\n list.forEach(attestationDetail => {\r\n attestationDetail.attestationName = this.userProfile.userID;\r\n attestationDetail.attestationEmail = this.userProfile.email;\r\n attestationDetail.attestationPhone = this.userProfile.mobilePhone;\r\n attestationDetail.attestationVersion = event;\r\n });\r\n\r\n this.reportsService.ApplyAttestation(list).subscribe(result=> {\r\n this.loadProviders();\r\n this.showAttestation = false;\r\n });\r\n }\r\n\r\n public onCancelAttestation() {\r\n this.showAttestation = false;\r\n }\r\n\r\n public get userFullName() {\r\n return this.userProfile.firstName + ' ' + this.userProfile.lastName;\r\n }\r\n\r\n public get overAllCheckUnCheck() : boolean {\r\n return this.overAllCheckUnCheckValue;\r\n }\r\n\r\n public set overAllCheckUnCheck(value:boolean) {\r\n\r\n if(this.attestationList) {\r\n this.attestationList.forEach(item=>{\r\n if(item.attestationStatus == AttestationStatus.Pending || item.attestationStatus == AttestationStatus.PastDue) \r\n item.hasChecked = value;\r\n });\r\n }\r\n\r\n this.overAllCheckUnCheckValue = value;\r\n }\r\n \r\n public get visibleAttest() : boolean {\r\n return !(this.sessionService.currentPermission.isEnterpriseAdmin || this.sessionService.currentPermission.isEnterpriseUser);\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 Name
\r\n Provider ID
\r\n TIN
\r\n Attestation Required
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{row.name}}
\r\n \r\n \r\n
{{row.calProviderID}}
\r\n \r\n \r\n
{{row.taxId}}
\r\n \r\n \r\n
{{attestationStatusDisplay(row.attestationStatus)}}
\r\n
{{attestationStatusDisplay(row.attestationStatus)}}
\r\n
{{attestationStatusDisplay(row.attestationStatus)}}
\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 Measurement Period
\r\n Reporting Period
\r\n Status
\r\n Due Date
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{row.measurementPeriodDisplay}}
\r\n \r\n \r\n
{{row.reportPeriodDisplay}}
\r\n \r\n \r\n
{{attestationStatusDisplay(row.attestationStatus)}}
\r\n
{{attestationStatusDisplay(row.attestationStatus)}}
\r\n
{{attestationStatusDisplay(row.attestationStatus)}}
\r\n \r\n \r\n
{{row.attestationDueDate | date : 'MM-dd-yyyy'}}
\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\nimport { Component, OnInit, Provider, Inject } from '@angular/core';\r\nimport { DatePipe, DOCUMENT } from '@angular/common';\r\nimport { UserProfile } from '@caloptima/authentication';\r\nimport { SelectItem } from 'primeng/api';\r\nimport { DropDownObject } from '../../services/models/drop-down-object.interface';\r\nimport { ReportsService } from '../../services/reports.service';\r\nimport { SessionService } from '../../services/session.service';\r\nimport { saveAs } from 'file-saver';\r\nimport { ReportType } from '../../services/models/reportype';\r\nimport { UiUtility } from '../../utils/ui-utility';\r\nimport { ProviderTaxDetails } from '../../services/models/provider-tax-details';\r\n\r\n@Component({\r\n selector: 'app-bh-reports-pay-for-value',\r\n templateUrl: './reports-bh-pay-for-value.component.html',\r\n styleUrls: ['./reports-bh-pay-for-value.component.scss']\r\n})\r\nexport class ReportsBHPayForValueComponent implements OnInit {\r\n\r\n public userProfile: UserProfile;\r\n public taxes:ProviderTaxDetails[] = [];\r\n public displaytaxes:ProviderTaxDetails[] = [];\r\n public selectedtaxid: string;\r\n private sortColumn: string;\r\n private sortAscending: boolean;\r\n public totalRecords: number;\r\n public fileList: SelectItem[];\r\n public selectedFile: DropDownObject;\r\n public searchTaxId: string;\r\n public searchTaxName: string;\r\n\r\n constructor(\r\n private sessionService: SessionService,\r\n private reportsService: ReportsService,\r\n private datePipe: DatePipe,\r\n @Inject(DOCUMENT) private document: Document) {\r\n this.sortColumn = 'taxname';\r\n this.sortAscending = true;\r\n this.selectedFile = null;\r\n this.searchTaxId = '';\r\n this.searchTaxName = '';\r\n }\r\n\r\n ngOnInit() {\r\n\r\n if(this.sessionService.currentPermission.isEnterpriseAdmin || this.sessionService.currentPermission.isEnterpriseUser) {\r\n // Nothing. \r\n }\r\n else {\r\n this.reportsService.getTaxesForReports(this.sessionService.currentPermission.providerCollectionID, ReportType.BHP4V).subscribe(result=>{\r\n\r\n this.taxes = result;\r\n \r\n this.totalRecords = this.taxes.length;\r\n \r\n if(this.taxes)\r\n this.displaytaxes = this.taxes.slice();\r\n \r\n this.fixDisplayTaxes();\r\n\r\n let param: any = {\r\n \"field\": \"name\",\r\n \"order\": 1\r\n }\r\n this.onSort(param)\r\n });\r\n }\r\n }\r\n\r\n public fixDisplayTaxes(): void {\r\n if(this.displaytaxes.length == 0)\r\n {\r\n var norecordfound = new ProviderTaxDetails();\r\n norecordfound.providerTaxId = \"\";\r\n norecordfound.providerTaxName = \"No record found.\";\r\n\r\n this.displaytaxes.push(norecordfound);\r\n\r\n this.selectedtaxid = \"\";\r\n }\r\n }\r\n\r\n public sortClass(column: string): string {\r\n let cls: string;\r\n if (column == this.sortColumn) {\r\n cls = this.sortAscending ? \"fa fa-chevron-up\" : \"fa fa-chevron-down\";\r\n }\r\n else {\r\n cls = \"fa fa-chevron-up\";\r\n }\r\n return cls;\r\n }\r\n\r\n public onPage(e: any) {\r\n let s = JSON.stringify(e);\r\n }\r\n\r\n public onSort(e: any): void {\r\n this.displaytaxes.sort((data1, data2) => {\r\n let value1 = data1[e.field];\r\n let value2 = data2[e.field];\r\n let result = null;\r\n\r\n if (value1 == null && value2 != null)\r\n result = -1;\r\n else if (value1 != null && value2 == null)\r\n result = 1;\r\n else if (value1 == null && value2 == null)\r\n result = 0;\r\n else if (typeof value1 === 'string' && typeof value2 === 'string')\r\n result = value1.localeCompare(value2);\r\n else\r\n result = (value1 < value2) ? -1 : (value1 > value2) ? 1 : 0;\r\n\r\n return (e.order * result);\r\n });\r\n this.sortAscending = e.order == 1;\r\n this.sortColumn = e.field;\r\n }\r\n\r\n public onTaxSelected(provider: ProviderTaxDetails): void {\r\n this.selectedtaxid = provider.providerTaxId;\r\n\r\n this.fileList = [];\r\n this.selectedFile = null;\r\n\r\n this.reportsService.getReportFilesForTax(this.selectedtaxid, ReportType.BHP4V).subscribe(result=>{\r\n result.forEach(x=>\r\n {\r\n this.fileList.push(\r\n {\r\n label: this.datePipe.transform(x.yearMonth, 'yyyy-MM'),\r\n value: x\r\n });\r\n });\r\n\r\n if(this.fileList.length > 0) {\r\n this.selectedFile = this.fileList[0].value;\r\n UiUtility.scrollDown(this.document);\r\n }\r\n });\r\n }\r\n\r\n public get displayText(): string {\r\n if(this.searchTaxId) {\r\n\r\n let taxdetails: ProviderTaxDetails = this.taxes.find(x=> x.providerTaxId === this.searchTaxId);\r\n\r\n if(taxdetails) {\r\n let s = taxdetails.providerTaxName;\r\n return s;\r\n }\r\n else {\r\n return \"\"\r\n }\r\n }\r\n else {\r\n return \"\";\r\n }\r\n }\r\n\r\n public get enableBuildReport() : boolean {\r\n\r\n return this.selectedtaxid !== '' && this.selectedFile !== null\r\n }\r\n\r\n public onBuildReport() : void {\r\n\r\n var temp:any = this.selectedFile;\r\n var fileName = temp.fileName;\r\n\r\n this.reportsService.downloadReportFileForProvider(this.searchTaxId, fileName, ReportType.BHP4V).subscribe(result=>{\r\n this.saveAsFile(result, fileName + \".xlsx\", 'xlsx');\r\n });\r\n }\r\n\r\n private saveAsFile(buffer: any, fileName: string, fileType: string): void {\r\n const data: Blob = new Blob([buffer], { type: fileType });\r\n saveAs(data, fileName);\r\n }\r\n\r\n public onSearch(search) : void {\r\n this.searchTaxId = '';\r\n this.fileList = [];\r\n this.selectedFile = null;\r\n this.displaytaxes = [];\r\n\r\n if(!search.providerId)\r\n search.providerId = '';\r\n\r\n if(this.sessionService.currentPermission.isEnterpriseAdmin || this.sessionService.currentPermission.isEnterpriseUser) {\r\n if(search.providerId == ''){\r\n this.taxes = [];\r\n this.displaytaxes = [];\r\n this.fixDisplayTaxes();\r\n } \r\n else {\r\n this.reportsService.searchTaxForReports(ReportType.BHP4V, \"\", search.providerId).subscribe(result => {\r\n this.taxes = result;\r\n this.displaytaxes = this.taxes.slice();\r\n this.fixDisplayTaxes();\r\n });\r\n } \r\n }\r\n else {\r\n if(search.providerId == '') {\r\n this.displaytaxes = this.taxes.slice();\r\n }\r\n else {\r\n if (!UiUtility.isNullUndefinedOrEmpty(search.providerId)) {\r\n this.displaytaxes = this.taxes\r\n .filter(p => p.providerTaxId.toLowerCase().indexOf(search.providerId.trim().toLowerCase()) >= 0);\r\n }\r\n }\r\n\r\n this.fixDisplayTaxes();\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 Name
\r\n TIN
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{row.providerTaxName}}
\r\n \r\n \r\n
{{row.providerTaxId}}
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
0\">\r\n \r\n \r\n \r\n
\r\n
\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-reports-tin-search',\r\n templateUrl: './reports-tin-search.component.html',\r\n styleUrls: ['./reports-tin-search.component.scss']\r\n})\r\nexport class ReportsTinSearchComponent implements OnInit {\r\n public providerId: string;\r\n @Input() dialogType: number;\r\n @Output() onProviderSearch: EventEmitter = new EventEmitter(null);\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n public findProviders() {\r\n this.onProviderSearch.emit({ providerId: this.providerId });\r\n }\r\n\r\n public resetSearchFilters() {\r\n this.providerId = '';\r\n }\r\n\r\n public get nameLabel(): string {\r\n if(this.dialogType && this.dialogType == 2)\r\n return \"Tax Name or Office Name\";\r\n else\r\n return \"Provider Name\";\r\n }\r\n public get idLabel(): string {\r\n if(this.dialogType && this.dialogType == 2)\r\n return \"TIN\";\r\n else\r\n return \"Provider ID\";\r\n } \r\n public get requiredName() : boolean {\r\n if(this.dialogType == 2)\r\n return false;\r\n else\r\n return true;\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","import { Component, OnInit, AfterViewInit, Provider, Input, ViewChild, Inject } from '@angular/core';\r\nimport { AuthenticationService, UserProfile } from '@caloptima/authentication';\r\nimport { ReportsService } from '../../../services/reports.service';\r\nimport { SessionService } from '../../../services/session.service';\r\nimport { saveAs } from 'file-saver';\r\nimport { DatePipe, DOCUMENT } from '@angular/common';\r\nimport { ReportType } from '../../../services/models/reportype';\r\nimport { ReportsMemberSearchComponent } from '../../../app-components/reports-member-search/reports-member-search.component';\r\nimport { UiUtility } from '../../../utils/ui-utility';\r\nimport { ReportMemberDetails } from '../../../services/models/reportmemberdetails';\r\nimport { MemberAWPStatus } from '../../../services/models/awp-detail';\r\nimport { WellnessDetails } from '../../../services/models/wellness-details';\r\nimport { BusyService } from '../../../services/busy.service';\r\nimport { ThisReceiver } from '@angular/compiler';\r\nimport { ProviderDetail } from 'src/app/services/models/provider-detail';\r\nimport { forkJoin } from 'rxjs';\r\nimport { CollectionService } from 'src/app/services/collection.service';\r\nimport { ReportsMemberEligibilityRosterComponent } from '../../reports-member-eligibility-roster/reports-member-eligibility-roster.component';\r\nimport { ProviderDetail2 } from 'src/app/services/models/provider-detail2';\r\n\r\n\r\n@Component({\r\n selector: 'app-awp-member',\r\n templateUrl: './awp-member.component.html',\r\n styleUrls: ['./awp-member.component.scss']\r\n})\r\nexport class AWPMemberComponent implements OnInit {\r\n\r\n public userProfile: UserProfile;\r\n public members:ReportMemberDetails[] = [];\r\n public displayMembers:ReportMemberDetails[] = [];\r\n public selectedMember: ReportMemberDetails;\r\n private sortColumn: string;\r\n private sortAscending: boolean;\r\n public totalRecords: number;\r\n public awpList: MemberAWPStatus[];\r\n public searchCin: string;\r\n public searchName: string;\r\n public collectionId: number;\r\n public selectedProvider: ProviderDetail;\r\n public fromProviderTab: boolean;\r\n public showAttachment: boolean;\r\n public userFullName: string;\r\n public wellnessDetails: WellnessDetails;\r\n public selectedMemberAWPStatus:MemberAWPStatus;\r\n public lastSelectedMemberCin: string;\r\n public lastMemberSearch: any;\r\n public selectedCin: string;\r\n public first: number =0;\r\n \r\n\r\n @ViewChild('memberSearch') memberSearch: ReportsMemberSearchComponent;\r\n\r\n constructor(\r\n private reportsService: ReportsService,\r\n private sessionService: SessionService,\r\n private collectionService: CollectionService,\r\n private datePipe: DatePipe,\r\n private busyService: BusyService,\r\n @Inject(DOCUMENT) private document: Document) {\r\n }\r\n\r\n ngOnInit() {\r\n this.collectionId = this.sessionService.currentPermission.providerCollectionID;\r\n this.userFullName = '';\r\n this.fromProviderTab = false;\r\n\r\n this.initialize();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n\r\n }\r\n\r\n public setProviderId(providerDetail: ProviderDetail) {\r\n this.awpList = [];\r\n this.selectedProvider = providerDetail;\r\n this.lastMemberSearch = null;\r\n this.lastSelectedMemberCin = null;\r\n this.fromProviderTab = (providerDetail != null);\r\n this.initialize(true);\r\n }\r\n\r\n public initialize(resetComponent = false) {\r\n this.sortColumn = 'memberName';\r\n this.sortAscending = true;\r\n this.selectedCin = '';\r\n this.searchCin = '';\r\n this.searchName = '';\r\n this.selectedMember = null;\r\n this.displayMembers = [];\r\n \r\n if (resetComponent) {\r\n this.memberSearch.resetSearchFilters();\r\n }\r\n\r\n if(this.selectedProvider) {\r\n\r\n this.reportsService.getMembersForReportsAWP2(this.collectionId, this.selectedProvider.calProviderID, this.selectedProvider.taxId, ReportType.AWV).subscribe(result=>{\r\n\r\n this.members = result;\r\n\r\n this.totalRecords = this.members.length;\r\n\r\n if(this.members)\r\n this.displayMembers = this.members.slice();\r\n\r\n let param: any = {\r\n \"field\": \"memberName\",\r\n \"order\": 1\r\n }\r\n this.onSort(param)\r\n\r\n if(this.lastSelectedMemberCin) {\r\n let lastselectedMember = this.displayMembers.find(x=>x.cin == this.lastSelectedMemberCin);\r\n this.lastSelectedMemberCin= null;\r\n if(lastselectedMember)\r\n this.onMemberSelected(lastselectedMember); \r\n }\r\n });\r\n }\r\n }\r\n\r\n public sortClass(column: string): string {\r\n let cls: string;\r\n if (column == this.sortColumn) {\r\n cls = this.sortAscending ? \"fa fa-chevron-up\" : \"fa fa-chevron-down\";\r\n }\r\n else {\r\n cls = \"fa fa-chevron-up\";\r\n }\r\n return cls;\r\n }\r\n\r\n public onPage(e: any) {\r\n let s = JSON.stringify(e);\r\n }\r\n\r\n public onSort(e: any): void { \r\n this.displayMembers.sort((data1, data2) => {\r\n let value1 = data1[e.field];\r\n let value2 = data2[e.field];\r\n let result = null;\r\n\r\n if (value1 == null && value2 != null)\r\n result = -1;\r\n else if (value1 != null && value2 == null)\r\n result = 1;\r\n else if (value1 == null && value2 == null)\r\n result = 0;\r\n else if (typeof value1 === 'string' && typeof value2 === 'string')\r\n result = value1.localeCompare(value2);\r\n else\r\n result = (value1 < value2) ? -1 : (value1 > value2) ? 1 : 0;\r\n\r\n return (e.order * result);\r\n });\r\n this.sortAscending = e.order == 1;\r\n this.sortColumn = e.field;\r\n }\r\n\r\n public onMemberSelected(member: ReportMemberDetails): void {\r\n this.selectedMember = member; \r\n this.awpList = [];\r\n \r\n this.reportsService.getReportFilesForMemberAWP2(this.selectedMember.providerId, this.selectedMember.cin,this.selectedMember.grgr_ck,this.selectedMember.providerTaxId, ReportType.AWV).subscribe(result=>{\r\n\r\n if(!this.selectedProvider) {\r\n this.collectionService.GetProvider2(this.selectedMember.providerId).subscribe(prov=>{\r\n\r\n this.selectedProvider = new ProviderDetail();\r\n this.selectedProvider.providerID = prov.providerID.toString();\r\n this.selectedProvider.calProviderID = prov.calProviderId;\r\n this.selectedProvider.taxId = prov.providerTaxId;\r\n this.selectedProvider.name = prov.providerName;\r\n\r\n if (!this.selectedMember.providerTaxId) \r\n this.selectedMember.providerTaxId = prov.providerTaxId;\r\n\r\n this.awpList = result; \r\n });\r\n }\r\n else {\r\n if (!this.selectedMember.providerTaxId)\r\n this.selectedMember.providerTaxId = this.selectedProvider.taxId;\r\n\r\n this.awpList = result;\r\n }\r\n });\r\n }\r\n\r\n public get displayText(): string {\r\n if(this.selectedMember && this.selectedMember.cin) {\r\n\r\n let memeberDetail: ReportMemberDetails = this.members.find(x=> x.cin === this.selectedMember.cin);\r\n\r\n if(memeberDetail) {\r\n let s = memeberDetail.memberName;\r\n return s;\r\n }\r\n else {\r\n return \"\"\r\n }\r\n }\r\n else {\r\n return \"\";\r\n }\r\n }\r\n\r\n public get enableBuildReport() : boolean {\r\n\r\n return this.selectedMember != null;\r\n }\r\n\r\n private saveAsFile(buffer: any, fileName: string, fileType: string): void {\r\n const data: Blob = new Blob([buffer], { type: fileType });\r\n saveAs(data, fileName);\r\n }\r\n\r\n public onMemberSearch(search) : void {\r\n\r\n this.lastMemberSearch = search;\r\n this.selectedMember = null;\r\n this.awpList = [];\r\n\r\n if(this.fromProviderTab) {\r\n\r\n if(search.memberId === '') {\r\n this.displayMembers = this.members.slice();\r\n this.first = 0;\r\n this.selectedCin = '';\r\n\r\n let param: any = {\r\n \"field\": \"memberName\",\r\n \"order\": 1\r\n }\r\n this.onSort(param) \r\n }\r\n else {\r\n\r\n this.displayMembers.splice(0);\r\n\r\n var items = this.members.find(x=>\r\n x.cin == search.memberId || \r\n x.medsId == search.memberId || \r\n x.mbi == search.memberId\r\n );\r\n\r\n this.displayMembers.push(items);\r\n this.selectedCin = '';\r\n this.first = 0;\r\n } \r\n \r\n }\r\n else {\r\n\r\n this.selectedProvider = null;\r\n\r\n if(search.memberId === '')\r\n {\r\n // Do nothing.\r\n }\r\n else {\r\n this.reportsService.searchMembersForReportsAWP2(ReportType.AWV, this.collectionId, search.memberName, search.memberId).subscribe(result=>{\r\n\r\n this.members = result; \r\n this.totalRecords = this.members.length;\r\n \r\n if(this.members)\r\n this.displayMembers = this.members.slice();\r\n \r\n let param: any = {\r\n \"field\": \"memberName\",\r\n \"order\": 1\r\n }\r\n this.onSort(param)\r\n \r\n if(this.lastSelectedMemberCin) {\r\n let lastselectedMember = this.displayMembers.find(x=>x.cin == this.lastSelectedMemberCin);\r\n this.lastSelectedMemberCin = null;\r\n if(lastselectedMember)\r\n this.onMemberSelected(lastselectedMember); \r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n public download(awpDetail:MemberAWPStatus) : void {\r\n if(this.isNewWellness) {\r\n this.reportsService.downloadUnansweredAWPDetailPdf(awpDetail.documentId).subscribe(result=>{\r\n\r\n var fileName: string = \"AWP_PROV_\" + this.selectedProvider.taxId + \"_\" + \r\n awpDetail.period.toString() + \"_\" +\r\n this.selectedMember.providerId + \"_\" +\r\n this.selectedMember.cin;\r\n\r\n this.saveAsFile(result, fileName + \".pdf\", 'pdf');\r\n });\r\n }\r\n else {\r\n this.reportsService.downloadReportFileForMember(this.selectedMember.providerId, this.selectedMember.cin, awpDetail.downloadFileName, ReportType.AWV).subscribe(result=>{\r\n this.saveAsFile(result, awpDetail.downloadFileName + \".pdf\", 'pdf');\r\n });\r\n }\r\n }\r\n\r\n public upload(awpDetail:MemberAWPStatus) : void {\r\n\r\n this.selectedMemberAWPStatus = awpDetail;\r\n\r\n this.wellnessDetails = new WellnessDetails();\r\n this.wellnessDetails.grgr_ck = this.selectedMember.grgr_ck;\r\n this.wellnessDetails.memberCIN = this.selectedMember.cin;\r\n this.wellnessDetails.pcpTIN = this.selectedMember.providerTaxId;\r\n this.wellnessDetails.providerId = this.selectedMember.providerId;\r\n this.wellnessDetails.wellnessYear = awpDetail.period;\r\n\r\n this.showAttachment = true;\r\n }\r\n\r\n public onCancelWellness() {\r\n this.showAttachment = false;\r\n }\r\n\r\n public get canShowAttachmentDialog(): boolean {\r\n if(this.reportsService.newWellnessForm) { \r\n if(this.selectedMemberAWPStatus && this.selectedMemberAWPStatus.usedDocument)\r\n return true;\r\n else\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n\r\n public get canShowDetailsDialog(): boolean {\r\n return !this.canShowAttachmentDialog;\r\n } \r\n\r\n public onApplyWellness(selectedMemberAWPStatus: MemberAWPStatus) {\r\n this.lastSelectedMemberCin = this.selectedMember.cin;\r\n\r\n if(this.selectedProvider) {\r\n var temp = this.selectedCin;\r\n this.initialize(true);\r\n this.selectedCin = temp;\r\n }\r\n else {\r\n this.onMemberSearch(this.lastMemberSearch);\r\n }\r\n\r\n this.showAttachment = false;\r\n }\r\n\r\n public get isNewWellness(): boolean {\r\n return this.reportsService.newWellnessForm;\r\n }\r\n\r\n public uploadCaption(item:MemberAWPStatus) : string {\r\n let currentYear: Date = new Date();\r\n let applicable:boolean = true;\r\n\r\n if(item && item.period < currentYear.getFullYear() - 1) {\r\n applicable = false;\r\n }\r\n else if(item && item.period == currentYear.getFullYear() - 1 && currentYear.getMonth() > 0) {\r\n applicable = false;\r\n }\r\n\r\n if(item.status.trim().toUpperCase() === \"SUBMITTED\"){\r\n return \"VIEW\";\r\n } \r\n else {\r\n if(applicable)\r\n return this.isNewWellness ? \"VIEW\" : \"UPLOAD\";\r\n else\r\n return \"\";\r\n } \r\n }\r\n\r\n public downloadCaption(item: MemberAWPStatus) : string {\r\n let currentYear: Date = new Date();\r\n let applicable:boolean = true;\r\n\r\n if(item && item.period < currentYear.getFullYear() - 1) {\r\n applicable = false;\r\n }\r\n else if(item && item.period == currentYear.getFullYear() - 1 && currentYear.getMonth() > 0) {\r\n applicable = false;\r\n }\r\n\r\n return (applicable) ? \"DOWNLOAD\" : \"\"; \r\n }\r\n\r\n public pendingCaption(item: MemberAWPStatus) : string {\r\n let currentYear: Date = new Date();\r\n let applicable:boolean = true;\r\n\r\n if(item && item.period < currentYear.getFullYear() - 1) {\r\n applicable = false;\r\n }\r\n else if(item && item.period == currentYear.getFullYear() - 1 && currentYear.getMonth() > 0) {\r\n applicable = false;\r\n }\r\n\r\n return (applicable) ? \"Pending\" : \"Expired\"; \r\n } \r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Name
\r\n Member ID
\r\n Provider ID
\r\n Current Year Status
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{row.memberName}}
\r\n \r\n \r\n
{{row.cin}}
\r\n \r\n \r\n
{{row.providerId}}
\r\n \r\n \r\n
{{row.status}}
\r\n
{{row.status}}
\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 Period\r\n Signed\r\n Status\r\n Unsigned\r\n Action\r\n \r\n \r\n \r\n \r\n
{{row.period}}
\r\n
{{row.signed ? \"Yes\" : \"No\"}}
\r\n \r\n
{{row.status}}
\r\n
{{pendingCaption(row)}}
\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","export class WellnessDetails {\r\n \r\n public grgr_ck: number;\r\n public wellnessYear: number;\r\n public pcpTIN: string;\r\n public memberCIN: string;\r\n public completionDate? : Date;\r\n public documentId: number;\r\n public pcpId : string;\r\n public pcpName: string;\r\n public memberName: string;\r\n public memberDOB: Date;\r\n public age: number;\r\n public healthNetworkPlanCode: string;\r\n public collectioName: string;\r\n public providerId: string;\r\n public providerName: string;\r\n public providerNPI: string;\r\n public address1: string;\r\n public address2: string;\r\n public address3: string;\r\n public city: string;\r\n public state: string;\r\n public zip: string;\r\n public groupId: string;\r\n public groupName: string;\r\n public groupTin: string;\r\n public groupNpi: string;\r\n public pymm: number;\r\n public cymm: number;\r\n public memMediCode: string;\r\n public cdpsModel: string;\r\n public capturedDiag: number;\r\n public recapturedDiag: number;\r\n public emClaims: number;\r\n public inpClaims: number;\r\n public totalClaims: number;\r\n public created: Date;\r\n public createdBy: string;\r\n public modified: Date;\r\n public modifiedBy: string;\r\n public notes: string;\r\n public medsId: string;\r\n public mbi: string;\r\n}\r\n\r\nexport class WellnessDetails2 {\r\n public grgr_ck: number;\r\n public wellnessYear: number;\r\n public pcpTIN: string;\r\n public memberCIN: string;\r\n public completionDate? : Date;\r\n public documentId: number;\r\n public pcpId : string;\r\n public memberName: string;\r\n public memberDOB: Date;\r\n public age: number;\r\n public pymm: number;\r\n public cymm: number;\r\n public memMediCode: string;\r\n public cdpsModel: string;\r\n public capturedDiag: number;\r\n public recapturedDiag: number;\r\n public emClaims: number;\r\n public inpClaims: number;\r\n public totalClaims: number;\r\n public created: Date;\r\n public createdBy: string;\r\n public modified: Date;\r\n public modifiedBy: string;\r\n public notes: string;\r\n public medsId: string;\r\n public mbi: string; \r\n public usedDocument:boolean;\r\n public additionalComments: string; \r\n public dateOfService: Date;\r\n}\r\n\r\nexport class WellnessDetails2Extend extends WellnessDetails2 {\r\n public diagnosisCaptured: WellnessDetailsDiagnosisCaptured[];\r\n public diagnosisReCaptured: WellnessDetailsDiagnosisReCaptured[];\r\n public screening: WellnessDetailsScreening[];\r\n public otherDiagnosis: WellnessDetailsOtherDiagnosis[];\r\n}\r\n\r\nexport class WellnessDetailsDiagnosisCaptured {\r\n public documentId: number;\r\n public cin: string;\r\n public grgr_ck: number;\r\n public fromDt: Date;\r\n public diagID: number;\r\n public diagCode: string;\r\n public description: string;\r\n public isChronic: string;\r\n public suppress: string;\r\n public cdpsModel: string;\r\n public diagGroup: string;\r\n public severity: string;\r\n public lastCapturedDt: Date;\r\n public lastUpdatedDate: Date;\r\n public created: Date;\r\n public createdBy: string;\r\n public modified: Date;\r\n public modifiedBy: string;\r\n public status: string;\r\n}\r\n\r\nexport class WellnessDetailsDiagnosisReCaptured extends WellnessDetailsDiagnosisCaptured {\r\n public diagCaptured: string;\r\n public diagGroupSeverityCaptured: string;\r\n public lastYear: string;\r\n public twoYears: string;\r\n}\r\n\r\nexport class WellnessDetailsScreening {\r\n public documentId: number;\r\n public memberCin: string;\r\n public screening: string;\r\n public lastUpdatedDate: Date;\r\n public created: Date;\r\n public createdBy: string;\r\n public modified: Date;\r\n public modifiedBy: string;\r\n public status: string;\r\n public completionDate: Date;\r\n}\r\n\r\nexport class WellnessDetailsOtherDiagnosis {\r\n public documentId: number;\r\n public memberCin: string;\r\n public diagCode: string;\r\n public description: string;\r\n public created: Date;\r\n public createdBy: string;\r\n public modified: Date;\r\n public modifiedBy: string;\r\n public status: string;\r\n public dateOfService: Date;\r\n public index: number;\r\n}\r\n","import { HttpEventType } from '@angular/common/http';\r\nimport { Component, OnInit, OnDestroy, Output, EventEmitter, ViewChild, AfterViewInit, Input, Provider } from '@angular/core';\r\nimport { MemberAWPStatus } from 'src/app/services/models/awp-detail';\r\nimport { BusyService } from '@caloptima/portal-foundation';\r\nimport { ReportsService } from 'src/app/services/reports.service';\r\nimport { WellnessDetails2Extend } from 'src/app/services/models/wellness-details';\r\nimport { ReportMemberDetails } from 'src/app/services/models/reportmemberdetails';\r\nimport { forkJoin, retry } from 'rxjs';\r\nimport { FileService } from 'src/app/services/file.service';\r\nimport { WellnessSearchData } from 'src/app/services/models/wellness-attachment';\r\nimport { ReportType } from 'src/app/services/models/reportype';\r\nimport { wellnessSurvey } from 'src/app/services/models/wellnessSurvey';\r\nimport { saveAs } from 'file-saver';\r\nimport { OAuthService } from 'angular-oauth2-oidc';\r\nimport { CollectionService } from 'src/app/services/collection.service';\r\nimport { MemberInfoService } from 'src/app/services/member-info.service';\r\nimport { Member } from 'src/app/services/models/member';\r\nimport { ProviderDetail } from 'src/app/services/models/provider-detail';\r\nimport { ProviderDetail2 } from 'src/app/services/models/provider-detail2';\r\nimport { AlertDangerComponent } from '../../../../app-components/alerts/alert-danger/alert-danger.component';\r\nimport { ReportWellnessDetailsComponent } from '../../awp-components/report-wellness-details/report-wellness-details.component';\r\nimport { ReportWellnessAttachmentsComponent } from '../../awp-components/report-wellness-attachments/report-wellness-attachments.component';\r\nimport { ReportWellnessSurveyComponent } from '../../awp-components/report-wellness-survey/report-wellness-survey.component';\r\n\r\n@Component({\r\n selector: 'report-wellness-details-dialog',\r\n templateUrl: './report-wellness-details-dialog.component.html',\r\n styleUrls: ['./report-wellness-details-dialog.component.scss']\r\n})\r\nexport class ReportWellnessDetailsDialogComponent implements OnInit, OnDestroy {\r\n\r\n @Input() public selectedMemberAWPStatus: MemberAWPStatus;\r\n @Input() public selectedMember: ReportMemberDetails;\r\n @Input() public selectedProvider: ProviderDetail;\r\n @Output() cancelWellness = new EventEmitter();\r\n @Output() applyWellness = new EventEmitter();\r\n public currentView: number = 1;\r\n public wellnessFileList: WellnessSearchData[];\r\n public wellnessDetails: WellnessDetails2Extend;\r\n public wellnessSurveys: wellnessSurvey[];\r\n public providerDetail: ProviderDetail2;\r\n public memberDetail: Member;\r\n public attachmentProgress: number = null;\r\n public attachments2: any[] = [];\r\n public hasUploadError2: boolean = false;\r\n public maxUploadFilesSupported2 = 5;\r\n private totalFilesSize: number = 100000000;\r\n private maxFileNameLength = 128;\r\n public isLoaded: boolean = false;\r\n public wellnessFormChanged: boolean = false;\r\n public wellnessAttachmentChanged: boolean = false;\r\n public errorMessage: string = '';\r\n public currentUser: string;\r\n public isskipped: boolean = false;\r\n @ViewChild('alertdangermessage') alertDangerComponent: AlertDangerComponent;;\r\n @ViewChild('wellnessdetailscomponent') wellnessdetailscomponent: ReportWellnessDetailsComponent;\r\n @ViewChild('wellnessattachmentcomponent') wellnessattachmentcomponent: ReportWellnessAttachmentsComponent;\r\n @ViewChild('surveycomponent') surveycomponent: ReportWellnessSurveyComponent;\r\n\r\n constructor(\r\n private reportService: ReportsService,\r\n private fileService: FileService,\r\n private memberService: MemberInfoService,\r\n private collectionService: CollectionService,\r\n private busyService: BusyService,\r\n private oauth: OAuthService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.LoadData();\r\n }\r\n\r\n LoadData() {\r\n this.hasUploadError2 = false;\r\n this.errorMessage = \"\";\r\n\r\n forkJoin([\r\n this.fileService.getWellnessAttachment(this.selectedMember.cin, this.selectedProvider.calProviderID, this.selectedProvider.taxId, this.selectedMemberAWPStatus.period),\r\n this.reportService.getReportWellnessDetails(this.selectedMemberAWPStatus.documentId),\r\n this.reportService.getReportWellnessSurvey(this.selectedMemberAWPStatus.period, this.selectedMember.providerId, this.selectedMember.cin, this.selectedMember.grgr_ck, this.selectedMember.providerTaxId, ReportType.AWV),\r\n this.collectionService.GetProvider2(this.selectedProvider.calProviderID)\r\n ]).subscribe(\r\n (result) => {\r\n if (result && result.length > 1) {\r\n this.wellnessFileList = result[0];\r\n this.wellnessDetails = result[1];\r\n this.wellnessSurveys = result[2];\r\n this.providerDetail = result[3];\r\n\r\n this.wellnessFileList.forEach(x=>{\r\n let content = \"1\";\r\n let data = new Blob([content], { type: 'application/txt' });\r\n let arrayOfBlob:Blob[] = [];\r\n arrayOfBlob.push(data);\r\n let tempFile = new File(arrayOfBlob, x.originalFileName);\r\n \r\n if(!x.isWellnessForm)\r\n this.attachments2.push(tempFile);\r\n }); \r\n\r\n const claims = this.oauth.getIdentityClaims();\r\n if (claims) {\r\n this.currentUser = claims['sub'];\r\n }\r\n\r\n this.isLoaded = true;\r\n this.isskipped = false;\r\n }\r\n },\r\n (error) => {\r\n this.hasUploadError2 = true;\r\n this.errorMessage = \"Error Loading Annual Wellness data for the member. Please try again after sometime.\"\r\n this.busyService.emit(false);\r\n }\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n }\r\n\r\n public fileAdded(event) {\r\n this.attachments2 = event;\r\n this.wellnessAttachmentChanged = true;\r\n }\r\n\r\n public fileRemoved(event) {\r\n this.attachments2 = event;\r\n this.wellnessAttachmentChanged = true;\r\n }\r\n\r\n public onWellnessFormChanges($event) {\r\n this.wellnessFormChanged = true;\r\n }\r\n\r\n public get display(): boolean {\r\n return true;\r\n }\r\n\r\n public set display(value: boolean) {\r\n this.onCancel();\r\n }\r\n\r\n public onCancel() {\r\n this.cancelWellness.emit();\r\n this.display = false;\r\n }\r\n\r\n public onCancelWellness() {\r\n if (this.currentView === 1) {\r\n this.cancelWellness.emit();\r\n this.display = false;\r\n }\r\n else if (this.currentView === 2) {\r\n this.currentView = 1;\r\n }\r\n else if (this.currentView === 3) {\r\n this.currentView = 2;\r\n\r\n setTimeout(() => {\r\n this.wellnessattachmentcomponent.setAttachments(this.attachments2);\r\n }, (500)); \r\n }\r\n }\r\n\r\n public onSkip() {\r\n this.wellnessDetails.diagnosisReCaptured.forEach(x=>{\r\n x.status = null;\r\n });\r\n\r\n this.wellnessDetails.otherDiagnosis.splice(0);\r\n\r\n this.wellnessDetails.screening.forEach(x=>{\r\n x.status = null;\r\n x.completionDate = null;\r\n });\r\n\r\n this.wellnessDetails.additionalComments = null;\r\n this.wellnessDetails.notes = null;\r\n this.wellnessDetails.dateOfService = null; \r\n\r\n this.isskipped = true;\r\n this.hasUploadError2 = false;\r\n this.errorMessage = \"\";\r\n this.currentView = 2;\r\n\r\n setTimeout(() => {\r\n this.wellnessattachmentcomponent.setAttachments(this.attachments2);\r\n }, (500)); \r\n }\r\n\r\n public onSaveAndContinueLater() {\r\n\r\n this.fixDates();\r\n\r\n this.wellnessDetails.modifiedBy = this.currentUser;\r\n this.hasUploadError2 = false;\r\n this.errorMessage = \"\"; \r\n\r\n this.busyService.emit(true);\r\n forkJoin([\r\n this.reportService.ApplyWellness2Save(this.wellnessDetails),\r\n this.reportService.ApplyWellnessSurveyAnswers(this.wellnessDetails.wellnessYear, this.selectedMember.providerId, this.selectedMember.cin, this.selectedMember.grgr_ck, ReportType.AWV, this.wellnessSurveys)\r\n ]).subscribe((result) => {\r\n\r\n this.uploadWellnessForm(false);\r\n },\r\n (error) => {\r\n this.hasUploadError2 = true;\r\n this.errorMessage = \"Error submitting the wellness form. Try submitting again !!!\"\r\n this.busyService.emit(false);\r\n });\r\n }\r\n\r\n public performWellnessFormValidation() {\r\n this.hasUploadError2 = false;\r\n this.errorMessage = \"\";\r\n\r\n if (!this.hasUploadError2) {\r\n if (this.wellnessDetails.dateOfService == null || this.wellnessDetails.dateOfService.toString() == \"\") {\r\n this.hasUploadError2 = true;\r\n this.errorMessage = \"Date of service required to submit this form.\"\r\n };\r\n }\r\n\r\n if (!this.hasUploadError2) {\r\n this.wellnessDetails.screening.forEach(x => {\r\n if (x.status && x.status.trim().toUpperCase() === \"COMPLETED\" && (x.completionDate == null || x.completionDate.toString() == \"\")) {\r\n this.hasUploadError2 = true;\r\n this.errorMessage = \"Date Completed is required for Completed screenings.\"\r\n }\r\n });\r\n }\r\n\r\n if (!this.hasUploadError2) {\r\n this.wellnessDetails.diagnosisReCaptured.forEach(element => {\r\n if (element.isChronic && element.isChronic.trim().toUpperCase() === \"Y\") {\r\n if (element.status == null || element.status == \"\") {\r\n this.hasUploadError2 = true;\r\n this.errorMessage = \"Status required for Chronic Condition.\"\r\n }\r\n }\r\n });\r\n }\r\n\r\n if (!this.hasUploadError2) {\r\n this.wellnessDetails.diagnosisReCaptured.forEach(element => {\r\n if (element.isChronic && element.isChronic.trim().toUpperCase() === \"N\") {\r\n if (element.status == null || element.status == \"\") {\r\n this.hasUploadError2 = true;\r\n this.errorMessage = \"Status required for Non-Chronic Condition.\"\r\n }\r\n }\r\n });\r\n }\r\n\r\n if (!this.hasUploadError2) {\r\n this.wellnessDetails.otherDiagnosis.forEach(element => {\r\n if (element.status == null || element.status == \"\") {\r\n this.hasUploadError2 = true;\r\n this.errorMessage = \"Status required for Other Diagnosis.\"\r\n }\r\n });\r\n }\r\n\r\n if (this.hasUploadError2) {\r\n if (this.alertDangerComponent) {\r\n this.alertDangerComponent.contentMessage = this.errorMessage;\r\n this.alertDangerComponent.setContentMessages()\r\n }\r\n }\r\n }\r\n\r\n public performAttachmentValidation() {\r\n this.hasUploadError2 = false;\r\n this.errorMessage = \"\";\r\n\r\n if(this.isskipped){\r\n\r\n var fileExists: boolean = false;\r\n this.wellnessFileList.forEach(x=>{\r\n if(!x.isWellnessForm)\r\n fileExists = true;\r\n })\r\n if(!fileExists) {\r\n fileExists = this.attachments2.length > 0;\r\n }\r\n\r\n if(!fileExists) {\r\n this.hasUploadError2 = true;\r\n this.errorMessage = \"Upload the signed document and any supporting documents you may have.\";\r\n }\r\n }\r\n }\r\n\r\n private fixDates() {\r\n if (this.wellnessDetails.dateOfService != null && this.wellnessDetails.dateOfService.toString() == \"\") {\r\n this.wellnessDetails.dateOfService = null;\r\n };\r\n\r\n this.wellnessDetails.screening.forEach(x => {\r\n if (x.completionDate != null && x.completionDate.toString() == \"\") {\r\n x.completionDate = null;\r\n }\r\n });\r\n\r\n this.wellnessDetails.otherDiagnosis.forEach(x => {\r\n if (x.dateOfService != null && x.dateOfService.toString() == \"\") {\r\n x.dateOfService = null;\r\n }\r\n });\r\n }\r\n\r\n public onApplyWellness() {\r\n if (this.currentView === 1) {\r\n\r\n this.performWellnessFormValidation();\r\n if (!this.hasUploadError2) {\r\n this.isskipped = false;\r\n this.currentView = 2;\r\n\r\n setTimeout(() => {\r\n this.wellnessattachmentcomponent.setAttachments(this.attachments2);\r\n }, (500)); \r\n }\r\n }\r\n else if (this.currentView === 2) {\r\n\r\n this.performAttachmentValidation();\r\n if(!this.hasUploadError2){\r\n this.currentView = 3;\r\n } \r\n }\r\n else if (this.currentView === 3) {\r\n\r\n this.fixDates();\r\n\r\n this.selectedMemberAWPStatus.status = \"Completed\";\r\n this.wellnessDetails.completionDate = new Date();\r\n this.wellnessDetails.modifiedBy = this.currentUser;\r\n this.hasUploadError2 = false;\r\n this.errorMessage = \"\";\r\n\r\n this.busyService.emit(true);\r\n forkJoin([\r\n this.reportService.ApplyWellness2(this.wellnessDetails),\r\n this.reportService.ApplyWellnessSurveyAnswers(this.wellnessDetails.wellnessYear, this.selectedMember.providerId, this.selectedMember.cin, this.selectedMember.grgr_ck, ReportType.AWV, this.wellnessSurveys)\r\n ]).subscribe((result) => {\r\n\r\n this.uploadWellnessForm(true);\r\n },\r\n (error) => {\r\n this.hasUploadError2 = true;\r\n this.errorMessage = \"Error submitting the wellness form. Try submitting again !!!\"\r\n this.busyService.emit(false);\r\n });\r\n }\r\n }\r\n\r\n public uploadWellnessForm(isFromSubmit: boolean) {\r\n\r\n var wellnessFormExits: WellnessSearchData = this.wellnessFileList.find(x => x.isWellnessForm);\r\n //var requireWellnessForm = isFromSubmit ? (this.wellnessFormChanged || !wellnessFormExits) : false;\r\n\r\n if (isFromSubmit) {\r\n this.reportService.downloadAWPDetailPdf(this.wellnessDetails.documentId).subscribe((wellnessForm) => {\r\n this.uploadSupportingDocuments(wellnessForm);\r\n },\r\n (error) => {\r\n this.hasUploadError2 = true;\r\n this.errorMessage = \"Error generating the wellness form. Try submitting again !!!\"\r\n this.busyService.emit(false);\r\n });\r\n }\r\n else {\r\n this.uploadSupportingDocuments(null);\r\n }\r\n }\r\n\r\n public uploadSupportingDocuments(wellnessForm: Blob) {\r\n var formData: FormData = this.getFormData(wellnessForm);\r\n if (formData) {\r\n this.fileService.uploadWellnessAttachments(formData).subscribe(x => {\r\n this.busyService.emit(false);\r\n this.applyWellness.emit();\r\n },\r\n (error) => {\r\n this.hasUploadError2 = true;\r\n this.errorMessage = \"Error uploading the attachments. Try submitting again !!!\"\r\n this.busyService.emit(false);\r\n });\r\n }\r\n else {\r\n this.busyService.emit(false);\r\n this.applyWellness.emit();\r\n }\r\n }\r\n\r\n public get getSubmitButtonText() {\r\n if (this.currentView === 1) {\r\n return \"Next\";\r\n }\r\n else if (this.currentView === 2) {\r\n return \"Next\";\r\n }\r\n else if (this.currentView === 3)\r\n return \"Submit\"\r\n }\r\n\r\n public get getCancelButtonText() {\r\n if (this.currentView === 1) {\r\n return \"Cancel\";\r\n }\r\n else if (this.currentView === 2) {\r\n return \"Back\";\r\n }\r\n else if (this.currentView === 3) {\r\n return \"Back\";\r\n }\r\n }\r\n\r\n public get getHeaderText(): string {\r\n return this.selectedMember ? this.selectedMember.memberName : \"\";\r\n }\r\n\r\n public get wellnessFormFileName(): string {\r\n var fileName: string = \"AWP_PROV_\" +\r\n this.providerDetail.providerTaxId + \"_\" +\r\n this.wellnessDetails.wellnessYear.toString() + \"_\" +\r\n this.wellnessDetails.pcpId + \"_\" +\r\n this.wellnessDetails.memberCIN + \".pdf\";\r\n return fileName;\r\n }\r\n\r\n public getNewWellnessFormFileName(): string {\r\n\r\n var fileName: string = \"AWP_PROV_\" +\r\n this.providerDetail.providerTaxId + \"_\" +\r\n this.wellnessDetails.wellnessYear.toString() + \"_\" +\r\n this.wellnessDetails.pcpId + \"_\" +\r\n this.wellnessDetails.memberCIN + \"_wellnessForm\";\r\n\r\n var temp = fileName + \".pdf\";\r\n var iloop = 1;\r\n\r\n while (this.doesExists(temp) || this.doesExists2(temp)) {\r\n temp = fileName + \"_\" + iloop.toString() + \".pdf\";\r\n iloop++;\r\n }\r\n\r\n return temp;\r\n }\r\n\r\n public getFormData(mainWellnessFormFile: Blob): FormData {\r\n let wellnessFormFiles = '';\r\n let fileToUpload: File[] = [];\r\n const formData = new FormData();\r\n\r\n if (mainWellnessFormFile) {\r\n let wellnewFile: File = new File([mainWellnessFormFile], this.getNewWellnessFormFileName());\r\n fileToUpload.push(wellnewFile);\r\n wellnessFormFiles += wellnewFile.name + \"|\";\r\n } \r\n\r\n this.attachments2.forEach(element => {\r\n if (!this.doesExists(element.name)) {\r\n fileToUpload.push(element);\r\n }\r\n });\r\n\r\n if (fileToUpload.length > 0) {\r\n\r\n let totalSize = 0;\r\n Array.from(fileToUpload)\r\n .map((file, index) => {\r\n totalSize += file.size;\r\n return formData.append('file' + index, file, file.name);\r\n });\r\n\r\n formData.append('memberId', this.selectedMember.cin);\r\n formData.append('providerid', this.selectedMember.providerId);\r\n formData.append('providertaxid', this.providerDetail.providerTaxId);\r\n formData.append('wellnessyear', this.selectedMemberAWPStatus.period.toString());\r\n\r\n if (wellnessFormFiles != '')\r\n formData.append('wellnessFiles', wellnessFormFiles);\r\n\r\n return formData;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public doesExists(fileName: string): boolean {\r\n var temp = this.wellnessFileList.find(x => x.originalFileName.trim().toUpperCase() === fileName.trim().toUpperCase())\r\n return temp ? true : false;\r\n }\r\n\r\n public doesExists2(fileName: string): boolean {\r\n var temp = this.attachments2.find(x => x.name.trim().toUpperCase() === fileName.trim().toUpperCase())\r\n return temp ? true : false;\r\n }\r\n\r\n public onPrintToPdf() {\r\n if (this.isLoaded) {\r\n this.reportService.downloadAWPDetailPdf(this.wellnessDetails.documentId).subscribe(result => {\r\n\r\n const data: Blob = new Blob([result], { type: 'text/pdf' });\r\n saveAs(data, this.wellnessFormFileName);\r\n this.busyService.emit(false);\r\n });\r\n }\r\n }\r\n\r\n public get isSubmitted(): boolean {\r\n return this.wellnessDetails && this.wellnessDetails.completionDate != null;\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 * Required field\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","import { Component, OnInit, OnDestroy, Output, EventEmitter, ViewChild, AfterViewInit, Input, Provider } from '@angular/core';\r\nimport { MemberAWPStatus } from 'src/app/services/models/awp-detail';\r\nimport { BusyService, Email } from '@caloptima/portal-foundation';\r\nimport { ReportsService } from 'src/app/services/reports.service';\r\nimport { WellnessDetails2Extend, WellnessDetailsDiagnosisCaptured, WellnessDetailsDiagnosisReCaptured, WellnessDetailsOtherDiagnosis } from 'src/app/services/models/wellness-details';\r\nimport { SelectItem } from 'primeng/api';\r\nimport { ReportMemberDetails } from 'src/app/services/models/reportmemberdetails';\r\nimport { NullLogger } from '@microsoft/signalr';\r\nimport { CollectionService } from 'src/app/services/collection.service';\r\nimport { MemberInfoService } from 'src/app/services/member-info.service';\r\nimport { forkJoin, max } from 'rxjs';\r\nimport { ProviderDetail } from 'src/app/services/models/provider-detail';\r\nimport { Member } from 'src/app/services/models/member';\r\nimport { ProviderDetailInfo } from 'src/app/services/models/provider-detail-info';\r\nimport { ProviderDetail2 } from 'src/app/services/models/provider-detail2';\r\n\r\n@Component({\r\n selector: 'report-wellness-details',\r\n templateUrl: './report-wellness-details.component.html',\r\n styleUrls: ['./report-wellness-details.component.scss']\r\n})\r\nexport class ReportWellnessDetailsComponent implements OnInit, OnDestroy {\r\n \r\n @Input() selectedMemberAWPStatus: MemberAWPStatus; \r\n @Input() selectedMember: ReportMemberDetails; \r\n @Input() wellnessDetails: WellnessDetails2Extend;\r\n @Input() providerDetail: ProviderDetail2;\r\n @Input() memberDetail: Member; \r\n @Output() onItemChange = new EventEmitter();\r\n public screeningStatusList: SelectItem[] = [];\r\n public diagnosisStatusList: SelectItem[] = [];\r\n public statusList: SelectItem[] = [];\r\n public chronicDiagnosis: WellnessDetailsDiagnosisReCaptured[] = [];\r\n public nonChronicDiagnosis: WellnessDetailsDiagnosisReCaptured[] = [];\r\n public showAddDiagnosis:boolean = false;\r\n\r\n\r\n constructor(\r\n private busyService: BusyService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.screeningStatusList.push(\r\n { label: 'Member Refused', value: 'Member Refused' },\r\n { label: 'Completed', value: 'Completed' },\r\n { label: 'Ordered/Referred', value: 'Ordered/Referred' },\r\n { label: 'Not Applicable', value: 'Not Applicable' },\r\n { label: 'Select One', value: null }\r\n ) \r\n \r\n this.diagnosisStatusList.push(\r\n { label: 'Undetermined', value: 'Undetermined' }, \r\n { label: 'Present', value: 'Present' },\r\n { label: 'Not Present', value: 'Not Present' },\r\n { label: 'Select One', value: null }\r\n ) \r\n\r\n this.statusList.push(\r\n { label: 'Undetermined', value: 'Undetermined' },\r\n { label: 'Present', value: 'Present' },\r\n { label: 'Not Present', value: 'Not Present' },\r\n { label: 'Select One', value: null }\r\n ) \r\n\r\n this.LoadData();\r\n }\r\n\r\n ngOnDestroy() { \r\n }\r\n\r\n LoadData() {\r\n\r\n if(this.wellnessDetails) \r\n {\r\n this.chronicDiagnosis = [];\r\n this.nonChronicDiagnosis = [];\r\n\r\n this.wellnessDetails.diagnosisReCaptured.forEach(diag=>{\r\n if(diag.isChronic && diag.isChronic.trim().toUpperCase() === \"Y\") {\r\n this.chronicDiagnosis.push(diag);\r\n }\r\n else{\r\n this.nonChronicDiagnosis.push(diag);\r\n }\r\n }); \r\n\r\n var index: number= 1;\r\n this.wellnessDetails.otherDiagnosis.forEach(x=>{\r\n x.index = index;\r\n index++;\r\n });\r\n }\r\n }\r\n\r\n public get additionalComments(): string {\r\n if(this.wellnessDetails && this.wellnessDetails.additionalComments)\r\n return this.wellnessDetails.additionalComments;\r\n else \r\n return \"\";\r\n }\r\n\r\n public set additionalComments(val:string) {\r\n if(this.wellnessDetails)\r\n this.wellnessDetails.additionalComments = val;\r\n }\r\n\r\n public get notes(): string {\r\n if(this.wellnessDetails && this.wellnessDetails.notes)\r\n return this.wellnessDetails.notes;\r\n else \r\n return \"\";\r\n }\r\n\r\n public set notes(val:string) {\r\n if(this.wellnessDetails)\r\n this.wellnessDetails.notes = val;\r\n }\r\n\r\n public get showData() : string{\r\n if(this.wellnessDetails)\r\n return JSON.stringify(this.wellnessDetails);\r\n else\r\n return \"\";\r\n }\r\n \r\n public diagnosisAdded($event) {\r\n\r\n if(this.wellnessDetails) {\r\n let temp: WellnessDetailsOtherDiagnosis = new WellnessDetailsOtherDiagnosis();\r\n temp.description = $event.name;\r\n temp.diagCode = $event.id;\r\n temp.documentId = this.wellnessDetails.documentId;\r\n temp.status = null;\r\n temp.memberCin = this.selectedMember.cin;\r\n this.wellnessDetails.otherDiagnosis.push(temp);\r\n\r\n this.onItemChange.emit();\r\n }\r\n\r\n this.showAddDiagnosis = false;\r\n }\r\n\r\n public onChange($event) {\r\n this.onItemChange.emit();\r\n }\r\n\r\n public get getAddress(): string {\r\n if(this.providerDetail)\r\n return this.providerDetail.address1 +\", \" + (this.providerDetail.address2 && this.providerDetail.address2 !== '' ? this.providerDetail.address2 + \", \" : \"\") + this.providerDetail.city + \", \" + this.providerDetail.state + \", \" + this.providerDetail.zipCode;\r\n else\r\n return \"\";\r\n }\r\n\r\n public get dateOfService():Date {\r\n if(this.wellnessDetails)\r\n return this.wellnessDetails.dateOfService;\r\n\r\n return null;\r\n }\r\n\r\n public set dateOfService($value: Date) {\r\n if(this.wellnessDetails)\r\n this.wellnessDetails.dateOfService = $value;\r\n }\r\n\r\n public removeDiagnosis(diag) {\r\n if(diag){\r\n var index = this.wellnessDetails.otherDiagnosis.indexOf(diag);\r\n if(index >= 0) {\r\n this.wellnessDetails.otherDiagnosis.splice(index,1);\r\n this.onItemChange.emit();\r\n }\r\n } \r\n }\r\n\r\n public diagnosisCancelled() {\r\n this.showAddDiagnosis = false;\r\n }\r\n\r\n public onAddDiagnostic() {\r\n\r\n if(this.wellnessDetails) {\r\n\r\n var maxIndex: number = 1;\r\n this.wellnessDetails.otherDiagnosis.forEach(x=>{\r\n if(x.index > maxIndex)\r\n maxIndex = x.index;\r\n });\r\n\r\n let temp: WellnessDetailsOtherDiagnosis = new WellnessDetailsOtherDiagnosis();\r\n temp.description = \"\";\r\n temp.diagCode = \"\";\r\n temp.documentId = this.wellnessDetails.documentId;\r\n temp.status = \"Present\";\r\n temp.memberCin = this.selectedMember.cin;\r\n temp.index = maxIndex + 1;\r\n this.wellnessDetails.otherDiagnosis.push(temp);\r\n\r\n this.onItemChange.emit();\r\n }\r\n\r\n //this.showAddDiagnosis = true;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n Member ID\r\n
\r\n
\r\n {{wellnessDetails ? wellnessDetails.memberCIN : ''}}\r\n
\r\n
\r\n Date of Birth\r\n
\r\n
\r\n {{wellnessDetails ? wellnessDetails.memberDOB : ''}}\r\n
\r\n
\r\n
\r\n
\r\n Provider name\r\n
\r\n
\r\n {{providerDetail ? providerDetail.providerName : ''}}\r\n
\r\n
\r\n Address\r\n
\r\n
\r\n {{getAddress}}\r\n
\r\n
\r\n
\r\n
\r\n If other provider, specify NPI\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Date of Service
\r\n \r\n
\r\n
\r\n
\r\n Date of Service *\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Preventative Health
\r\n \r\n
\r\n
\r\n
\r\n Screening to Consider\r\n
\r\n
\r\n Date Completed\r\n
\r\n
\r\n Status\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
Chronic Conditions
\r\n \r\n
\r\n
\r\n
\r\n Potential Diagnosis\r\n
\r\n
\r\n Diagnosis Code\r\n
\r\n
\r\n Status *\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
Non-Chronic Conditions
\r\n \r\n
\r\n
\r\n
\r\n Potential Diagnosis\r\n
\r\n
\r\n Diagnosis Code\r\n
\r\n
\r\n Status *\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
Other Diagnosis
\r\n \r\n
\r\n
\r\n
\r\n Potential Diagnosis\r\n
\r\n
\r\n Diagnosis Code\r\n
\r\n \r\n
\r\n Status * \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 Additional Comment\r\n
\r\n
\r\n \r\n
500\">\r\n Must have 500 max character limit.\r\n
\r\n
\r\n {{additionalComments.length}} / 500 characters\r\n
\r\n
\r\n \r\n
","import { HttpEventType } from '@angular/common/http';\r\nimport { Component, OnInit, OnDestroy, ViewChild, Input, Output, EventEmitter, NgModule, VERSION, AfterViewInit } from '@angular/core';\r\nimport { BusyService } from '@caloptima/portal-foundation';\r\nimport { FileUpload } from 'primeng/fileupload';\r\nimport { FileService } from 'src/app/services/file.service';\r\nimport { MemberAWPStatus } from 'src/app/services/models/awp-detail';\r\nimport { ReportMemberDetails } from 'src/app/services/models/reportmemberdetails';\r\nimport { WellnessSearchData } from 'src/app/services/models/wellness-attachment';\r\nimport { UiUtility } from 'src/app/utils/ui-utility';\r\nimport { saveAs } from 'file-saver';\r\n\r\n@Component({\r\n selector: 'report-wellness-attachments',\r\n templateUrl: './report-wellness-attachments.component.html',\r\n styleUrls: ['./report-wellness-attachments.component.scss']\r\n})\r\nexport class ReportWellnessAttachmentsComponent implements OnInit, OnDestroy {\r\n \r\n @Input() selectedMemberAWPStatus: MemberAWPStatus; \r\n @Input() selectedMember: ReportMemberDetails; \r\n @Input() wellnessFileList: WellnessSearchData[];\r\n @Output() onFileAdded = new EventEmitter();\r\n @Output() onFileRemoved = new EventEmitter();\r\n @ViewChild('fileUpload2') fileUpload2: FileUpload;\r\n \r\n public attachmentProgress: number = null;\r\n public attachments2: any[] = [];\r\n public hasUploadError2: boolean;\r\n public maxUploadFilesSupported2 = 5;\r\n private totalFilesSize: number = 100000000;\r\n private maxFileNameLength = 128;\r\n public attachmentError: boolean = false;\r\n \r\n \r\n constructor(\r\n private busyService: BusyService,\r\n private fileService: FileService\r\n ) \r\n {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n\r\n ngOnDestroy() { \r\n }\r\n\r\n public setAttachments(attachments: any[]) {\r\n this.attachments2 = attachments;\r\n setTimeout(()=>{\r\n if(this.fileUpload2)\r\n this.fileUpload2.files = this.attachments2;\r\n },1000);\r\n }\r\n\r\n public onSelect(event) {\r\n let totalSize = 0;\r\n let filesRemove = [];\r\n let hasUploadError: boolean = false;\r\n let validate = false;\r\n let index = 0;\r\n let validFiles = 0;\r\n let removeOnError = false;\r\n let addedFiles: File[] = [];\r\n let moreThanMaxfiles = false; \r\n\r\n for (let file of this.fileUpload2.files) {\r\n validate = true;\r\n removeOnError = true; \r\n\r\n if (this.findDuplicateInCurrentList(file)) {\r\n this.fileUpload2.msgs.push({ detail: 'Duplicate file', severity: \"error\", summary: file.name });\r\n validate = false;\r\n }\r\n\r\n if (validate && this.wellnessFileList.find(x=>x.originalFileName.trim().toUpperCase() === file.name.trim().toUpperCase() && x.isWellnessForm)) {\r\n this.fileUpload2.msgs.push({ detail: 'Supporting document file name cannot be same as Wellness form file name.', severity: \"error\", summary: file.name });\r\n validate = false;\r\n } \r\n\r\n if(validate && addedFiles.find(x=>this.getFileName(x.name).trim().toUpperCase() === this.getFileName(file.name).trim().toUpperCase())) {\r\n this.fileUpload2.msgs.push({ detail: 'Duplicate file', severity: \"error\", summary: file.name });\r\n validate = false;\r\n removeOnError = false;\r\n }\r\n\r\n if (validate && file.name.length > this.maxFileNameLength) {\r\n this.fileUpload2.msgs.push({ detail: 'File name is too long, cannot exceed ' + this.maxFileNameLength + ' chars', severity: \"error\", summary: file.name })\r\n validate = false;\r\n }\r\n\r\n if (validate && /[>:\"?*`[\\]\\\\#&]/g.test(file.name)) {\r\n this.fileUpload2.msgs.push({ detail: 'File name cannot contain special characters - >:\"/\\|?*&#', severity: \"error\", summary: file.name })\r\n validate = false;\r\n } \r\n\r\n if(validate && (totalSize + file.size) > this.totalFilesSize){\r\n this.fileUpload2.msgs.push({ detail: '', severity: \"error\", summary: 'Cannot upload files, total size cannot exceed 100 MB' });\r\n validate = false; \r\n }\r\n\r\n if(validate && (validFiles + 1) > this.maxUploadFilesSupported2) {\r\n if(!moreThanMaxfiles) {\r\n this.fileUpload2.msgs.push({ detail: '', severity: \"error\", summary: 'Cannot upload more than ' + this.maxUploadFilesSupported2 + ' files' });\r\n }\r\n \r\n validate = false;\r\n moreThanMaxfiles = true;\r\n }\r\n\r\n if (validate) {\r\n totalSize = (totalSize + file.size);\r\n validFiles++;\r\n addedFiles.push(file);\r\n }\r\n else {\r\n if(removeOnError){\r\n filesRemove.push(index);\r\n }\r\n \r\n hasUploadError = true;\r\n }\r\n\r\n index++;\r\n }\r\n\r\n for (let i = filesRemove.length - 1; i >= 0; i--) {\r\n this.fileUpload2.remove(event, filesRemove[i]);\r\n } \r\n\r\n if (!hasUploadError && this.fileUpload2.files.length > 0) {\r\n this.fileUpload2.msgs.push({ detail: '', severity: \"success\", summary: 'Success! Your file(s) loaded successfully.' });\r\n }\r\n\r\n this.attachments2 = [...this.fileUpload2.files]; \r\n\r\n this.onFileAdded.emit(this.attachments2);\r\n }\r\n\r\n public get enableUpload(): boolean {\r\n /*\r\n let currentYear: Date = new Date();\r\n let returnValue:boolean = true;\r\n \r\n if(this.selectedMemberAWPStatus && this.selectedMemberAWPStatus.period < currentYear.getFullYear() - 1) {\r\n returnValue = false;\r\n }\r\n else if(this.selectedMemberAWPStatus && this.selectedMemberAWPStatus.period == currentYear.getFullYear() - 1 && currentYear.getMonth() > 0) {\r\n returnValue = false;\r\n }\r\n \r\n return returnValue;\r\n */\r\n return true;\r\n }\r\n\r\n public onRemove2(event: Event, file: any) {\r\n const index: number = this.attachments2.indexOf(file);\r\n this.fileUpload2.remove(event, index);\r\n this.attachments2 = [...this.fileUpload2.files];\r\n this.hasUploadError2 = false;\r\n\r\n this.onFileRemoved.emit(this.attachments2);\r\n }\r\n\r\n public fileUploadDateTime(fileName: string) : string {\r\n var item = this.wellnessFileList.find(x=>x.originalFileName.trim().toUpperCase() === fileName.trim().toUpperCase());\r\n return (item && item.created) ? item.created.toString() : \"\";\r\n }\r\n\r\n private findDuplicateInCurrentList(newFile): boolean {\r\n\r\n let newFileName:string = this.getFileName(newFile.name);\r\n\r\n var item = this.attachments2.find(x=>this.getFileName(x.name).trim().toUpperCase() === newFileName.trim().toUpperCase());\r\n if(item && item != newFile) { \r\n return true;\r\n }\r\n else{\r\n return false;\r\n }\r\n }\r\n\r\n private getFileName(fileName: string): string {\r\n return fileName;\r\n }\r\n\r\n public doesExists(fileName:string): boolean {\r\n var temp = this.wellnessFileList.find(x=>this.getFileName(x.originalFileName).trim().toUpperCase() === this.getFileName(fileName).trim().toUpperCase())\r\n return temp ? true : false;\r\n }\r\n\r\n public fileSize(originalFileName:string): string {\r\n\r\n var item = this.wellnessFileList.find(x=> x.originalFileName.trim().toUpperCase() === originalFileName.trim().toUpperCase());\r\n if(item) {\r\n return this.formatSize(item.fileSize);\r\n }\r\n else {\r\n var item1 = this.attachments2.find(x=>x.name.trim().toUpperCase() === originalFileName.trim().toUpperCase());\r\n\r\n if(!item1)\r\n item1 = this.attachments2.find(x=>x.name.trim().toUpperCase() === originalFileName.trim().toUpperCase()); \r\n\r\n if(item1)\r\n return this.formatSize(item1.size);\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n public formatSize(bytes) : string {\r\n if (bytes == 0) {\r\n return '0 B';\r\n }\r\n var k = 1000,\r\n dm = 1,\r\n sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'],\r\n i = Math.floor(Math.log(bytes) / Math.log(k));\r\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\r\n };\r\n\r\n public fileType(name: string) : string {\r\n let fileType = name.split('.').pop().toLowerCase();\r\n\r\n if (['jpg', 'jpeg', 'png', 'bmp', 'tif'].indexOf(fileType) > -1) {\r\n return 'img';\r\n }\r\n else if (['doc', 'docx'].indexOf(fileType) > -1) {\r\n return 'docx';\r\n }\r\n else if (['csv', 'xls', 'xlsx'].indexOf(fileType) > -1) {\r\n return 'csv';\r\n }\r\n else if (['htm', 'xps', 'rtf', 'html', 'msg', 'txt'].indexOf(fileType) > -1) {\r\n return 'file';\r\n }\r\n else if (fileType === 'pdf') {\r\n return 'pdf';\r\n }\r\n else {\r\n return '';\r\n }\r\n }\r\n\r\n public onDownload(filename:string) {\r\n var temp = this.wellnessFileList.find(x=>x.originalFileName.trim().toUpperCase() == filename.trim().toUpperCase())\r\n if(temp){\r\n this.fileService.getWellnessAttachmentFile(temp.wellnessAttachmentID, temp.originalFileName).subscribe(result =>{\r\n const bytesArray = UiUtility.convertBase64ToArrayBuffer(result.fileStreamData);\r\n this.saveAsFile(bytesArray, result.originalFileName, result.fileContentType);\r\n });\r\n }\r\n }\r\n\r\n private saveAsFile(buffer: any, fileName: string, fileType: string): void {\r\n const data: Blob = new Blob([buffer], { type: fileType });\r\n saveAs(data, fileName);\r\n }\r\n}\r\n","
\r\n
\r\n Do you have any supporting documents? Acceptable documents include *.pdf, *.docx, *.xlsx, and images files (5 items total)\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n There are 0 supporting documents for this member.\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 {{file.name}}\r\n
    \r\n
    \r\n {{file.name}}\r\n
    \r\n
    \r\n | {{fileSize(file.name)}}\r\n
    \r\n
    \r\n | {{fileUploadDateTime(file.name) | date:'yyyy-MM-dd hh:mm a'}}\r\n
    \r\n
    \r\n \r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n Upload up to {{maxUploadFilesSupported2}} files. Max file size 25MB.\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { ConsoleLogger } from '@microsoft/signalr/dist/esm/Utils';\r\nimport { wellnessSurvey } from 'src/app/services/models/wellnessSurvey';\r\n\r\n@Component({\r\n selector: 'report-wellness-survey',\r\n templateUrl: './report-wellness-survey.component.html',\r\n styleUrls: ['./report-wellness-survey.component.scss']\r\n})\r\nexport class ReportWellnessSurveyComponent implements OnInit {\r\n @Input() wellnessSurveys: wellnessSurvey[] = [];\r\n @Output() onItemChange = new EventEmitter();\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n \r\n }\r\n\r\n public optionList(item: wellnessSurvey): string[] {\r\n return item.options;\r\n }\r\n\r\n public checkvalue($event, wellnessSurvey:wellnessSurvey){\r\n \r\n wellnessSurvey.answer = \"\";\r\n $event.checked.forEach(x=>{\r\n wellnessSurvey.answer += x + \"|\";\r\n });\r\n\r\n if(wellnessSurvey.answer.trim().toUpperCase().includes(\"NONE OF THE ABOVE\")){\r\n wellnessSurvey.answer = \"None of the above\";\r\n wellnessSurvey.checkedAnswer = [];\r\n wellnessSurvey.checkedAnswer.push(\"None of the above\");\r\n }\r\n\r\n if(wellnessSurvey.answer.endsWith(\"|\"))\r\n wellnessSurvey.answer = wellnessSurvey.answer.slice(0, wellnessSurvey.answer.length-1);\r\n\r\n this.onItemChange.emit();\r\n }\r\n\r\n public onChangeType(type, event) {\r\n this.onItemChange.emit();\r\n } \r\n}\r\n\r\n\r\n","
\r\n
\r\n

Social Determinants of Health Questionnaire

\r\n
\r\n
\r\n
\r\n
\r\n {{wellnessSurvey.question}}\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
","import { Component, OnInit, OnDestroy, Output, EventEmitter, ViewChild, Input } from '@angular/core';\r\nimport { CollectionService } from '../../../../services/collection.service';\r\nimport { FileUpload } from 'primeng/fileupload';\r\nimport { WellnessDetails, WellnessDetails2Extend } from 'src/app/services/models/wellness-details';\r\nimport { MemberAWPStatus } from 'src/app/services/models/awp-detail';\r\nimport { BusyService } from '@caloptima/portal-foundation';\r\nimport { HttpEventType } from '@angular/common/http';\r\nimport { FileService } from '../../../../services/file.service';\r\nimport { WellnessSearchData } from '../../../../services/models/wellness-attachment';\r\nimport { UiUtility } from '../../../../utils/ui-utility';\r\nimport { saveAs } from 'file-saver';\r\nimport { ReportMemberDetails } from 'src/app/services/models/reportmemberdetails';\r\nimport { ReportsService } from 'src/app/services/reports.service';\r\n\r\n@Component({\r\n selector: 'report-wellness-attachment-dialog',\r\n templateUrl: './report-wellness-attachment-dialog.component.html',\r\n styleUrls: ['./report-wellness-attachment-dialog.component.scss']\r\n})\r\nexport class ReportWellnessAttachmentDialogComponent implements OnInit, OnDestroy {\r\n\r\n public attachments1: any[] = [];\r\n public attachments2: any[] = [];\r\n public maxUploadFilesSupported1 = 5;\r\n public maxUploadFilesSupported2 = 5;\r\n public hasUploadError1: boolean;\r\n public hasUploadError2: boolean;\r\n public currentView = 1;\r\n private totalFilesSize: number = 100000000;\r\n private maxFileNameLength = 128;\r\n public attachmentProgress: number = null;\r\n public attachmentError: boolean = false;\r\n public editComment: boolean = true;\r\n \r\n @Input() public selectedMemberAWPStatus: MemberAWPStatus; \r\n @Input() public selectedMember:ReportMemberDetails;\r\n @Output() cancelWellness = new EventEmitter();\r\n @Output() applyWellness = new EventEmitter();\r\n private wellnessFileList: WellnessSearchData[];\r\n @ViewChild('fileUpload1') fileUpload1: FileUpload;\r\n @ViewChild('fileUpload2') fileUpload2: FileUpload;\r\n \r\n constructor(\r\n private collectionService: CollectionService,\r\n private busyService: BusyService,\r\n private fileService: FileService,\r\n private reportService: ReportsService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.fileService.getWellnessAttachment(this.selectedMember.cin, this.selectedMember.providerId, this.selectedMember.providerTaxId, this.selectedMemberAWPStatus.period).subscribe(results=>{\r\n\r\n this.wellnessFileList = results;\r\n\r\n results.forEach(x=>{\r\n let content = \"1\";\r\n let data = new Blob([content], { type: 'application/txt' });\r\n let arrayOfBlob:Blob[] = [];\r\n arrayOfBlob.push(data);\r\n let tempFile = new File(arrayOfBlob, x.originalFileName);\r\n\r\n if(x.isWellnessForm)\r\n this.attachments1.push(tempFile);\r\n else\r\n this.attachments2.push(tempFile);\r\n });\r\n\r\n if(this.selectedMemberAWPStatus && this.selectedMemberAWPStatus.notes && this.selectedMemberAWPStatus.notes.length > 0) {\r\n this.editComment = false;\r\n }\r\n \r\n if(this.fileUpload1)\r\n this.fileUpload1.files = this.attachments1;\r\n });\r\n }\r\n\r\n ngOnDestroy() { \r\n }\r\n\r\n ngAfterViewInit() {\r\n }\r\n\r\n public get display():boolean {\r\n return true;\r\n }\r\n\r\n public get caption(): string {\r\n if(this.currentView === 1)\r\n return \"Upload AWV Form\";\r\n else\r\n return \"Supporting Documents (optional)\";\r\n }\r\n\r\n public set display(value:boolean) {\r\n this.onCancel();\r\n }\r\n\r\n public onCancel() {\r\n this.cancelWellness.emit();\r\n }\r\n\r\n public onContinue() {\r\n if(this.currentView == 1) {\r\n\r\n this.currentView = 2;\r\n\r\n setTimeout(() => {\r\n if(this.fileUpload2) {\r\n this.fileUpload2.files = this.attachments2;\r\n }\r\n }, 500);\r\n }\r\n else {\r\n\r\n var wellnessDetails = new WellnessDetails();\r\n wellnessDetails.grgr_ck = this.selectedMember.grgr_ck;\r\n wellnessDetails.memberCIN = this.selectedMember.cin;\r\n wellnessDetails.pcpId = this.selectedMember.providerId;\r\n wellnessDetails.providerId = this.selectedMember.providerId;\r\n wellnessDetails.pcpTIN = this.selectedMember.providerTaxId;\r\n wellnessDetails.wellnessYear = this.selectedMemberAWPStatus.period;\r\n wellnessDetails.notes = this.selectedMemberAWPStatus.notes;\r\n wellnessDetails.documentId = this.selectedMemberAWPStatus.documentId;\r\n wellnessDetails.completionDate = this.attachments1.length > 0 ? new Date() : null;\r\n this.selectedMemberAWPStatus.status = this.attachments1.length > 0 ? \"Completed\" : this.selectedMemberAWPStatus.status;\r\n\r\n this.reportService.ApplyWellness(wellnessDetails).subscribe(results=> {\r\n var formData:FormData = this.getFormData();\r\n if(formData){\r\n this.fileService.uploadWellnessAttachments(formData).subscribe(x=>{\r\n this.busyService.emit(false);\r\n this.applyWellness.emit(); \r\n },\r\n (error)=>{\r\n this.busyService.emit(false); \r\n });\r\n }\r\n else {\r\n this.busyService.emit(false);\r\n this.applyWellness.emit(); \r\n }\r\n },\r\n (error)=>{\r\n this.busyService.emit(false);\r\n });\r\n }\r\n }\r\n\r\n public get submitText() {\r\n if(this.currentView === 1) {\r\n return \"Continue\";\r\n }\r\n else {\r\n return \"Submit\";\r\n } \r\n }\r\n\r\n public onSelect1(event) {\r\n this.hasUploadError1 = this.onSelect(event, this.fileUpload1, this.attachments1, this.maxUploadFilesSupported1);\r\n this.attachments1 = [...this.fileUpload1.files];\r\n }\r\n\r\n public onSelect2(event) {\r\n this.hasUploadError2 = this.onSelect(event, this.fileUpload2, this.attachments1, this.maxUploadFilesSupported2);\r\n this.attachments2 = [...this.fileUpload2.files];\r\n }\r\n\r\n public onDownload(filename:string) {\r\n var temp = this.wellnessFileList.find(x=>x.originalFileName.trim().toUpperCase() == filename.trim().toUpperCase())\r\n if(temp){\r\n this.fileService.getWellnessAttachmentFile(temp.wellnessAttachmentID, temp.originalFileName).subscribe(result =>{\r\n const bytesArray = UiUtility.convertBase64ToArrayBuffer(result.fileStreamData);\r\n this.saveAsFile(bytesArray, result.originalFileName, result.fileContentType);\r\n });\r\n }\r\n }\r\n\r\n private saveAsFile(buffer: any, fileName: string, fileType: string): void {\r\n const data: Blob = new Blob([buffer], { type: fileType });\r\n saveAs(data, fileName);\r\n }\r\n\r\n public onSelect(event, fileUpload: FileUpload, attachments:any[], maxUploadFilesSupported: number) : boolean {\r\n let totalSize = 0;\r\n let filesRemove = [];\r\n let hasUploadError: boolean = false;\r\n let validate = false;\r\n let index = 0;\r\n let validFiles = 0;\r\n let removeOnError = false;\r\n let addedFiles: File[] = [];\r\n let duplicateAdded: boolean = false;\r\n let moreThanMaxfiles = false;\r\n \r\n let newFiles: File[] = Array.from(event.files);\r\n\r\n for (let file of fileUpload.files) {\r\n\r\n validate = true;\r\n removeOnError = true; \r\n\r\n if (this.findDuplicateInCurrentList(file)) {\r\n fileUpload.msgs.push({ detail: 'Duplicate file', severity: \"error\", summary: file.name });\r\n validate = false;\r\n duplicateAdded = true;\r\n }\r\n\r\n if (validate && this.findDuplicateInOtherList(file)) {\r\n fileUpload.msgs.push({ detail: 'Duplicate file', severity: \"error\", summary: file.name });\r\n validate = false;\r\n duplicateAdded = true;\r\n }\r\n\r\n if(validate && addedFiles.find(x=>this.getFileName(x.name).trim().toUpperCase() === this.getFileName(file.name).trim().toUpperCase())) {\r\n fileUpload.msgs.push({ detail: 'Duplicate file', severity: \"error\", summary: file.name });\r\n validate = false;\r\n removeOnError = false;\r\n duplicateAdded = true;\r\n }\r\n\r\n if (validate && file.name.length > this.maxFileNameLength) {\r\n fileUpload.msgs.push({ detail: 'File name is too long, cannot exceed ' + this.maxFileNameLength + ' chars', severity: \"error\", summary: file.name })\r\n validate = false;\r\n }\r\n\r\n if (validate && /[>:\"?*`[\\]\\\\#&]/g.test(file.name)) {\r\n fileUpload.msgs.push({ detail: 'File name cannot contain special characters - >:\"/\\|?*&#', severity: \"error\", summary: file.name })\r\n validate = false;\r\n } \r\n\r\n if(validate && (totalSize + file.size) > this.totalFilesSize){\r\n fileUpload.msgs.push({ detail: '', severity: \"error\", summary: 'Cannot upload files, total size cannot exceed 100 MB' });\r\n validate = false; \r\n }\r\n\r\n if(validate && (validFiles + 1) > maxUploadFilesSupported) {\r\n if(!moreThanMaxfiles) {\r\n fileUpload.msgs.push({ detail: '', severity: \"error\", summary: 'Cannot upload more than ' + maxUploadFilesSupported + ' files' });\r\n }\r\n \r\n validate = false;\r\n moreThanMaxfiles = true;\r\n }\r\n\r\n if (validate) {\r\n totalSize = (totalSize + file.size);\r\n validFiles++;\r\n addedFiles.push(file);\r\n }\r\n else {\r\n if(removeOnError){\r\n filesRemove.push(index);\r\n }\r\n \r\n hasUploadError = true;\r\n }\r\n\r\n index++;\r\n }\r\n\r\n for (let i = filesRemove.length - 1; i >= 0; i--) {\r\n fileUpload.remove(event, filesRemove[i]);\r\n } \r\n\r\n if (!hasUploadError && fileUpload.files.length > 0) {\r\n fileUpload.msgs.push({ detail: '', severity: \"success\", summary: 'Success! Your file(s) loaded successfully.' });\r\n }\r\n\r\n return hasUploadError;\r\n }\r\n\r\n public onRemove1(event: Event, file: any) {\r\n const index: number = this.attachments1.indexOf(file);\r\n this.fileUpload1.remove(event, index);\r\n this.attachments1 = [...this.fileUpload1.files];\r\n this.hasUploadError1 = false;\r\n }\r\n\r\n public onRemove2(event: Event, file: any) {\r\n const index: number = this.attachments2.indexOf(file);\r\n this.fileUpload2.remove(event, index);\r\n this.attachments2 = [...this.fileUpload2.files];\r\n this.hasUploadError2 = false;\r\n }\r\n\r\n private findDuplicate(file: any, newFiles: any[]): boolean {\r\n\r\n return Array.from(newFiles).filter((newFile) => {\r\n let newFileName:string = this.getFileName(newFile.name);\r\n let fileName:string = this.getFileName(file.name);\r\n return newFileName.trim().toUpperCase() === fileName.trim().toUpperCase();\r\n }).length > 0;\r\n }\r\n\r\n private findDuplicateInOtherList(newFile): boolean {\r\n\r\n let newFileName:string = this.getFileName(newFile.name);\r\n\r\n let attachments = this.currentView == 1 ? this.attachments2 : this.attachments1;\r\n\r\n var item = attachments.find(x=>this.getFileName(x.name).trim().toUpperCase() === newFileName.trim().toUpperCase());\r\n if(item) {\r\n return true;\r\n }\r\n else{\r\n return false;\r\n }\r\n }\r\n\r\n private findDuplicateInCurrentList(newFile): boolean {\r\n\r\n let newFileName:string = this.getFileName(newFile.name);\r\n\r\n let attachments = this.currentView == 1 ? this.attachments1 : this.attachments2;\r\n\r\n var item = attachments.find(x=>this.getFileName(x.name).trim().toUpperCase() === newFileName.trim().toUpperCase());\r\n if(item && item != newFile) { \r\n return true;\r\n }\r\n else{\r\n return false;\r\n }\r\n}\r\n\r\n private getFileName(fileName: string): string {\r\n //return fileName.replace(' ', '+');\r\n return fileName;\r\n }\r\n\r\n public fileSize(originalFileName:string): string {\r\n\r\n var item = this.wellnessFileList.find(x=> x.originalFileName.trim().toUpperCase() === originalFileName.trim().toUpperCase());\r\n if(item) {\r\n return this.formatSize(item.fileSize);\r\n }\r\n else {\r\n var item1 = this.attachments1.find(x=>x.name.trim().toUpperCase() === originalFileName.trim().toUpperCase());\r\n\r\n if(!item1)\r\n item1 = this.attachments2.find(x=>x.name.trim().toUpperCase() === originalFileName.trim().toUpperCase()); \r\n\r\n if(item1)\r\n return this.formatSize(item1.size);\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n public formatSize(bytes) : string {\r\n if (bytes == 0) {\r\n return '0 B';\r\n }\r\n var k = 1000,\r\n dm = 1,\r\n sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'],\r\n i = Math.floor(Math.log(bytes) / Math.log(k));\r\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\r\n };\r\n\r\n public fileType(name: string) : string {\r\n let fileType = name.split('.').pop().toLowerCase();\r\n\r\n if (['jpg', 'jpeg', 'png', 'bmp', 'tif'].indexOf(fileType) > -1) {\r\n return 'img';\r\n }\r\n else if (['doc', 'docx'].indexOf(fileType) > -1) {\r\n return 'docx';\r\n }\r\n else if (['csv', 'xls', 'xlsx'].indexOf(fileType) > -1) {\r\n return 'csv';\r\n }\r\n else if (['htm', 'xps', 'rtf', 'html', 'msg', 'txt'].indexOf(fileType) > -1) {\r\n return 'file';\r\n }\r\n else if (fileType === 'pdf') {\r\n return 'pdf';\r\n }\r\n else {\r\n return '';\r\n }\r\n }\r\n\r\n public doesExists(fileName:string): boolean {\r\n var temp = this.wellnessFileList.find(x=>this.getFileName(x.originalFileName).trim().toUpperCase() === this.getFileName(fileName).trim().toUpperCase())\r\n return temp ? true : false;\r\n }\r\n\r\n public get enableSubmit(): boolean {\r\n let currentYear: Date = new Date();\r\n let returnValue:boolean = true;\r\n \r\n if(this.currentView == 1) {\r\n returnValue = this.attachments1.length > 0 || this.attachments2.length > 0\r\n }\r\n else if(this.currentView == 2) {\r\n if(this.selectedMemberAWPStatus && this.selectedMemberAWPStatus.period < currentYear.getFullYear() - 1) {\r\n returnValue = false;\r\n }\r\n else if(this.selectedMemberAWPStatus && this.selectedMemberAWPStatus.period == currentYear.getFullYear() - 1 && currentYear.getMonth() > 0) {\r\n returnValue = false;\r\n }\r\n }\r\n\r\n return returnValue;\r\n }\r\n\r\n public get enableUpload(): boolean {\r\n let currentYear: Date = new Date();\r\n let returnValue:boolean = true;\r\n \r\n if(this.selectedMemberAWPStatus && this.selectedMemberAWPStatus.period < currentYear.getFullYear() - 1) {\r\n returnValue = false;\r\n }\r\n else if(this.selectedMemberAWPStatus && this.selectedMemberAWPStatus.period == currentYear.getFullYear() - 1 && currentYear.getMonth() > 0) {\r\n returnValue = false;\r\n }\r\n \r\n return returnValue;\r\n }\r\n\r\n public getFormData():FormData {\r\n this.busyService.emit(true);\r\n let wellnessFormFiles = '';\r\n let fileToUpload: File[] = [];\r\n let wellnessFormAttached: boolean = false;\r\n\r\n this.attachmentError = false;\r\n\r\n this.attachments1.forEach(element => {\r\n if(!this.doesExists(element.name)) {\r\n fileToUpload.push(element);\r\n wellnessFormFiles += this.getFileName(element.name) + \"|\";\r\n }\r\n }); \r\n\r\n this.attachments2.forEach(element => {\r\n if(!this.doesExists(element.name)) {\r\n fileToUpload.push(element);\r\n }\r\n });\r\n \r\n if(fileToUpload.length > 0) {\r\n\r\n const formData = new FormData();\r\n let totalSize = 0;\r\n Array.from(fileToUpload)\r\n .map((file, index) => {\r\n totalSize += file.size;\r\n return formData.append('file' + index, file, file.name);\r\n });\r\n \r\n \r\n formData.append('memberId', this.selectedMember.cin);\r\n formData.append('providerid', this.selectedMember.providerId);\r\n formData.append('providertaxid', this.selectedMember.providerTaxId);\r\n formData.append('wellnessyear', this.selectedMemberAWPStatus.period.toString());\r\n\r\n if(wellnessFormFiles != '')\r\n formData.append('wellnessFiles', wellnessFormFiles);\r\n \r\n return formData;\r\n }\r\n\r\n return null;\r\n } \r\n}\r\n","\r\n
\r\n
\r\n Upload the signed document and then continue on to upload any supporting documents you may have.\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n There are 0 attachments for this members.\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 {{file.name}}\r\n
    \r\n
    \r\n {{file.name}}\r\n
    \r\n
    \r\n {{fileSize(file.name)}}\r\n
    \r\n
    \r\n \r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n

Notes or Comments

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

Notes or Comments

\r\n \r\n
\r\n
\r\n Upload up to {{maxUploadFilesSupported1}} files. Max file size 25MB.\r\n
\r\n
\r\n
\r\n
\r\n Do you have any supporting documents? Acceptable documents include *.pdf, *.docx, *.xlsx, and images files (5 items total)\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n There are 0 supporting documents for this member.\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 {{file.name}}\r\n
    \r\n
    \r\n {{file.name}}\r\n
    \r\n
    \r\n {{fileSize(file.name)}}\r\n
    \r\n
    \r\n \r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n Upload up to {{maxUploadFilesSupported2}} files. Max file size 25MB.\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ProviderDetail } from '../../../services/models/provider-detail';\r\nimport { ReportType } from '../../../services/models/reportype';\r\nimport { ReportsService } from '../../../services/reports.service';\r\nimport { SessionService } from '../../../services/session.service';\r\nimport { UiUtility } from '../../../utils/ui-utility';\r\nimport { ReportsProviderSearchComponent } from '../../../app-components/reports-provider-search/reports-provider-search.component';\r\nimport { AWPMemberComponent } from '../awp-member/awp-member.component';\r\n\r\n@Component({\r\n selector: 'app-awp-provider',\r\n templateUrl: './awp-provider.component.html',\r\n styleUrls: ['./awp-provider.component.scss']\r\n // ,\r\n // animations: [\r\n // trigger('showMember', [\r\n // state('false', style({ opacity: 1, transform: 'translateX(0%)', display: 'block' })),\r\n // state('true', style({ opacity: 0, transform: 'translateX(-100%)', display: 'none' })),\r\n // transition('false => true', animate('500ms ease-in')),\r\n // transition('true => false', animate('500ms ease-out'))\r\n // ])]\r\n})\r\n\r\nexport class AWPProviderComponent implements OnInit {\r\n public providers: ProviderDetail[] = [];\r\n public displayedProviders: ProviderDetail[] = [];\r\n public selectedProvider: ProviderDetail;\r\n public totalRecords: number;\r\n public rowsPerPage: number = 10;\r\n public pageNumber: number = 1;\r\n public selectedCalProviderID: string;\r\n public animationState: string = '';\r\n public displayMembers = false;\r\n\r\n private sortColumn: string;\r\n private sortAscending: boolean;\r\n\r\n public columns: any = [\r\n { field: '', header: '', width: '5%', classHeader: 'provider-reports-header', classContent: 'provider-reports-content-alt1', sort: false },\r\n { field: 'name', header: 'Name', width: '40%', classHeader: 'provider-reports-header', classContent: 'provider-reports-content', sort: true },\r\n { field: 'taxId', header: 'TIN', width: '25%', classHeader: 'provider-reports-header-alt1', classContent: 'provider-reports-content-alt1', sort: true },\r\n { field: 'calProviderID', header: 'Provider ID', width: '25%', classHeader: 'provider-reports-header-alt1', classContent: 'provider-reports-content-alt1', sort: true }\r\n ];\r\n\r\n @ViewChild('providerSearch') providerSearch: ReportsProviderSearchComponent;\r\n @ViewChild('awpmemberComponent') awpmemberComponent: AWPMemberComponent;\r\n\r\n constructor(\r\n private reportsService: ReportsService,\r\n private sessionService: SessionService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.initialize();\r\n }\r\n\r\n public initialize(resetComponent = false) {\r\n \r\n this.sortColumn = 'name';\r\n this.selectedCalProviderID = '';\r\n\r\n if (resetComponent) { \r\n this.displayMembers = false;\r\n this.providers = [];\r\n this.displayedProviders = [];\r\n\r\n setTimeout(() => {\r\n if(this.providerSearch) {\r\n this.providerSearch.resetSearchFilters();\r\n } \r\n }, 100);\r\n }\r\n\r\n if(this.sessionService.currentPermission.isEnterpriseAdmin || this.sessionService.currentPermission.isEnterpriseUser) {\r\n // Do nothing.\r\n }\r\n else {\r\n this.reportsService.getProvidersForReportsAWP(this.sessionService.currentPermission.providerCollectionID, ReportType.AWV).subscribe(result => {\r\n this.providers = result;\r\n\r\n this.pageNumber = 1;\r\n this.onProviderSearch(null);\r\n\r\n let param: any = {\r\n \"field\": \"name\",\r\n \"order\": 1\r\n }\r\n this.onSort(param)\r\n });\r\n }\r\n }\r\n\r\n public sortClass(column: string): string {\r\n let cls: string;\r\n if (column == this.sortColumn) {\r\n cls = this.sortAscending ? \"fa fa-chevron-up\" : \"fa fa-chevron-down\";\r\n }\r\n else {\r\n cls = \"fa fa-chevron-up\";\r\n }\r\n return cls;\r\n }\r\n\r\n public onPage(e: any) {\r\n let s = JSON.stringify(e);\r\n }\r\n\r\n public onSort(e: any): void {\r\n this.providers.sort((data1, data2) => {\r\n let value1 = data1[e.field];\r\n let value2 = data2[e.field];\r\n let result = null;\r\n\r\n if (value1 == null && value2 != null)\r\n result = -1;\r\n else if (value1 != null && value2 == null)\r\n result = 1;\r\n else if (value1 == null && value2 == null)\r\n result = 0;\r\n else if (typeof value1 === 'string' && typeof value2 === 'string')\r\n result = value1.localeCompare(value2);\r\n else\r\n result = (value1 < value2) ? -1 : (value1 > value2) ? 1 : 0;\r\n\r\n return (e.order * result);\r\n });\r\n this.sortAscending = e.order == 1;\r\n this.sortColumn = e.field;\r\n }\r\n\r\n public onProviderSelected(provider: ProviderDetail) {\r\n this.selectedCalProviderID = provider.calProviderID;\r\n this.selectedProvider = provider;\r\n this.displayMembers = true;\r\n setTimeout(() => {\r\n this.awpmemberComponent.setProviderId(this.selectedProvider); \r\n }, (500)); \r\n }\r\n\r\n public backToProvider() {\r\n this.initialize(true);\r\n }\r\n\r\n public onProviderSearch(search) {\r\n this.selectedCalProviderID = '';\r\n if (search && (search.providerName || search.providerId || search.providerTin)) {\r\n\r\n if(this.sessionService.currentPermission.isEnterpriseAdmin || this.sessionService.currentPermission.isEnterpriseUser) {\r\n this.reportsService.searchProvidersForReportsAWP(search.providerId, search.providerName, search.providerTin, ReportType.AWV).subscribe(result => {\r\n this.providers = result;\r\n this.displayedProviders = this.providers.slice();\r\n });\r\n }\r\n else {\r\n if (!UiUtility.isNullUndefinedOrEmpty(search.providerName)) {\r\n this.displayedProviders = this.providers\r\n .filter(p => p.name.toLowerCase().indexOf(search.providerName.trim().toLowerCase()) >= 0);\r\n }\r\n else if (!UiUtility.isNullUndefinedOrEmpty(search.providerId)) {\r\n this.displayedProviders = this.providers\r\n .filter(p => p.calProviderID.toLowerCase().indexOf(search.providerId.trim().toLowerCase()) >= 0);\r\n }\r\n else if (!UiUtility.isNullUndefinedOrEmpty(search.providerTin)) {\r\n this.displayedProviders = this.providers\r\n .filter(p => p.taxId.toLowerCase().indexOf(search.providerTin.trim().toLowerCase()) >= 0);\r\n } \r\n }\r\n }\r\n else {\r\n this.displayedProviders = this.providers.slice();\r\n }\r\n //this.setPagedData();\r\n }\r\n\r\n private setPagedData(page: number = 0) {\r\n if (page === 0) {\r\n this.pageNumber = 1;\r\n }\r\n this.totalRecords = this.displayedProviders.length;\r\n const start = (this.pageNumber - 1) * this.rowsPerPage;\r\n let end = start + this.rowsPerPage;\r\n if (end > this.displayedProviders.length) {\r\n end = this.displayedProviders.length;\r\n }\r\n\r\n this.displayedProviders = this.displayedProviders.slice(start, end);\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 {{col.header}}\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 {{provider[col.field]}}\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n

{{selectedProvider.name}}

\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n","import { Component, OnInit, AfterViewInit, ViewChild, ElementRef, Output, EventEmitter } from '@angular/core';\r\nimport { UiUtility } from '../../utils/ui-utility';\r\nimport { TabView } from 'primeng/tabview';\r\nimport { ConfirmationService } from 'primeng/api';\r\nimport { AWPProviderComponent } from './awp-provider/awp-provider.component';\r\nimport { AWPMemberComponent } from './awp-member/awp-member.component';\r\n\r\n@Component({\r\n selector: 'app-reports-awp',\r\n templateUrl: './reports-awp.component.html',\r\n styleUrls: ['./reports-awp.component.scss']\r\n})\r\nexport class ReportsAWPComponent implements OnInit, AfterViewInit {\r\n public displayConfirmContinue = false;\r\n public activeindex:number = 0;\r\n\r\n @ViewChild('tabView') tabview: TabView;\r\n @ViewChild('awpproviderComponent') awpproviderComponent: AWPProviderComponent;\r\n @ViewChild('awpmemberComponent') awpmemberComponent: AWPMemberComponent;\r\n\r\n private tabs: any = [\r\n { index: 0, id: 'awp-provider', label: 'Provider', enable: true },\r\n { index: 1, id: 'awp-member', label: 'Member', enable: true }\r\n ];\r\n\r\n constructor(\r\n private confirmationService: ConfirmationService,\r\n private elementRef: ElementRef\r\n ) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.setPcpReportAttestationTabs();\r\n }\r\n\r\n public canViewTab(index: number) {\r\n const currentTab = this.tabs.find((tab: any) => tab.index === index);\r\n return currentTab ? currentTab.enable : false;\r\n }\r\n\r\n public getTabName(index: number) {\r\n const currentTab = this.tabs.find((tab: any) => tab.index === index);\r\n return currentTab ? currentTab.label : '';\r\n }\r\n\r\n public getTabIndex(name: string) {\r\n const currentTab = this.tabs.find((tab: any) => tab.label === name);\r\n return currentTab ? currentTab.index : 0;\r\n }\r\n\r\n public onTabChanged(e: any) {\r\n this.displayConfirmContinue = true;\r\n this.tabview.activeIndex = e.index === 1 ? 0 : 1;\r\n }\r\n\r\n public handleChange(selectedIndex:number, e:MouseEvent) {\r\n const currentIndex = this.tabview.activeIndex;\r\n e.stopPropagation();\r\n if (currentIndex == selectedIndex){\r\n return;\r\n }\r\n this.confirmationService.confirm({\r\n header: 'Are you sure?',\r\n message: 'Your search results will be cleared.',\r\n key: 'continueDialog',\r\n accept: () => {\r\n this.tabview.activeIndex = selectedIndex;\r\n if (selectedIndex === this.getTabIndex('Provider')) {\r\n this.awpproviderComponent.initialize(true);\r\n }\r\n else if (selectedIndex === this.getTabIndex('Member')) {\r\n if (this.awpmemberComponent) {\r\n this.awpmemberComponent.setProviderId(null);\r\n }\r\n }\r\n },\r\n reject: () => {\r\n this.tabview.activeIndex = currentIndex;\r\n }\r\n });\r\n }\r\n\r\n private setPcpReportAttestationTabs() {\r\n const tabView = this.elementRef.nativeElement.querySelector('div.pcpattestation-tabview-styles ul.p-tabview-nav');\r\n UiUtility.SetTabsWidthDynamically(tabView, 0, 250);\r\n\r\n const tabElements = tabView.querySelectorAll('li');\r\n tabElements.forEach(element => {\r\n const currentChild = element.firstChild;\r\n const anchorelement = (element.querySelector(\"a\") as HTMLAnchorElement);\r\n const tabName = (anchorelement) ? anchorelement.innerText : \"\";\r\n\r\n const tabIndex = this.getTabIndex(tabName.trim());\r\n\r\n const newDiv = window.document.createElement(\"div\");\r\n newDiv.addEventListener('click', this.handleChange.bind(this, tabIndex), false);\r\n newDiv.style.cursor = 'pointer';\r\n newDiv.appendChild(currentChild);\r\n\r\n element.firstChild.remove();\r\n element.appendChild(newDiv);\r\n });\r\n }\r\n\r\n public confirmContinue(event) {\r\n this.displayConfirmContinue = false;\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 {{getTabName(0)}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{getTabName(1)}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { saveAs } from 'file-saver';\r\nimport { ProviderDetail } from '../../../services/models/provider-detail';\r\nimport { ReportType } from '../../../services/models/reportype';\r\nimport { ReportsService } from '../../../services/reports.service';\r\nimport { SessionService } from '../../../services/session.service';\r\nimport { UiUtility } from '../../../utils/ui-utility';\r\nimport { ReportsProviderSearchComponent } from '../../../app-components/reports-provider-search/reports-provider-search.component';\r\nimport { HIFMemberComponent } from '../hif-member/hif-member.component';\r\n\r\n@Component({\r\n selector: 'app-hif-provider',\r\n templateUrl: './hif-provider.component.html',\r\n styleUrls: ['./hif-provider.component.scss']\r\n})\r\n\r\nexport class HIFProviderComponent implements OnInit {\r\n public providers: ProviderDetail[] = [];\r\n public displayedProviders: ProviderDetail[] = [];\r\n public selected: ProviderDetail[] = [];\r\n public selectedProvider: ProviderDetail;\r\n public totalRecords: number;\r\n public rowsPerPage: number = 10;\r\n public pageNumber: number = 1;\r\n public selectedCalProviderID: string;\r\n public animationState: string = '';\r\n public displayMembers = false;\r\n\r\n private sortColumn: string;\r\n private sortAscending: boolean;\r\n\r\n public columns: any = [\r\n { field: '', header: '', width: '5%', classHeader: 'provider-reports-header', classContent: 'provider-reports-content-alt1', sort: false },\r\n { field: 'name', header: 'Name', width: '60%', classHeader: 'provider-reports-header', classContent: 'provider-reports-content', sort: true },\r\n { field: 'calProviderID', header: 'Provider ID', width: '40%', classHeader: 'provider-reports-header-alt1', classContent: 'provider-reports-content-alt1', sort: true }\r\n ];\r\n\r\n @ViewChild('providerSearch') providerSearch: ReportsProviderSearchComponent;\r\n @ViewChild('hifmemberComponent') awpmemberComponent: HIFMemberComponent;\r\n\r\n constructor(\r\n private reportsService: ReportsService,\r\n private sessionService: SessionService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.initialize();\r\n }\r\n\r\n public initialize(resetComponent = false) {\r\n \r\n this.sortColumn = 'name';\r\n this.selectedCalProviderID = '';\r\n\r\n if (resetComponent) { \r\n this.displayMembers = false;\r\n this.providers = [];\r\n this.displayedProviders = [];\r\n\r\n setTimeout(() => {\r\n if(this.providerSearch) {\r\n this.providerSearch.resetSearchFilters();\r\n } \r\n }, 100);\r\n }\r\n\r\n if(this.sessionService.currentPermission.isEnterpriseAdmin || this.sessionService.currentPermission.isEnterpriseUser) {\r\n // Do nothing.\r\n }\r\n else {\r\n this.reportsService.getProvidersForReportsHIF(this.sessionService.currentPermission.providerCollectionID, ReportType.HIF).subscribe(result => {\r\n this.providers = result;\r\n\r\n this.pageNumber = 1;\r\n this.onProviderSearch(null);\r\n\r\n let param: any = {\r\n \"field\": \"name\",\r\n \"order\": 1\r\n }\r\n this.onSort(param)\r\n });\r\n }\r\n }\r\n\r\n public sortClass(column: string): string {\r\n let cls: string;\r\n if (column == this.sortColumn) {\r\n cls = this.sortAscending ? \"fa fa-chevron-up\" : \"fa fa-chevron-down\";\r\n }\r\n else {\r\n cls = \"fa fa-chevron-up\";\r\n }\r\n return cls;\r\n }\r\n\r\n public onPage(e: any) {\r\n let s = JSON.stringify(e);\r\n }\r\n\r\n public onSort(e: any): void {\r\n this.providers.sort((data1, data2) => {\r\n let value1 = data1[e.field];\r\n let value2 = data2[e.field];\r\n let result = null;\r\n\r\n if (value1 == null && value2 != null)\r\n result = -1;\r\n else if (value1 != null && value2 == null)\r\n result = 1;\r\n else if (value1 == null && value2 == null)\r\n result = 0;\r\n else if (typeof value1 === 'string' && typeof value2 === 'string')\r\n result = value1.localeCompare(value2);\r\n else\r\n result = (value1 < value2) ? -1 : (value1 > value2) ? 1 : 0;\r\n\r\n return (e.order * result);\r\n });\r\n this.sortAscending = e.order == 1;\r\n this.sortColumn = e.field;\r\n }\r\n\r\n public onProviderSelected(provider: ProviderDetail) {\r\n this.selectedCalProviderID = provider.calProviderID;\r\n this.selectedProvider = provider;\r\n this.displayMembers = true;\r\n setTimeout(() => {\r\n this.awpmemberComponent.setProviderId(this.selectedCalProviderID, this.selectedProvider.taxId); \r\n }, (500)); \r\n }\r\n\r\n public backToProvider() {\r\n this.initialize(true);\r\n }\r\n\r\n public onProviderSearch(search) {\r\n this.selectedCalProviderID = '';\r\n if (search && (search.providerName || search.providerId || search.providerTin)) {\r\n\r\n if(this.sessionService.currentPermission.isEnterpriseAdmin || this.sessionService.currentPermission.isEnterpriseUser) {\r\n this.reportsService.searchProvidersForReportsHIF(search.providerId, search.providerName, search.providerTin, ReportType.HIF).subscribe(result => {\r\n this.providers = result;\r\n this.displayedProviders = this.providers.slice();\r\n });\r\n }\r\n else {\r\n if (!UiUtility.isNullUndefinedOrEmpty(search.providerName)) {\r\n this.displayedProviders = this.providers\r\n .filter(p => p.name.toLowerCase().indexOf(search.providerName.trim().toLowerCase()) >= 0);\r\n }\r\n else if (!UiUtility.isNullUndefinedOrEmpty(search.providerId)) {\r\n this.displayedProviders = this.providers\r\n .filter(p => p.calProviderID.toLowerCase().indexOf(search.providerId.trim().toLowerCase()) >= 0);\r\n }\r\n else if (!UiUtility.isNullUndefinedOrEmpty(search.providerTin)) {\r\n this.displayedProviders = this.providers\r\n .filter(p => p.taxId.toLowerCase().indexOf(search.providerTin.trim().toLowerCase()) >= 0);\r\n } \r\n }\r\n }\r\n else {\r\n this.displayedProviders = this.providers.slice();\r\n }\r\n this.setPagedData();\r\n }\r\n\r\n private setPagedData(page: number = 0) {\r\n if (page === 0) {\r\n this.pageNumber = 1;\r\n }\r\n this.totalRecords = this.displayedProviders.length;\r\n const start = (this.pageNumber - 1) * this.rowsPerPage;\r\n let end = start + this.rowsPerPage;\r\n if (end > this.displayedProviders.length) {\r\n end = this.displayedProviders.length;\r\n }\r\n\r\n this.displayedProviders = this.displayedProviders.slice(start, end);\r\n }\r\n\r\n public onDownloadList() : void {\r\n\r\n let selectedProviderIds: string[] = [];\r\n this.selected.forEach(x=>{\r\n selectedProviderIds.push(x.calProviderID);\r\n });\r\n\r\n this.reportsService.downloadHifMemberList(selectedProviderIds).subscribe(result => {\r\n this.saveAsFile(result, 'hif-members-list.csv', 'text/csv');\r\n })\r\n }\r\n\r\n private saveAsFile(buffer: any, fileName: string, fileType: string): void {\r\n const data: Blob = new Blob([buffer], { type: fileType });\r\n saveAs(data, fileName);\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 {{col.header}}\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 {{provider[col.field]}}\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

{{selectedProvider.name}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","\r\nimport { Component, OnInit, ViewChild, Inject } from '@angular/core';\r\nimport { UserProfile } from '@caloptima/authentication';\r\nimport { ReportsService } from '../../../services/reports.service';\r\nimport { SessionService } from '../../../services/session.service';\r\nimport { saveAs } from 'file-saver';\r\nimport { DatePipe, DOCUMENT } from '@angular/common';\r\nimport { ReportType } from '../../../services/models/reportype';\r\nimport { ReportsMemberSearchComponent } from '../../../app-components/reports-member-search/reports-member-search.component';\r\nimport { UiUtility } from '../../../utils/ui-utility';\r\nimport { ReportMemberDetails } from '../../../services/models/reportmemberdetails';\r\nimport { MemberAWPStatus } from '../../../services/models/awp-detail';\r\nimport { WellnessDetails } from '../../../services/models/wellness-details';\r\nimport { BusyService } from '../../../services/busy.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-hif-member',\r\n templateUrl: './hif-member.component.html',\r\n styleUrls: ['./hif-member.component.scss']\r\n})\r\nexport class HIFMemberComponent implements OnInit {\r\n\r\n public userProfile: UserProfile;\r\n public members:ReportMemberDetails[] = [];\r\n public displayMembers:ReportMemberDetails[] = [];\r\n public selectedMember: ReportMemberDetails;\r\n private sortColumn: string;\r\n private sortAscending: boolean;\r\n public totalRecords: number;\r\n public awpList: MemberAWPStatus[];\r\n public searchCin: string;\r\n public searchName: string;\r\n public collectionId: number;\r\n public calProviderId: string;\r\n public providerTaxId: string;\r\n public showHif: boolean;\r\n public userFullName: string;\r\n public wellnessDetails: WellnessDetails;\r\n public selectedMemberAWPStatus:MemberAWPStatus;\r\n public selectedCin: string;\r\n \r\n\r\n @ViewChild('memberSearch') memberSearch: ReportsMemberSearchComponent;\r\n\r\n constructor(\r\n private reportsService: ReportsService,\r\n private sessionService: SessionService,\r\n private datePipe: DatePipe,\r\n private busyService: BusyService,\r\n @Inject(DOCUMENT) private document: Document) {\r\n }\r\n\r\n ngOnInit() {\r\n this.collectionId = this.sessionService.currentPermission.providerCollectionID;\r\n this.userFullName = '';\r\n\r\n this.initialize();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n\r\n }\r\n\r\n public setProviderId(selectedCalProviderID: string, selectedProviderTaxId: string) {\r\n this.awpList = [];\r\n this.calProviderId = selectedCalProviderID;\r\n this.providerTaxId = selectedProviderTaxId;\r\n this.initialize(true);\r\n }\r\n\r\n public initialize(resetComponent = false) {\r\n this.sortColumn = 'memberName';\r\n this.sortAscending = true;\r\n this.selectedCin = '';\r\n this.searchCin = '';\r\n this.searchName = '';\r\n this.selectedMember = null;\r\n this.displayMembers = [];\r\n \r\n if (resetComponent) {\r\n this.memberSearch.resetSearchFilters();\r\n }\r\n\r\n if(!UiUtility.isNullUndefinedOrEmpty(this.calProviderId)) {\r\n\r\n this.reportsService.getMembersForReportsHIF(this.collectionId, this.calProviderId, this.providerTaxId, ReportType.HIF).subscribe(result=>{\r\n\r\n this.members = result;\r\n\r\n this.totalRecords = this.members.length;\r\n\r\n if(this.members)\r\n this.displayMembers = this.members.slice();\r\n\r\n let param: any = {\r\n \"field\": \"memberName\",\r\n \"order\": 1\r\n }\r\n this.onSort(param)\r\n });\r\n }\r\n }\r\n\r\n public sortClass(column: string): string {\r\n let cls: string;\r\n if (column == this.sortColumn) {\r\n cls = this.sortAscending ? \"fa fa-chevron-up\" : \"fa fa-chevron-down\";\r\n }\r\n else {\r\n cls = \"fa fa-chevron-up\";\r\n }\r\n return cls;\r\n }\r\n\r\n public onPage(e: any) {\r\n let s = JSON.stringify(e);\r\n }\r\n\r\n public onSort(e: any): void {\r\n this.displayMembers.sort((data1, data2) => {\r\n let value1 = data1[e.field];\r\n let value2 = data2[e.field];\r\n let result = null;\r\n\r\n if (value1 == null && value2 != null)\r\n result = -1;\r\n else if (value1 != null && value2 == null)\r\n result = 1;\r\n else if (value1 == null && value2 == null)\r\n result = 0;\r\n else if (typeof value1 === 'string' && typeof value2 === 'string')\r\n result = value1.localeCompare(value2);\r\n else\r\n result = (value1 < value2) ? -1 : (value1 > value2) ? 1 : 0;\r\n\r\n return (e.order * result);\r\n });\r\n this.sortAscending = e.order == 1;\r\n this.sortColumn = e.field;\r\n }\r\n\r\n public get displayText(): string {\r\n if(this.selectedMember && this.selectedMember.cin) {\r\n\r\n let memeberDetail: ReportMemberDetails = this.members.find(x=> x.cin === this.selectedMember.cin);\r\n\r\n if(memeberDetail) {\r\n let s = memeberDetail.memberName;\r\n return s;\r\n }\r\n else {\r\n return \"\"\r\n }\r\n }\r\n else {\r\n return \"\";\r\n }\r\n }\r\n\r\n public get enableBuildReport() : boolean {\r\n\r\n return this.selectedMember != null;\r\n }\r\n\r\n private saveAsFile(buffer: any, fileName: string, fileType: string): void {\r\n const data: Blob = new Blob([buffer], { type: fileType });\r\n saveAs(data, fileName);\r\n }\r\n\r\n public onMemberSearch(search) : void {\r\n\r\n this.selectedMember = null;\r\n this.awpList = [];\r\n\r\n if(!UiUtility.isNullUndefinedOrEmpty(this.calProviderId)) {\r\n if(search.memberName === '' && search.memberId === '') {\r\n this.displayMembers = this.members.slice();\r\n }\r\n else {\r\n this.displayMembers = [];\r\n this.members.forEach(x => {\r\n\r\n let include: boolean = false;\r\n\r\n if(search.memberName !== '') {\r\n include = x.memberName.trim().toUpperCase().includes(search.memberName.trim().toUpperCase());\r\n }\r\n if(!include && search.memberId !== '') {\r\n include = x.cin == search.memberId;\r\n }\r\n if(!include && search.memberId !== '') {\r\n include = x.mbi == search.memberId;\r\n }\r\n if(!include && search.memberId !== '') {\r\n include = x.medsId == search.memberId;\r\n } \r\n console.log(include + \",\" + search.memberId);\r\n if(include){\r\n this.displayMembers.push(x);\r\n }\r\n });\r\n }\r\n }\r\n else {\r\n this.reportsService.searchMembersForReportsHIF(ReportType.HIF, this.collectionId, search.memberName, search.memberId).subscribe(result=>{\r\n\r\n this.members = result;\r\n\r\n this.totalRecords = this.members.length;\r\n\r\n if(this.members)\r\n this.displayMembers = this.members.slice();\r\n\r\n let param: any = {\r\n \"field\": \"memberName\",\r\n \"order\": 1\r\n }\r\n this.onSort(param)\r\n });\r\n\r\n }\r\n }\r\n\r\n public viewhif(reportMemberDetails:ReportMemberDetails) : void {\r\n this.selectedMember = reportMemberDetails;\r\n this.showHif = true;\r\n }\r\n\r\n public onDownloadList() : void {\r\n\r\n this.reportsService.downloadHifMemberList([this.calProviderId]).subscribe(result => {\r\n this.saveAsFile(result, 'hif-members-list.csv', 'text/csv');\r\n })\r\n }\r\n\r\n public onCancelMemberHifData() {\r\n this.showHif = false;\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Name
\r\n Member ID
\r\n Provider ID
\r\n Health Information\r\n \r\n
\r\n \r\n \r\n \r\n
{{row.memberName}}
\r\n \r\n \r\n
{{row.cin}}
\r\n \r\n \r\n
{{row.providerId}}
\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","import { Component, OnInit, AfterViewInit, ViewChild, ElementRef, Output, EventEmitter } from '@angular/core';\r\nimport { UiUtility } from '../../utils/ui-utility';\r\nimport { TabView } from 'primeng/tabview';\r\nimport { ConfirmationService } from 'primeng/api';\r\nimport { HIFProviderComponent } from './hif-provider/hif-provider.component';\r\nimport { HIFMemberComponent } from './hif-member/hif-member.component';\r\n\r\n@Component({\r\n selector: 'app-reports-hif',\r\n templateUrl: './reports-hif.component.html',\r\n styleUrls: ['./reports-hif.component.scss']\r\n})\r\nexport class ReportsHIFComponent implements OnInit, AfterViewInit {\r\n public displayConfirmContinue = false;\r\n public activeindex:number = 0;\r\n\r\n @ViewChild('tabView') tabview: TabView;\r\n @ViewChild('hifproviderComponent') hifproviderComponent: HIFProviderComponent;\r\n @ViewChild('hifmemberComponent') hifmemberComponent: HIFMemberComponent;\r\n\r\n private tabs: any = [\r\n { index: 0, id: 'hif-provider', label: 'Provider', enable: true },\r\n { index: 1, id: 'hif-member', label: 'Member', enable: true }\r\n ];\r\n\r\n constructor(\r\n private confirmationService: ConfirmationService,\r\n private elementRef: ElementRef\r\n ) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.setPcpReportAttestationTabs();\r\n }\r\n\r\n public canViewTab(index: number) {\r\n const currentTab = this.tabs.find((tab: any) => tab.index === index);\r\n return currentTab ? currentTab.enable : false;\r\n }\r\n\r\n public getTabName(index: number) {\r\n const currentTab = this.tabs.find((tab: any) => tab.index === index);\r\n return currentTab ? currentTab.label : '';\r\n }\r\n\r\n public getTabIndex(name: string) {\r\n const currentTab = this.tabs.find((tab: any) => tab.label === name);\r\n return currentTab ? currentTab.index : 0;\r\n }\r\n\r\n public onTabChanged(e: any) {\r\n this.displayConfirmContinue = true;\r\n this.tabview.activeIndex = e.index === 1 ? 0 : 1;\r\n }\r\n\r\n public handleChange(selectedIndex:number, e:MouseEvent) {\r\n const currentIndex = this.tabview.activeIndex;\r\n e.stopPropagation();\r\n if (currentIndex == selectedIndex){\r\n return;\r\n }\r\n this.confirmationService.confirm({\r\n header: 'Are you sure?',\r\n message: 'Your search results will be cleared.',\r\n key: 'continueDialog',\r\n accept: () => {\r\n this.tabview.activeIndex = selectedIndex;\r\n if (selectedIndex === this.getTabIndex('Provider')) {\r\n this.hifproviderComponent.initialize(true);\r\n }\r\n else if (selectedIndex === this.getTabIndex('Member')) {\r\n if (this.hifmemberComponent) {\r\n this.hifmemberComponent.setProviderId(null, null);\r\n }\r\n }\r\n },\r\n reject: () => {\r\n this.tabview.activeIndex = currentIndex;\r\n }\r\n });\r\n }\r\n\r\n private setPcpReportAttestationTabs() {\r\n const tabView = this.elementRef.nativeElement.querySelector('div.pcpattestation-tabview-styles ul.p-tabview-nav');\r\n UiUtility.SetTabsWidthDynamically(tabView, 0, 250);\r\n\r\n const tabElements = tabView.querySelectorAll('li');\r\n tabElements.forEach(element => {\r\n const currentChild = element.firstChild;\r\n const tabName = (element.querySelector(\"a\") as HTMLAnchorElement).innerText;\r\n const tabIndex = this.getTabIndex(tabName.trim());\r\n\r\n const newDiv = window.document.createElement(\"div\");\r\n newDiv.addEventListener('click', this.handleChange.bind(this, tabIndex), false);\r\n newDiv.style.cursor = 'pointer';\r\n newDiv.appendChild(currentChild);\r\n\r\n element.firstChild.remove();\r\n element.appendChild(newDiv);\r\n });\r\n }\r\n\r\n public confirmContinue(event) {\r\n this.displayConfirmContinue = false;\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 {{getTabName(0)}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{getTabName(1)}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { CollectionService } from '../../services/collection.service';\r\nimport { ProviderDetail } from '../../services/models/provider-detail';\r\nimport { ReportsService } from '../../services/reports.service';\r\nimport { SessionService } from '../../services/session.service';\r\nimport { saveAs } from 'file-saver';\r\n\r\n@Component({\r\n selector: 'app-reports-pcp-member-iha',\r\n templateUrl: './reports-pcp-member-iha.component.html',\r\n styleUrls: ['./reports-pcp-member-iha.component.scss']\r\n})\r\nexport class ReportsPcpMemberIHAComponent implements OnInit {\r\n\r\n public providers:ProviderDetail[] = [];\r\n public selected: ProviderDetail[] = [];\r\n private sortColumn: string;\r\n private sortAscending: boolean;\r\n private enableBuildReport: boolean;\r\n private threshold: number = 25000;\r\n public showThresholdAlert: boolean = false;\r\n\r\n constructor(\r\n private sessionService: SessionService, \r\n private collectionService: CollectionService,\r\n private reportsService: ReportsService\r\n\r\n ) {\r\n\r\n this.sortColumn = 'name';\r\n this.sortAscending = true; \r\n this.enableBuildReport = true;\r\n }\r\n\r\n ngOnInit() {\r\n \r\n this.reportsService.getProvidersForIHA(this.sessionService.currentPermission.providerCollectionID).subscribe(result=>{\r\n this.providers = result;\r\n\r\n let param: any = {\r\n \"field\": \"name\",\r\n \"order\": 1\r\n }\r\n this.onSort(param)\r\n\r\n this.selected = result;\r\n })\r\n }\r\n\r\n public onBuildReport() {\r\n\r\n this.enableBuildReport = false;\r\n\r\n let providerIds: string[] = [];\r\n this.selected.forEach(x=> {\r\n providerIds.push(x.calProviderID);\r\n });\r\n\r\n this.reportsService.downloadIHADueMembersUsingProviderIds(providerIds).subscribe(result => {\r\n this.saveAsFile(result, 'iha-duemembers.csv', 'text/csv');\r\n this.enableBuildReport = true;\r\n })\r\n }\r\n\r\n private saveAsFile(buffer: any, fileName: string, fileType: string): void {\r\n const data: Blob = new Blob([buffer], { type: fileType });\r\n saveAs(data, fileName);\r\n }\r\n\r\n public sortClass(column: string): string {\r\n let cls: string;\r\n if (column == this.sortColumn) {\r\n cls = this.sortAscending ? \"fa fa-chevron-up\" : \"fa fa-chevron-down\";\r\n }\r\n else {\r\n cls = \"fa fa-chevron-up\";\r\n }\r\n return cls;\r\n }\r\n\r\n public onSort(e: any): void {\r\n this.providers.sort((data1, data2) => {\r\n let value1 = data1[e.field];\r\n let value2 = data2[e.field];\r\n let result = null;\r\n\r\n if (value1 == null && value2 != null)\r\n result = -1;\r\n else if (value1 != null && value2 == null)\r\n result = 1;\r\n else if (value1 == null && value2 == null)\r\n result = 0;\r\n else if (typeof value1 === 'string' && typeof value2 === 'string')\r\n result = value1.localeCompare(value2);\r\n else\r\n result = (value1 < value2) ? -1 : (value1 > value2) ? 1 : 0;\r\n\r\n return (e.order * result);\r\n });\r\n this.sortAscending = e.order == 1;\r\n this.sortColumn = e.field;\r\n }\r\n\r\n public get IsEnterpriseUser() : boolean {\r\n return (this.sessionService.isEnterpriseAdmin || this.sessionService.isEnterpriseUser);\r\n }\r\n\r\n public onSearch(search) : void {\r\n\r\n if(this.sessionService.currentPermission.isEnterpriseAdmin || this.sessionService.currentPermission.isEnterpriseUser) {\r\n this.reportsService.searchProvidersForIHA(search.providerId, search.providerName, search.providerTin).subscribe(result => {\r\n this.providers = result;\r\n });\r\n } \r\n }\r\n\r\n public get totalCount() : number{\r\n this.showThresholdAlert = false;\r\n \r\n let totalCount: number = 0;\r\n this.selected.forEach(x=>{\r\n totalCount += x.pcpMemberCount\r\n });\r\n\r\n if(totalCount > this.threshold)\r\n this.showThresholdAlert = true;\r\n\r\n return totalCount;\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 Name
\r\n Provider ID
\r\n Member Count
\r\n Medical Group
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{row.name}}
\r\n \r\n \r\n
{{row.calProviderID}}
\r\n \r\n \r\n
{{row.pcpMemberCount}}
\r\n \r\n \r\n
{{row.groupName}}
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n Total Selected Members : {{totalCount}}.\r\n \r\n \r\n  Too many members selected ({{threshold}}) MAX.\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
","\r\nimport { Component, OnInit, Provider, Inject, numberAttribute, ViewChild } from '@angular/core';\r\nimport { UserProfile } from '@caloptima/authentication';\r\nimport { SelectItem } from 'primeng/api';\r\nimport { DropDownObject } from '../../services/models/drop-down-object.interface';\r\nimport { ProviderDetail, ProviderDetailWithBHI } from '../../services/models/provider-detail';\r\nimport { ReportsService } from '../../services/reports.service';\r\nimport { SessionService } from '../../services/session.service';\r\nimport { saveAs } from 'file-saver';\r\nimport { DatePipe, DOCUMENT } from '@angular/common';\r\nimport { ReportType } from '../../services/models/reportype';\r\nimport { UiUtility } from '../../utils/ui-utility';\r\nimport { BHIMeasurementPeriod } from 'src/app/services/models/responses/bhi-measurement-period';\r\nimport { AttestationDetail } from 'src/app/services/models/attestation-detail';\r\nimport { AttestationStatus } from 'src/app/services/models/attestationstatus';\r\nimport { ReportsProviderSearchComponent } from 'src/app/app-components/reports-provider-search/reports-provider-search.component';\r\nimport { ControlContainer } from '@angular/forms';\r\nimport { Constants } from 'src/app/app.constants';\r\nimport { ReportsMemberSearchComponent } from 'src/app/app-components/reports-member-search/reports-member-search.component';\r\nimport { AlertWarningComponent } from 'src/app/app-components/alerts/alert-warning/alert-warning.component';\r\n\r\n\r\n@Component({\r\n selector: 'app-reports-bhi',\r\n templateUrl: './reports-bhi.component.html',\r\n styleUrls: ['./reports-bhi.component.scss']\r\n})\r\nexport class ReportsBHIComponent implements OnInit {\r\n public providers:ProviderDetailWithBHI[] = [];\r\n public displayProviders:ProviderDetailWithBHI[] = [];\r\n public displayPrescribers:ProviderDetailWithBHI[] = [];\r\n public selectedCalProviderID: string;\r\n public selectedProvider: ProviderDetailWithBHI;\r\n private sortColumn: string;\r\n private sortAscending: boolean;\r\n public totalRecords: number;\r\n public measurementPeriods: BHIMeasurementPeriod[];\r\n public searchProviderId: string;\r\n public searchProviderName: string;\r\n public overAllCheckUnCheckValue: boolean;\r\n public showAttestation: boolean;\r\n public userFullName: string;\r\n public optionValue: string = \"1\";\r\n\r\n @ViewChild('reportsprovidersearchcomponent') reportsprovidersearchcomponent: ReportsProviderSearchComponent\r\n @ViewChild('reportsprescribersearchcomponent') reportsprescribersearchcomponent: ReportsMemberSearchComponent\r\n\r\n constructor(\r\n private sessionService: SessionService,\r\n private reportsService: ReportsService,\r\n private datePipe: DatePipe,\r\n @Inject(DOCUMENT) private document: Document, private constants: Constants) {\r\n this.sortColumn = 'name';\r\n this.sortAscending = true;\r\n this.searchProviderId = '';\r\n this.searchProviderName = '';\r\n this.selectedCalProviderID = '';\r\n }\r\n\r\n ngOnInit() {\r\n\r\n if(this.sessionService.currentPermission.isEnterpriseAdmin || this.sessionService.currentPermission.isEnterpriseUser) {\r\n // Nothing. \r\n }\r\n else {\r\n this.reportsService.getProvidersForBHI(this.sessionService.currentPermission.providerCollectionID).subscribe(result=>{\r\n\r\n this.providers = result;\r\n \r\n this.totalRecords = this.providers.length;\r\n \r\n if(this.providers)\r\n this.displayProviders = this.providers.slice();\r\n \r\n let param: any = {\r\n \"field\": \"name\",\r\n \"order\": true\r\n }\r\n this.onSort(param)\r\n });\r\n }\r\n }\r\n\r\n public sortClass(column: string): string {\r\n let cls: string;\r\n if (column == this.sortColumn) {\r\n cls = this.sortAscending ? \"fa fa-chevron-up\" : \"fa fa-chevron-down\";\r\n }\r\n else {\r\n cls = \"fa fa-chevron-up\";\r\n }\r\n return cls;\r\n }\r\n\r\n public onPage(e: any) {\r\n let s = JSON.stringify(e);\r\n }\r\n\r\n public onSort(e: any): void {\r\n this.displayProviders.sort((data1, data2) => {\r\n let value1 = data1[e.field];\r\n let value2 = data2[e.field];\r\n let result = null;\r\n\r\n if (value1 == null && value2 != null)\r\n result = -1;\r\n else if (value1 != null && value2 == null)\r\n result = 1;\r\n else if (value1 == null && value2 == null)\r\n result = 0;\r\n else if (typeof value1 === 'string' && typeof value2 === 'string')\r\n result = value1.localeCompare(value2);\r\n else\r\n result = (value1 < value2) ? -1 : (value1 > value2) ? 1 : 0;\r\n\r\n return (e.order * result);\r\n });\r\n this.sortAscending = e.order == true;\r\n this.sortColumn = e.field;\r\n }\r\n\r\n public selectOption($event) {\r\n if(this.optionValue == \"1\") {\r\n this.reportsprovidersearchcomponent.setLabel(\"Provider Name\", \"Provider ID\", \"Provider TIN\", \"Search for Provider\");\r\n this.displayProviders = this.providers.slice();\r\n this.onProviderSelected(null);\r\n\r\n let param: any = {\r\n \"field\": \"name\",\r\n \"order\": true\r\n }\r\n this.onSort(param)\r\n }\r\n else if(this.optionValue == \"2\") {\r\n this.reportsprescribersearchcomponent.setLabel(\"\", \"Prescriber NPI\", \"Search for Prescriber\");\r\n this.displayPrescribers = [];\r\n this.onProviderSelected(null);\r\n \r\n }\r\n }\r\n\r\n public onProviderSelected(provider: ProviderDetailWithBHI): void {\r\n this.selectedProvider = provider;\r\n\r\n if(this.selectedProvider) {\r\n this.selectedCalProviderID = provider.calProviderID;\r\n\r\n this.measurementPeriods = [];\r\n this.reportsService.getBHIMeasurementPeriods(this.selectedCalProviderID).subscribe(result=>{\r\n this.measurementPeriods = result;\r\n \r\n if(this.measurementPeriods.length > 0) \r\n {\r\n this.measurementPeriods.forEach(x=>{\r\n \r\n var year:string = x.measurementPeriod.substring(0,4);\r\n var month:string = x.measurementPeriod.substring(4,6);\r\n var periodDate: Date = new Date(parseInt(year), parseInt(month) -1, 1);\r\n const monthNames = [\"Jan\", \"Feb\", \"Mar\", \"Apr\",\r\n \"May\", \"Jun\", \"Jul\", \"Aug\",\r\n \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\r\n \r\n x.measurementPeriodDisplay = monthNames[parseInt(month)-1] + \" \" + year;\r\n \r\n if(!x.attestationStatus) {\r\n if(x.attestationDate) {\r\n x.attestationStatus =\"Attested\";\r\n }\r\n else { \r\n var currentDate = new Date()\r\n var diff = (currentDate.valueOf() - periodDate.valueOf())/(1000*60*60*24);\r\n \r\n if(diff >= 60) {\r\n x.attestationStatus = \"Overdue\";\r\n }\r\n else {\r\n x.attestationStatus = \"Pending\";\r\n }\r\n }\r\n }\r\n });\r\n \r\n UiUtility.scrollDown(this.document);\r\n } \r\n });\r\n }\r\n else {\r\n this.selectedCalProviderID = \"\";\r\n }\r\n }\r\n\r\n public get displayText(): string {\r\n if(this.selectedCalProviderID) {\r\n\r\n let providerDetail: ProviderDetail = this.providers.find(x=> x.calProviderID === this.selectedCalProviderID);\r\n\r\n if(providerDetail) {\r\n let s = providerDetail.name;\r\n return s;\r\n }\r\n else {\r\n return \"\"\r\n }\r\n }\r\n else {\r\n return \"\";\r\n }\r\n }\r\n\r\n public get enableBuildReport() : boolean {\r\n\r\n if(this.measurementPeriods) {\r\n var found = this.measurementPeriods.find(x=>x.selected);\r\n if(found && this.selectedCalProviderID !== '')\r\n return true;\r\n }\r\n \r\n return false;\r\n }\r\n\r\n public onSubmitAttestation($event){\r\n this.download();\r\n }\r\n\r\n public get isInternalUser(): boolean {\r\n return this.sessionService.isEnterpriseAdmin || this.sessionService.isEnterpriseUser;\r\n }\r\n\r\n public download(){\r\n\r\n var items:string[] = [];\r\n\r\n this.measurementPeriods.forEach(x=>{\r\n if(x.selected) {\r\n items.push(x.measurementPeriod);\r\n };\r\n }); \r\n\r\n this.reportsService.downloadbhimembers(this.selectedCalProviderID, items).subscribe(result=>{\r\n var fileName:string = (items.length == 1 ? (this.selectedCalProviderID + \"_\" + items[0]) : this.selectedCalProviderID) + \".csv\";\r\n this.saveAsFile(result, fileName, 'csv');\r\n this.showAttestation = false;\r\n this.onProviderSelected(this.selectedProvider);\r\n });\r\n }\r\n\r\n public onCancelAttestation(): void {\r\n this.showAttestation = false;\r\n }\r\n\r\n public onBuildReport() : void {\r\n if(this.isInternalUser) {\r\n this.download();\r\n }\r\n else \r\n {\r\n this.showAttestation = true;\r\n }\r\n }\r\n\r\n private saveAsFile(buffer: any, fileName: string, fileType: string): void {\r\n const data: Blob = new Blob([buffer], { type: fileType });\r\n saveAs(data, fileName);\r\n }\r\n\r\n public get overAllCheckUnCheck() : boolean {\r\n return this.overAllCheckUnCheckValue;\r\n }\r\n\r\n public set overAllCheckUnCheck(value:boolean) {\r\n\r\n if(this.measurementPeriods) {\r\n this.measurementPeriods.forEach(item =>{\r\n item.selected = value;\r\n });\r\n }\r\n\r\n this.overAllCheckUnCheckValue = value;\r\n }\r\n\r\n public onSearch(search) : void {\r\n this.selectedCalProviderID = '';\r\n\r\n if (search && (search.providerName || search.providerId || search.providerTin)) {\r\n\r\n if(this.sessionService.currentPermission.isEnterpriseAdmin || this.sessionService.currentPermission.isEnterpriseUser) {\r\n\r\n this.reportsService.searchProvidersForBHI(search.providerId, search.providerName, search.providerTin).subscribe(result => {\r\n this.providers = result;\r\n this.displayProviders = this.providers.slice();\r\n });\r\n }\r\n else {\r\n if (!UiUtility.isNullUndefinedOrEmpty(search.providerName)) {\r\n this.displayProviders = this.providers\r\n .filter(p => p.name.toLowerCase().indexOf(search.providerName.trim().toLowerCase()) >= 0);\r\n }\r\n else if (!UiUtility.isNullUndefinedOrEmpty(search.providerId)) {\r\n this.displayProviders = this.providers\r\n .filter(p => p.calProviderID.toLowerCase().indexOf(search.providerId.trim().toLowerCase()) >= 0);\r\n }\r\n else if (!UiUtility.isNullUndefinedOrEmpty(search.providerTin)) {\r\n this.displayProviders = this.providers\r\n .filter(p => p.taxId.toLowerCase().indexOf(search.providerTin.trim().toLowerCase()) >= 0);\r\n } \r\n }\r\n }\r\n else {\r\n this.displayProviders = this.providers.slice();\r\n }\r\n }\r\n\r\n public onSearchPrescriber(search) : void {\r\n this.selectedCalProviderID = '';\r\n if (search && (search.memberId)) {\r\n\r\n if(this.sessionService.currentPermission.isEnterpriseAdmin || this.sessionService.currentPermission.isEnterpriseUser) {\r\n\r\n this.reportsService.searchPrescribersForBHI(search.memberId).subscribe(result => {\r\n this.providers = result;\r\n this.displayPrescribers = this.providers.slice();\r\n });\r\n }\r\n else {\r\n this.displayPrescribers = [];\r\n this.providers.forEach(provider=>{\r\n\r\n var candidate: boolean = false;\r\n provider.bhiPrescriberNPI = \"\";\r\n provider.bhiPrescriberTaxID = \"\";\r\n\r\n provider.bhiPrescriberList.forEach(prescriber=>{ \r\n if(!UiUtility.isNullOrUndefined(search.memberId) && \r\n prescriber.prescriberNPI.toLowerCase().indexOf(search.memberId.toLowerCase()) >= 0) {\r\n candidate = true;\r\n provider.bhiPrescriberNPI += prescriber.prescriberNPI + this.constants.stringSeparator;\r\n provider.bhiPrescriberTaxID += prescriber.prescriberTaxID + this.constants.stringSeparator;\r\n } \r\n });\r\n\r\n if(candidate){ \r\n provider.bhiPrescriberTaxID = UiUtility.trimLastFromEnd(provider.bhiPrescriberTaxID);\r\n provider.bhiPrescriberNPI = UiUtility.trimLastFromEnd(provider.bhiPrescriberNPI);\r\n\r\n this.displayPrescribers.push(provider);\r\n } \r\n });\r\n }\r\n }\r\n else {\r\n this.displayPrescribers = [];\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 Search by Provider\r\n
\r\n
\r\n \r\n
\r\n
\r\n Search by Prescriber\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Name
\r\n Provider ID
\r\n Medical Group
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{row.name}}
\r\n \r\n \r\n
{{row.calProviderID}}
\r\n \r\n \r\n
{{row.groupName}}
\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 Provider Name
\r\n Provider ID
\r\n Prescriber Tax ID
\r\n Prescriber NPI
\r\n Medical Group
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{row.name}}
\r\n \r\n \r\n
{{row.calProviderID}}
\r\n \r\n \r\n
\r\n {{row.bhiPrescriberTaxID.length > 40 ? row.bhiPrescriberTaxID.substring(0,40) + '...' : row.bhiPrescriberTaxID}}\r\n
\r\n \r\n \r\n
\r\n {{row.bhiPrescriberNPI.length > 40 ? row.bhiPrescriberNPI.substring(0,40) + '...' : row.bhiPrescriberNPI}}\r\n
\r\n \r\n \r\n
{{row.groupName}}
\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 Measurement Period\r\n Status\r\n Received Date\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n {{row.measurementPeriodDisplay}}\r\n \r\n
{{row.attestationStatus}}
\r\n
{{row.attestationStatus}}
\r\n
{{row.attestationStatus}}
\r\n \r\n {{row.attestationDate}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n","import { Component, OnInit, Output, EventEmitter, Input } from '@angular/core';\r\nimport { AuthenticationService, UserProfile } from '@caloptima/authentication';\r\nimport { OAuthService } from 'angular-oauth2-oidc';\r\nimport { PortalConfig } from 'src/app/portal-config';\r\nimport { AttestationDetail } from 'src/app/services/models/attestation-detail';\r\nimport { AttestationStatus } from 'src/app/services/models/attestationstatus';\r\nimport { ProviderDetail } from 'src/app/services/models/provider-detail';\r\nimport { BHIMeasurementPeriod } from 'src/app/services/models/responses/bhi-measurement-period';\r\nimport { ReportsService } from 'src/app/services/reports.service';\r\n\r\nconst ATTESTATION_VERSION: string = \"1.0\"\r\n\r\n@Component({\r\n selector: 'attestationbhi-dialog',\r\n templateUrl: './attestationbhi-dialog.component.html',\r\n styleUrls: ['./attestationbhi-dialog.component.scss']\r\n})\r\n\r\nexport class AttestationBHIDialogComponent implements OnInit {\r\n @Output() submitAttestation = new EventEmitter();\r\n @Output() cancelAttestation = new EventEmitter();\r\n @Input() measurementPeriods: BHIMeasurementPeriod[];\r\n @Input() selectedProvider: ProviderDetail;\r\n public userProfile: UserProfile;\r\n public userEmail: string = '';\r\n public iagree:boolean = false; \r\n public validationError: boolean = false;\r\n public validationMessage: string = \"\";\r\n\r\n constructor(\r\n private outhService: OAuthService,\r\n private authenticationService: AuthenticationService,\r\n private portalConfig: PortalConfig,\r\n private reportsService: ReportsService) {\r\n \r\n }\r\n ngOnInit() {\r\n \r\n const claims = this.outhService.getIdentityClaims();\r\n if (claims) {\r\n this.userEmail = claims['sub'];\r\n }\r\n\r\n this.authenticationService.findUsers(null, this.userEmail, this.portalConfig.ClientId,1, 1).subscribe(users=>{\r\n if(users != null && users.length == 1) {\r\n this.userProfile = users[0];\r\n }\r\n });\r\n }\r\n\r\n public get fullname(): string {\r\n if(this.userProfile)\r\n return this.userProfile.firstName + ' ' + this.userProfile.lastName;\r\n else\r\n return \"\";\r\n }\r\n\r\n public onSubmit() {\r\n let item: any = {\r\n 'email': this.userProfile ? this.userProfile.email : this.userEmail,\r\n 'userID': this.userProfile ? this.userProfile.userID : this.userEmail,\r\n 'mobilePhone': this.userProfile ? this.userProfile.mobilePhone : \"\",\r\n 'version': ATTESTATION_VERSION\r\n };\r\n this.onSubmitAttestation();\r\n }\r\n \r\n public onCancel() {\r\n this.cancelAttestation.emit();\r\n }\r\n\r\n public onSubmitAttestation() {\r\n\r\n this.validationError = false;\r\n\r\n var list:AttestationDetail[] = [];\r\n\r\n this.measurementPeriods.forEach(x=>{\r\n if(x.selected) {\r\n\r\n var attestionDetail: AttestationDetail = {\r\n attestationDate : new Date(),\r\n attestationDueDate : new Date(),\r\n attestationEmail : this.userProfile ? this.userProfile.email : this.userEmail,\r\n attestationName : this.userProfile ? this.userProfile.userID : this.userEmail,\r\n attestationPhone : this.userProfile ? this.userProfile.mobilePhone : \"\",\r\n attestationStatus : AttestationStatus.Attested,\r\n attestationVersion : ATTESTATION_VERSION,\r\n collectionName : this.selectedProvider.name,\r\n hasChecked : true,\r\n pcpId : this.selectedProvider.calProviderID,\r\n pcpName : this.selectedProvider.name,\r\n pcpTIN : this.selectedProvider.taxId, \r\n reportAttestationID : 0,\r\n reportPeriod : x.measurementPeriod,\r\n reportTypeCode : \"BHI\",\r\n measurementPeriodDisplay : x.measurementPeriod, \r\n reportPeriodDisplay : x.measurementPeriodDisplay\r\n };\r\n\r\n list.push(attestionDetail);\r\n }\r\n });\r\n\r\n this.reportsService.ApplyAttestation(list).subscribe(result=> {\r\n\r\n let item: any = {\r\n 'email': this.userProfile ? this.userProfile.email : this.userEmail,\r\n 'userID': this.userProfile ? this.userProfile.userID : this.userEmail,\r\n 'mobilePhone': this.userProfile ? this.userProfile.mobilePhone : \"\",\r\n 'version': ATTESTATION_VERSION\r\n };\r\n \r\n this.submitAttestation.emit(item);\r\n },\r\n (error) => {\r\n this.validationError = true;\r\n this.validationMessage = \"Error occurred submitting Attestation. Please try again.\";\r\n });\r\n }\r\n\r\n public get display(): boolean {\r\n return true;\r\n }\r\n\r\n public set display(value: boolean) {\r\n this.onCancel();\r\n }\r\n}\r\n","\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n By agreeing to the terms below, I am attesting that I received and reviewed the CalOptima Health Behavioral Quality Health Measure Report.\r\n
\r\n \r\n
\r\n
\r\n
\r\n Your Full Name\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","import { Component, OnInit } from '@angular/core';\r\nimport { CollectionService } from '../../services/collection.service';\r\nimport { ProviderDetail } from '../../services/models/provider-detail';\r\nimport { ReportsService } from '../../services/reports.service';\r\nimport { SessionService } from '../../services/session.service';\r\nimport { saveAs } from 'file-saver';\r\nimport { SelectItem } from 'primeng/api';\r\nimport { DropDownObject } from 'src/app/services/models/drop-down-object.interface';\r\n\r\n@Component({\r\n selector: 'app-reports-bhaba-referrals',\r\n templateUrl: './reports-bhaba-referrals.component.html',\r\n styleUrls: ['./reports-bhaba-referrals.component.scss']\r\n})\r\nexport class ReportsBHABAReferralsComponent implements OnInit {\r\n\r\n public providers:ProviderDetail[] = [];\r\n public selected: ProviderDetail[] = [];\r\n private sortColumn: string;\r\n private sortAscending: boolean;\r\n private enableBuildReport: boolean;\r\n private threshold: number = 25000;\r\n public showThresholdAlert: boolean = false;\r\n public fileList: SelectItem[];\r\n public selectedFile: Date;\r\n\r\n constructor(\r\n private sessionService: SessionService, \r\n private collectionService: CollectionService,\r\n private reportsService: ReportsService\r\n\r\n ) {\r\n\r\n this.sortColumn = 'name';\r\n this.sortAscending = true; \r\n this.enableBuildReport = true;\r\n }\r\n\r\n ngOnInit() {\r\n \r\n this.fileList = [];\r\n this.selectedFile = null;\r\n\r\n var iLoop:number = 1;\r\n while(iLoop <= 12) {\r\n var d = new Date();\r\n d.setMonth(d.getMonth() - iLoop);\r\n var year:number = d.getFullYear();\r\n var month:number = d.getMonth() + 1;\r\n var itemlabel: string = year.toString() + \"-\" + (month.toString().length == 1 ? \"0\" + month.toString() : month.toString());\r\n var itemValue: Date = new Date(year, month-1);\r\n \r\n if(iLoop == 1)\r\n this.selectedFile = itemValue;\r\n\r\n this.fileList.push({\r\n label: itemlabel,\r\n value: itemValue \r\n });\r\n iLoop++;\r\n }\r\n\r\n this.reportsService.getProvidersForBHABAReferrals(this.sessionService.currentPermission.providerCollectionID).subscribe(result=>{\r\n this.providers = result;\r\n\r\n let param: any = {\r\n \"field\": \"name\",\r\n \"order\": 1\r\n }\r\n this.onSort(param)\r\n\r\n this.selected = result;\r\n });\r\n }\r\n\r\n public onBuildReport() {\r\n\r\n this.enableBuildReport = false;\r\n\r\n let providerIds: string[] = [];\r\n this.selected.forEach(x=> {\r\n providerIds.push(x.calProviderID);\r\n });\r\n var startDate: Date = new Date(this.selectedFile);\r\n this.reportsService.downloadBHABAReferrals(providerIds, startDate, null).subscribe(result => {\r\n let fileName:string = \"bh-aba-referrals(\" + startDate.getFullYear() + \"_\" + (startDate.getMonth() + 1) + \").csv\";\r\n this.saveAsFile(result, fileName, 'text/csv');\r\n this.enableBuildReport = true;\r\n })\r\n }\r\n\r\n private saveAsFile(buffer: any, fileName: string, fileType: string): void {\r\n const data: Blob = new Blob([buffer], { type: fileType });\r\n saveAs(data, fileName);\r\n }\r\n\r\n public sortClass(column: string): string {\r\n let cls: string;\r\n if (column == this.sortColumn) {\r\n cls = this.sortAscending ? \"fa fa-chevron-up\" : \"fa fa-chevron-down\";\r\n }\r\n else {\r\n cls = \"fa fa-chevron-up\";\r\n }\r\n return cls;\r\n }\r\n\r\n public onSort(e: any): void {\r\n this.providers.sort((data1, data2) => {\r\n let value1 = data1[e.field];\r\n let value2 = data2[e.field];\r\n let result = null;\r\n\r\n if (value1 == null && value2 != null)\r\n result = -1;\r\n else if (value1 != null && value2 == null)\r\n result = 1;\r\n else if (value1 == null && value2 == null)\r\n result = 0;\r\n else if (typeof value1 === 'string' && typeof value2 === 'string')\r\n result = value1.localeCompare(value2);\r\n else\r\n result = (value1 < value2) ? -1 : (value1 > value2) ? 1 : 0;\r\n\r\n return (e.order * result);\r\n });\r\n this.sortAscending = e.order == 1;\r\n this.sortColumn = e.field;\r\n }\r\n\r\n public get IsEnterpriseUser() : boolean {\r\n return (this.sessionService.isEnterpriseAdmin || this.sessionService.isEnterpriseUser);\r\n }\r\n\r\n public onSearch(search) : void {\r\n\r\n if(this.sessionService.currentPermission.isEnterpriseAdmin || this.sessionService.currentPermission.isEnterpriseUser) {\r\n this.selected = [];\r\n this.reportsService.searchProvidersForBHABAReferrals(search.providerId, search.providerName, search.providerTin).subscribe(result => {\r\n this.providers = result;\r\n });\r\n } \r\n }\r\n\r\n public get totalCount() : number{\r\n this.showThresholdAlert = false;\r\n \r\n let totalCount: number = 0;\r\n this.selected.forEach(x=>{\r\n totalCount += x.pcpMemberCount\r\n });\r\n\r\n if(totalCount > this.threshold)\r\n this.showThresholdAlert = true;\r\n\r\n return totalCount;\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 Name
\r\n Provider ID
\r\n \r\n Medical Group
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{row.name}}
\r\n \r\n \r\n
{{row.calProviderID}}
\r\n \r\n \r\n \r\n
{{row.groupName}}
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n

Measurement Period

\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
","import { DOCUMENT } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, Inject, InjectionToken, EventEmitter, Directive, Optional, Input, Output, NgModule } from '@angular/core';\n\n/**\n * A pending copy-to-clipboard operation.\n *\n * The implementation of copying text to the clipboard modifies the DOM and\n * forces a re-layout. This re-layout can take too long if the string is large,\n * causing the execCommand('copy') to happen too long after the user clicked.\n * This results in the browser refusing to copy. This object lets the\n * re-layout happen in a separate tick from copying by providing a copy function\n * that can be called later.\n *\n * Destroy must be called when no longer in use, regardless of whether `copy` is\n * called.\n */\nclass PendingCopy {\n constructor(text, _document) {\n this._document = _document;\n const textarea = this._textarea = this._document.createElement('textarea');\n const styles = textarea.style;\n // Hide the element for display and accessibility. Set a fixed position so the page layout\n // isn't affected. We use `fixed` with `top: 0`, because focus is moved into the textarea\n // for a split second and if it's off-screen, some browsers will attempt to scroll it into view.\n styles.position = 'fixed';\n styles.top = styles.opacity = '0';\n styles.left = '-999em';\n textarea.setAttribute('aria-hidden', 'true');\n textarea.value = text;\n // Making the textarea `readonly` prevents the screen from jumping on iOS Safari (see #25169).\n textarea.readOnly = true;\n // The element needs to be inserted into the fullscreen container, if the page\n // is in fullscreen mode, otherwise the browser won't execute the copy command.\n (this._document.fullscreenElement || this._document.body).appendChild(textarea);\n }\n /** Finishes copying the text. */\n copy() {\n const textarea = this._textarea;\n let successful = false;\n try {\n // Older browsers could throw if copy is not supported.\n if (textarea) {\n const currentFocus = this._document.activeElement;\n textarea.select();\n textarea.setSelectionRange(0, textarea.value.length);\n successful = this._document.execCommand('copy');\n if (currentFocus) {\n currentFocus.focus();\n }\n }\n } catch {\n // Discard error.\n // Initial setting of {@code successful} will represent failure here.\n }\n return successful;\n }\n /** Cleans up DOM changes used to perform the copy operation. */\n destroy() {\n const textarea = this._textarea;\n if (textarea) {\n textarea.remove();\n this._textarea = undefined;\n }\n }\n}\n\n/**\n * A service for copying text to the clipboard.\n */\nlet Clipboard = /*#__PURE__*/(() => {\n class Clipboard {\n constructor(document) {\n this._document = document;\n }\n /**\n * Copies the provided text into the user's clipboard.\n *\n * @param text The string to copy.\n * @returns Whether the operation was successful.\n */\n copy(text) {\n const pendingCopy = this.beginCopy(text);\n const successful = pendingCopy.copy();\n pendingCopy.destroy();\n return successful;\n }\n /**\n * Prepares a string to be copied later. This is useful for large strings\n * which take too long to successfully render and be copied in the same tick.\n *\n * The caller must call `destroy` on the returned `PendingCopy`.\n *\n * @param text The string to copy.\n * @returns the pending copy operation.\n */\n beginCopy(text) {\n return new PendingCopy(text, this._document);\n }\n static {\n this.ɵfac = function Clipboard_Factory(t) {\n return new (t || Clipboard)(i0.ɵɵinject(DOCUMENT));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: Clipboard,\n factory: Clipboard.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return Clipboard;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/** Injection token that can be used to provide the default options to `CdkCopyToClipboard`. */\nconst CDK_COPY_TO_CLIPBOARD_CONFIG = /*#__PURE__*/new InjectionToken('CDK_COPY_TO_CLIPBOARD_CONFIG');\n/**\n * Provides behavior for a button that when clicked copies content into user's\n * clipboard.\n */\nlet CdkCopyToClipboard = /*#__PURE__*/(() => {\n class CdkCopyToClipboard {\n constructor(_clipboard, _ngZone, config) {\n this._clipboard = _clipboard;\n this._ngZone = _ngZone;\n /** Content to be copied. */\n this.text = '';\n /**\n * How many times to attempt to copy the text. This may be necessary for longer text, because\n * the browser needs time to fill an intermediate textarea element and copy the content.\n */\n this.attempts = 1;\n /**\n * Emits when some text is copied to the clipboard. The\n * emitted value indicates whether copying was successful.\n */\n this.copied = new EventEmitter();\n /** Copies that are currently being attempted. */\n this._pending = new Set();\n if (config && config.attempts != null) {\n this.attempts = config.attempts;\n }\n }\n /** Copies the current text to the clipboard. */\n copy(attempts = this.attempts) {\n if (attempts > 1) {\n let remainingAttempts = attempts;\n const pending = this._clipboard.beginCopy(this.text);\n this._pending.add(pending);\n const attempt = () => {\n const successful = pending.copy();\n if (!successful && --remainingAttempts && !this._destroyed) {\n // We use 1 for the timeout since it's more predictable when flushing in unit tests.\n this._currentTimeout = this._ngZone.runOutsideAngular(() => setTimeout(attempt, 1));\n } else {\n this._currentTimeout = null;\n this._pending.delete(pending);\n pending.destroy();\n this.copied.emit(successful);\n }\n };\n attempt();\n } else {\n this.copied.emit(this._clipboard.copy(this.text));\n }\n }\n ngOnDestroy() {\n if (this._currentTimeout) {\n clearTimeout(this._currentTimeout);\n }\n this._pending.forEach(copy => copy.destroy());\n this._pending.clear();\n this._destroyed = true;\n }\n static {\n this.ɵfac = function CdkCopyToClipboard_Factory(t) {\n return new (t || CdkCopyToClipboard)(i0.ɵɵdirectiveInject(Clipboard), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(CDK_COPY_TO_CLIPBOARD_CONFIG, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkCopyToClipboard,\n selectors: [[\"\", \"cdkCopyToClipboard\", \"\"]],\n hostBindings: function CdkCopyToClipboard_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function CdkCopyToClipboard_click_HostBindingHandler() {\n return ctx.copy();\n });\n }\n },\n inputs: {\n text: [i0.ɵɵInputFlags.None, \"cdkCopyToClipboard\", \"text\"],\n attempts: [i0.ɵɵInputFlags.None, \"cdkCopyToClipboardAttempts\", \"attempts\"]\n },\n outputs: {\n copied: \"cdkCopyToClipboardCopied\"\n },\n standalone: true\n });\n }\n }\n return CdkCopyToClipboard;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet ClipboardModule = /*#__PURE__*/(() => {\n class ClipboardModule {\n static {\n this.ɵfac = function ClipboardModule_Factory(t) {\n return new (t || ClipboardModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: ClipboardModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n }\n return ClipboardModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CDK_COPY_TO_CLIPBOARD_CONFIG, CdkCopyToClipboard, Clipboard, ClipboardModule, PendingCopy };\n","import { Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { OAuthService } from 'angular-oauth2-oidc';\r\nimport { Subscription } from 'rxjs';\r\nimport { AlertInfoComponent } from 'src/app/app-components/alerts/alert-info/alert-info.component';\r\nimport { Messages } from 'src/app/app.messages';\r\nimport { ProviderResource } from 'src/app/services/models/portal-resource';\r\nimport { ProviderDetailsWithTrainingAttestation } from 'src/app/services/models/provider-detail';\r\nimport { ProviderTaxDetailsWithTrainingAttestation, ProviderTaxNetwork } from 'src/app/services/models/provider-tax-details';\r\nimport { ProviderTrainingAttestationDetail } from 'src/app/services/models/provider-training-attestation-detail';\r\nimport { ProviderTrainingAttestationApplyRequest } from 'src/app/services/models/requests/provider-training-attestation-apply-request';\r\nimport { TrainingAttestationStatus } from 'src/app/services/models/training-attestation-status';\r\nimport { ReportsService } from 'src/app/services/reports.service';\r\nimport { SessionService } from 'src/app/services/session.service';\r\nimport { Clipboard } from '@angular/cdk/clipboard';\r\nimport { UiUtility } from 'src/app/utils/ui-utility';\r\n\r\n@Component({\r\n selector: 'app-attestation-provider-training-dialog',\r\n templateUrl: './attestation-provider-training-dialog.component.html',\r\n styleUrl: './attestation-provider-training-dialog.component.scss'\r\n})\r\nexport class AttestationProviderTrainingDialogComponent implements OnInit, OnDestroy {\r\n public trainingAttestationStatusDisplay: string;\r\n public providerName: string;\r\n public attestationConfirmation: boolean = false;\r\n public attendees: string;\r\n public providerTaxNetwork: ProviderTaxNetwork[] = [];\r\n public trainingAttestationResources: ProviderResource[] = [];\r\n public isPending: boolean = true;\r\n public headerTitle: string = 'Annual Provider Training Attestation Submission';\r\n public attestationName: string = 'Annual Provider Training';\r\n public resourceGeneralMessage: string = '';\r\n public resourceDetailMessage: string = '';\r\n public errorMessage: string = '';\r\n public attendeesInvalid: boolean;\r\n public attendeesPlaceholder: string = \"Enter attendees. Characters only, separated by comma (,) if necessary\";\r\n public attendeesErrorMessage: string = \"Please enter characters only and separate attendees with comma (,) if necessary.\"\r\n private attendeesRegex: string = \"^([a-zA-Z , *]*)$\";\r\n\r\n public get enableSubmitAttestation(): boolean {\r\n return this.trainingAttestationResources && this.trainingAttestationResources.length \r\n && this.attendees && !UiUtility.isNullUndefinedOrEmpty(this.attendees.trim()) && !this.attendeesInvalid\r\n && this.trainingAttestationResources.find(r => r.resourceTrained === null || r.resourceTrained === false) === undefined\r\n && this.attestationConfirmation;\r\n }\r\n\r\n private providerTaxId: string;\r\n private displayDialog: boolean = true;\r\n private providerTrainingAttestationSubscription: Subscription;\r\n private currentUser: string;\r\n \r\n @Input() taxDetail: ProviderTaxDetailsWithTrainingAttestation = null;\r\n @Input() providerDetail: ProviderDetailsWithTrainingAttestation = null;\r\n @Output() onAttestationSubmission = new EventEmitter();\r\n\r\n public get display() : boolean {\r\n return this.displayDialog\r\n }\r\n\r\n public set display(value:boolean) {\r\n this.displayDialog = value;\r\n }\r\n\r\n constructor (\r\n private reportService: ReportsService,\r\n private oAuthService: OAuthService,\r\n private sessionService: SessionService,\r\n private messages: Messages,\r\n private clipboard: Clipboard\r\n ) { }\r\n\r\n ngOnInit() {\r\n const claims = this.oAuthService.getIdentityClaims();\r\n this.currentUser = claims['sub'];\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.providerTrainingAttestationSubscription != null) {\r\n this.providerTrainingAttestationSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n public onClose(): void {\r\n this.onAttestationSubmission.emit();\r\n this.display = false;\r\n }\r\n\r\n public onShow() {\r\n let trainingCompleted: string = '';\r\n this.errorMessage = '';\r\n this.attendeesInvalid = false;\r\n\r\n if (this.taxDetail && this.providerDetail) {\r\n this.onAttestationSubmission.emit('error');\r\n this.display = false;\r\n throw new Error('only pass either one of the object: taxDetail or providerDetail.');\r\n }\r\n\r\n if (this.taxDetail) {\r\n this.providerTaxId = this.taxDetail.providerTaxId;\r\n this.providerName = this.taxDetail.providerTaxName;\r\n this.trainingAttestationStatusDisplay = this.taxDetail.trainingAttestationStatusDisplay;\r\n this.attendees = this.taxDetail.attendees;\r\n this.isPending = this.taxDetail.trainingAttestationStatusDisplay !== 'Submitted' && !(this.sessionService.isEnterpriseAdmin || this.sessionService.isEnterpriseUser);\r\n this.attestationName = 'Annual Provider Training';\r\n trainingCompleted = this.taxDetail.trainingCompleted ? this.taxDetail.trainingCompleted : '';\r\n\r\n if (!this.taxDetail.attestationDate) {\r\n this.taxDetail.attestationDate = new Date();\r\n }\r\n this.resourceGeneralMessage = 'Per CalOptima Health Policy EE.1103: Provider Network Training: Newly Contracted Provider and annual training must be provided by CalOptima Health and its Health Networks to medical, behavioral health, and Long-Term Services and Support (LTSS) Providers (hereinafter referred to as “Network Providers”), any Provider that interacts with CalOptima Health Members and Subcontractors who serve CalOptima Health’s Members participating in CalOptima Health Medi-Cal, OneCare and Program of All-Inclusive Care for the Elderly (PACE) programs, in accordance with applicable Department of Health Care Services (DHCS) and the Centers for Medicare & Medicaid Services (CMS) requirements.';\r\n this.resourceDetailMessage = 'Annually, Providers participating with CalOptima Health and Health Networks, have completed, attested, and retained such records of Newly Contracted Provider and Annual Training located on CalOptima Health’s website';\r\n }\r\n else {\r\n this.providerTaxId = this.providerDetail.taxId;\r\n this.providerName = this.providerDetail.name;\r\n this.trainingAttestationStatusDisplay = this.providerDetail.trainingAttestationStatusDisplay;\r\n this.attendees = this.providerDetail.attendees;\r\n this.isPending = this.providerDetail.trainingAttestationStatusDisplay !== 'Submitted' && !(this.sessionService.isEnterpriseAdmin || this.sessionService.isEnterpriseUser);\r\n this.attestationName = 'Initial Provider Training';\r\n trainingCompleted = this.providerDetail.trainingCompleted ? this.providerDetail.trainingCompleted : '';\r\n\r\n if (!this.providerDetail.attestationDate) {\r\n this.providerDetail.attestationDate = new Date();\r\n }\r\n\r\n this.resourceGeneralMessage = 'Per CalOptima Health Policy EE.1103: Provider Network Training: Newly Contracted Provider and annual training must be provided by CalOptima Health and its Health Networks to medical, behavioral health, and Long-Term Services and Support (LTSS) Providers (hereinafter referred to as “Network Providers”), any Provider that interacts with CalOptima Health Members and Subcontractors who serve CalOptima Health’s Members participating in CalOptima Health Medi-Cal, OneCare and Program of All-Inclusive Care for the Elderly (PACE) programs, in accordance with applicable Department of Health Care Services (DHCS) and the Centers for Medicare & Medicaid Services (CMS) requirements.';\r\n this.resourceDetailMessage = 'Providers participating with CalOptima Health and Health Networks must have completed, attested, and retained such records of Newly Contracted Providers within 30 days of their contract, located on CalOptima Health’s website';\r\n }\r\n\r\n if (!this.isPending) {\r\n this.attendeesPlaceholder = \"\";\r\n }\r\n this.providerTrainingAttestationSubscription = this.reportService.getProviderTrainingAttestationDetail(this.providerTaxId)\r\n .subscribe(result => {\r\n this.providerTaxNetwork = result.providerTaxNetwork;\r\n let row = 1;\r\n const colCount = 2;\r\n for (let i=1; i <= this.providerTaxNetwork.length; i++) {\r\n this.providerTaxNetwork[i-1].rowNum = row;\r\n if (i%colCount === 0) { \r\n row++;\r\n }\r\n };\r\n\r\n this.trainingAttestationResources = result.trainingAttestationResources;\r\n this.trainingAttestationResources.forEach(t => {\r\n t.resourceTrained = trainingCompleted.indexOf(t.providerResourcesID.toString()) !== -1 ? true : false;\r\n });\r\n\r\n if (!this.isPending) {\r\n this.attestationConfirmation = true;\r\n this.headerTitle = this.taxDetail ? 'Annual Provider Training Attestation Detail' : 'Initial Provider Training Attestation Detail';\r\n }\r\n else {\r\n this.headerTitle = this.taxDetail ? 'Annual Provider Training Attestation Submission' : 'Initial Provider Training Attestation Submission';\r\n }\r\n }, () => {\r\n this.errorMessage = this.messages.MessageGenericError;\r\n });\r\n }\r\n\r\n public onAttestResource(event: any, resource: ProviderResource, index: number) {\r\n if (event) {\r\n event.preventDefault();\r\n }\r\n const width = document.documentElement.clientWidth * 0.8;\r\n const height = document.documentElement.clientHeight * 0.8;\r\n const windowProps = 'resizable=yes, scrollbars=yes, titlebar=yes, width=' + width + ',height=' + height;\r\n\r\n if (this.isPending) {\r\n setTimeout(() => {\r\n resource.resourceTrained = true; // used this to mark a resource has been viewed with \"1\"\r\n }, 1000);\r\n }\r\n window.open(resource.resourceSource, '_blank', windowProps);\r\n }\r\n\r\n public onCancel() {\r\n this.onAttestationSubmission.emit('cancel');\r\n this.display = false;\r\n }\r\n\r\n public onSubmit() {\r\n const re = new RegExp(this.attendeesRegex);\r\n if (UiUtility.isNullUndefinedOrEmpty(this.attendees) || !this.isValidForm()) {\r\n this.attendeesInvalid = true;\r\n return;\r\n }\r\n else {\r\n this.attendeesInvalid = false;\r\n }\r\n\r\n let request: ProviderTrainingAttestationApplyRequest[] = [];\r\n let trainingCompleted: string = '';\r\n this.errorMessage = '';\r\n\r\n for(var i = 0; i < this.trainingAttestationResources.length; i++) {\r\n trainingCompleted += this.trainingAttestationResources[i].providerResourcesID.toString();\r\n if (i >= 0 && i < this.trainingAttestationResources.length-1)\r\n trainingCompleted += '|';\r\n }\r\n\r\n if (this.taxDetail) {\r\n var attestationYear:number = new Date().getFullYear();\r\n if(this.taxDetail.trainingDueDate){\r\n const temp = new Date(this.taxDetail.trainingDueDate);\r\n attestationYear = temp.getFullYear();\r\n }\r\n\r\n request.push({\r\n providerIdOrTaxId : this.taxDetail.providerTaxId,\r\n providerNPI: \"\",\r\n attestationBy : this.currentUser,\r\n attendees: this.attendees.trim(),\r\n validationBy : null,\r\n attestationYear: attestationYear, \r\n trainingCompleted: trainingCompleted \r\n });\r\n this.reportService.applyProviderTrainingAttestationAnnual(request).subscribe(p => {\r\n this.taxDetail.trainingAttestationStatus = TrainingAttestationStatus.Submitted;\r\n this.taxDetail.trainingAttestationStatusDisplay = \"Submitted\";\r\n this.taxDetail.attestationDate = new Date();\r\n this.taxDetail.trainingCompleted = trainingCompleted;\r\n this.taxDetail.attendees = this.attendees ? this.attendees.trim() : this.attendees;\r\n this.onAttestationSubmission.emit(this.taxDetail);\r\n this.display = false;\r\n }, error => {\r\n console.log(error);\r\n this.errorMessage = this.messages.MessageGenericError;\r\n });\r\n }\r\n else {\r\n request.push({\r\n providerIdOrTaxId : this.providerDetail.calProviderID,\r\n providerNPI: this.providerDetail.providerNPI,\r\n attestationBy : this.currentUser,\r\n attendees: this.attendees.trim(),\r\n validationBy : null,\r\n attestationYear : null,\r\n trainingCompleted: trainingCompleted \r\n });\r\n this.reportService.applyProviderTrainingAttestationIndividual(request).subscribe(p => {\r\n this.providerDetail.trainingAttestationStatus = TrainingAttestationStatus.Submitted;\r\n this.providerDetail.trainingAttestationStatusDisplay = \"Submitted\";\r\n this.providerDetail.attestationDate = new Date();\r\n this.providerDetail.trainingCompleted = trainingCompleted;\r\n this.providerDetail.attendees = this.attendees ? this.attendees.trim() : this.attendees;\r\n this.onAttestationSubmission.emit(this.providerDetail);\r\n this.display = false;\r\n }, error => {\r\n console.log(error);\r\n this.errorMessage = this.messages.MessageGenericError;\r\n });\r\n }\r\n }\r\n\r\n public onConfirmationChanged(event) {\r\n if (this.isPending) {\r\n this.attestationConfirmation = this.attestationConfirmation ? false : true;\r\n }\r\n }\r\n\r\n public copyToClipboard(event: any, value: string): void {\r\n if (event) {\r\n event.preventDefault();\r\n }\r\n const successful = this.clipboard.copy(value);\r\n }\r\n\r\n public onKeyPress() {\r\n return this.isValidForm();\r\n }\r\n\r\n private isValidForm() {\r\n const re = new RegExp(this.attendeesRegex);\r\n const valid = re.test(this.attendees);\r\n this.attendeesInvalid = !valid ? true : false;\r\n return valid;\r\n }\r\n}\r\n","\r\n
\r\n
\r\n {{errorMessage}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n

{{providerName}}

\r\n
\r\n
\r\n
\r\n
\r\n Attendees\r\n * \r\n
\r\n
\r\n \r\n
{{attendeesErrorMessage}}
\r\n
\r\n
TIN
\r\n
{{taxDetail.providerTaxId}}
\r\n
Training Date
\r\n
{{taxDetail.attestationDate | date:'MM/dd/yy'}}
\r\n
Status
\r\n
{{taxDetail.trainingAttestationStatusDisplay}}
\r\n
\r\n
\r\n
\r\n Attendees\r\n * \r\n
\r\n
\r\n \r\n
{{attendeesErrorMessage}}
\r\n
\r\n
Provider ID
\r\n
{{providerDetail.calProviderID}}
\r\n
NPI
\r\n
{{providerDetail.providerNPI}}
\r\n
TIN
\r\n
{{providerDetail.taxId}}
\r\n
Training Date
\r\n
{{providerDetail.attestationDate | date:'MM/dd/yy'}}
\r\n
Status
\r\n
\r\n {{trainingAttestationStatusDisplay}}\r\n {{trainingAttestationStatusDisplay}} \r\n {{trainingAttestationStatusDisplay}}\r\n
\r\n
\r\n
\r\n

Health Network Affiliation

\r\n
\r\n
\r\n
{{network.networkName}}
\r\n
{{network.networkName}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {{resourceGeneralMessage}}\r\n

\r\n

\r\n {{resourceDetailMessage}} \r\n www.caloptima.org.\r\n

\r\n

\r\n TRAINING MATERIALS\r\n *\r\n

\r\n
\r\n
\r\n
\r\n \r\n {{resource.resourceDesc}}\r\n \r\n
\r\n
\r\n \r\n {{resource.resourceDesc}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n ATTESTATION\r\n *\r\n
\r\n

CalOptima Health provided training on the above information and the resources available on CalOptima Health's website.

\r\n
\r\n \r\n I attest that I have completed the {{attestationName}}.\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { Messages } from 'src/app/app.messages';\r\nimport { ProviderTaxDetails, ProviderTaxDetailsWithTrainingAttestation } from 'src/app/services/models/provider-tax-details';\r\nimport { ReportsService } from 'src/app/services/reports.service';\r\nimport { SessionService } from 'src/app/services/session.service';\r\nimport { UiUtility } from 'src/app/utils/ui-utility';\r\n\r\n@Component({\r\n selector: 'app-attestation-provider-training-annual',\r\n templateUrl: './attestation-provider-training-annual.component.html',\r\n styleUrl: './attestation-provider-training-annual.component.scss'\r\n})\r\nexport class AttestationProviderTrainingAnnualComponent implements OnInit {\r\n private userCollectionSubscription: Subscription;\r\n private sortColumn: string;\r\n private sortAscending: boolean;\r\n\r\n public displayProviderAttestationTraining: boolean;\r\n public displayTins: ProviderTaxDetailsWithTrainingAttestation[];\r\n public tins: ProviderTaxDetailsWithTrainingAttestation[];\r\n public selectedTin: string;\r\n public selectedTaxDetail: ProviderTaxDetailsWithTrainingAttestation;\r\n public totalRecords: number;\r\n public displayMessage = false;\r\n public isEnterpriseUser = false;\r\n public errorMessage: string = '';\r\n\r\n constructor(\r\n private sessionService: SessionService,\r\n private reportService: ReportsService,\r\n private messages: Messages\r\n ) {\r\n this.sortColumn = 'name';\r\n this.sortAscending = true;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.isEnterpriseUser = this.sessionService.currentPermission.isEnterpriseAdmin || this.sessionService.currentPermission.isEnterpriseUser\r\n if(this.isEnterpriseUser ) {\r\n // Do nothing, let internal user to search\r\n }\r\n else {\r\n const currentCollectionId = this.sessionService.currentPermission.providerCollectionID;\r\n this.searchProviders(currentCollectionId);\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.userCollectionSubscription != null) {\r\n this.userCollectionSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n public sortClass(column: string): string {\r\n let cls: string;\r\n if (column == this.sortColumn) {\r\n cls = this.sortAscending ? \"fa fa-chevron-up\" : \"fa fa-chevron-down\";\r\n }\r\n else {\r\n cls = \"fa fa-chevron-up\";\r\n }\r\n return cls;\r\n }\r\n\r\n public onPage(e: any) {\r\n let s = JSON.stringify(e);\r\n }\r\n\r\n public onSort(e: any): void {\r\n this.tins.sort((data1, data2) => {\r\n let value1 = data1[e.field];\r\n let value2 = data2[e.field];\r\n let result = null;\r\n\r\n if (value1 == null && value2 != null)\r\n result = -1;\r\n else if (value1 != null && value2 == null)\r\n result = 1;\r\n else if (value1 == null && value2 == null)\r\n result = 0;\r\n else if (typeof value1 === 'string' && typeof value2 === 'string')\r\n result = value1.localeCompare(value2);\r\n else\r\n result = (value1 < value2) ? -1 : (value1 > value2) ? 1 : 0;\r\n\r\n return (e.order * result);\r\n });\r\n this.sortAscending = e.order == 1;\r\n this.sortColumn = e.field;\r\n }\r\n\r\n \r\n public onSearch(search: any) : void {\r\n this.selectedTin = '';\r\n\r\n if (search && !UiUtility.isNullUndefinedOrEmpty(search.providerId)) {\r\n if(this.isEnterpriseUser) {\r\n this.searchProviders(0, search.providerId);\r\n }\r\n else {\r\n this.displayTins = this.tins\r\n .filter(p => p.providerTaxId.toLowerCase().indexOf(search.providerId.trim().toLowerCase()) >= 0);\r\n }\r\n }\r\n else {\r\n this.displayTins = this.tins.slice();\r\n }\r\n }\r\n\r\n public onTinSelected(tin: ProviderTaxDetailsWithTrainingAttestation, isRadioButton: boolean = false) {\r\n if (tin.trainingAttestationStatusDisplay === 'Submitted' && isRadioButton) {\r\n return; //disable radio button\r\n }\r\n \r\n this.selectedTaxDetail = this.displayTins.find(t => t.trainingAttestationId === tin.trainingAttestationId);\r\n this.displayProviderAttestationTraining = true;\r\n }\r\n\r\n public onProcessAttestation(event: any) {\r\n this.displayProviderAttestationTraining = false;\r\n if (event != null && event !== 'cancel') {\r\n this.selectedTaxDetail = event;\r\n\r\n if (!this.isEnterpriseUser && this.selectedTaxDetail.attendees && this.selectedTaxDetail.attendees.length > 0) {\r\n this.selectedTaxDetail.attendees = \"*****\";\r\n }\r\n }\r\n }\r\n\r\n private searchProviders(collectionId: number, providerTaxId: string = null) {\r\n this.errorMessage = '';\r\n this.userCollectionSubscription = this.reportService.getProvidersForTrainingAttestationAnnual(collectionId, providerTaxId).subscribe(result=>{\r\n this.tins = result !== null ? result : [];\r\n this.totalRecords = this.tins.length;\r\n\r\n if(this.tins && this.tins.length) {\r\n this.tins.forEach(t => {\r\n t.trainingAttestationStatusDisplay = this.reportService.providerTrainingStatusMapping(t.trainingAttestationStatus);\r\n t.trainingAttestationId = t.providerTaxId + '-' + new Date(t.trainingDueDate).getFullYear().toString();\r\n });\r\n this.displayTins = this.tins.slice();\r\n }\r\n else {\r\n this.displayTins = [];\r\n }\r\n this.displayMessage = this.tins.length === 0;\r\n let param: any = {\r\n \"field\": \"providerTaxName\",\r\n \"order\": 1\r\n }\r\n this.onSort(param)\r\n }, (error) => {\r\n console.log(error);\r\n this.errorMessage = this.messages.MessageGenericError;\r\n });\r\n }\r\n}\r\n","\r\n
\r\n
\r\n \r\n
\r\n
\r\n {{errorMessage}}\r\n
\r\n
\r\n \r\n \r\n \r\n  \r\n Name\r\n TIN\r\n Due Date\r\n Attestation Status\r\n  \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{row.providerTaxName}}
\r\n \r\n \r\n \r\n
{{row.providerTaxId}}
\r\n \r\n \r\n
{{row.trainingDueDate}}
\r\n \r\n \r\n
{{row.trainingAttestationStatusDisplay}}
\r\n
{{row.trainingAttestationStatusDisplay}}
\r\n
{{row.trainingAttestationStatusDisplay}}
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n No results found.\r\n
\r\n
\r\n\r\n\r\n\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { Messages } from 'src/app/app.messages';\r\nimport { ProviderDetailsWithTrainingAttestation } from 'src/app/services/models/provider-detail';\r\nimport { TrainingAttestationStatus } from 'src/app/services/models/training-attestation-status';\r\nimport { ReportsService } from 'src/app/services/reports.service';\r\nimport { SessionService } from 'src/app/services/session.service';\r\nimport { UiUtility } from 'src/app/utils/ui-utility';\r\n\r\n@Component({\r\n selector: 'app-attestation-provider-training-individual',\r\n templateUrl: './attestation-provider-training-individual.component.html',\r\n styleUrl: './attestation-provider-training-individual.component.scss'\r\n})\r\nexport class AttestationProviderTrainingIndividualComponent implements OnInit, OnDestroy {\r\n private userCollectionSubscription: Subscription;\r\n private sortColumn: string;\r\n private sortAscending: boolean;\r\n\r\n public displayProviderAttestationTraining: boolean;\r\n public displayProviders: ProviderDetailsWithTrainingAttestation[];\r\n public providers: ProviderDetailsWithTrainingAttestation[];\r\n public selectedProvider: ProviderDetailsWithTrainingAttestation;\r\n public selectedTin: string;\r\n public totalRecords: number;\r\n public displayMessage = false;\r\n public isEnterpriseUser = false;\r\n public errorMessage: string = '';\r\n public first: number = 0;\r\n\r\n constructor(\r\n private sessionService: SessionService,\r\n private reportService: ReportsService,\r\n private messages: Messages\r\n ) {\r\n this.sortColumn = 'name';\r\n this.sortAscending = true;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.userCollectionSubscription != null) {\r\n this.userCollectionSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.isEnterpriseUser = this.sessionService.currentPermission.isEnterpriseAdmin || this.sessionService.currentPermission.isEnterpriseUser;\r\n if(this.isEnterpriseUser) {\r\n // Do nothing, let internal user to search\r\n }\r\n else {\r\n const currentCollectionId = this.sessionService.currentPermission.providerCollectionID;\r\n this.searchProviders(currentCollectionId);\r\n }\r\n }\r\n\r\n public sortClass(column: string): string {\r\n let cls: string;\r\n if (column == this.sortColumn) {\r\n cls = this.sortAscending ? \"fa fa-chevron-up\" : \"fa fa-chevron-down\";\r\n }\r\n else {\r\n cls = \"fa fa-chevron-up\";\r\n }\r\n return cls;\r\n }\r\n\r\n public onPage(e: any) {\r\n let s = JSON.stringify(e);\r\n }\r\n\r\n public onSort(e: any): void { \r\n\r\n this.displayProviders.sort((data1, data2) => \r\n {\r\n let value1 = data1[e.field];\r\n let value2 = data2[e.field];\r\n let result = null;\r\n\r\n if (value1 == null && value2 != null) {\r\n result = -1;\r\n }\r\n else if (value1 != null && value2 == null) {\r\n result = 1;\r\n }\r\n else if (value1 == null && value2 == null) {\r\n result = 0;\r\n } \r\n else if (typeof value1 === 'string' && typeof value2 === 'string') {\r\n result = value1.localeCompare(value2);\r\n }\r\n else {\r\n result = (value1 < value2) ? -1 : (value1 > value2) ? 1 : 0;\r\n }\r\n\r\n return (e.order * result);\r\n });\r\n this.sortAscending = e.order == 1;\r\n this.sortColumn = e.field;\r\n }\r\n\r\n public onSearch(search: any) : void {\r\n this.selectedTin = '';\r\n\r\n if (search && (search.providerName || search.providerId || search.providerTin)) {\r\n if(this.isEnterpriseUser) {\r\n this.searchProviders(0, search.providerId, search.providerName, search.providerTin);\r\n }\r\n else {\r\n\r\n if (!UiUtility.isNullUndefinedOrEmpty(search.providerName)) {\r\n this.displayProviders = this.providers\r\n .filter(p => p.name.toLowerCase().indexOf(search.providerName.trim().toLowerCase()) >= 0);\r\n }\r\n else if (!UiUtility.isNullUndefinedOrEmpty(search.providerId)) {\r\n this.displayProviders = this.providers\r\n .filter(p => p.calProviderID.toLowerCase().indexOf(search.providerId.trim().toLowerCase()) >= 0);\r\n }\r\n else if (!UiUtility.isNullUndefinedOrEmpty(search.providerTin)) {\r\n this.displayProviders = this.providers\r\n .filter(p => p.taxId.toLowerCase().indexOf(search.providerTin.trim().toLowerCase()) >= 0);\r\n } \r\n\r\n /*\r\n if (!UiUtility.isNullUndefinedOrEmpty(search.providerName) && !UiUtility.isNullUndefinedOrEmpty(search.providerId)) {\r\n this.displayProviders = this.providers\r\n .filter(p => p.name.toLowerCase().indexOf(search.providerName.trim().toLowerCase()) >= 0 || p.calProviderID.toLowerCase().indexOf(search.providerId.trim().toLowerCase()) >= 0);\r\n }\r\n else if (!UiUtility.isNullUndefinedOrEmpty(search.providerName)) {\r\n this.displayProviders = this.providers\r\n .filter(p => p.name.toLowerCase().indexOf(search.providerName.trim().toLowerCase()) >= 0);\r\n }\r\n else {\r\n this.displayProviders = this.providers\r\n .filter(p => p.calProviderID.toLowerCase().indexOf(search.providerId.trim().toLowerCase()) >= 0);\r\n }\r\n */\r\n }\r\n }\r\n else {\r\n this.displayProviders = this.providers.slice();\r\n }\r\n let param: any = {\r\n \"field\": \"name\",\r\n \"order\": 1\r\n }\r\n this.onSort(param);\r\n this.first = 0;\r\n }\r\n\r\n public onProviderSelected(provider: ProviderDetailsWithTrainingAttestation, isRadioButton: boolean = false) {\r\n if (provider.trainingAttestationStatusDisplay === 'Submitted' && isRadioButton) {\r\n return; //disable radio button\r\n }\r\n\r\n this.selectedProvider = provider;\r\n this.displayProviderAttestationTraining = true;\r\n }\r\n\r\n public onProcessAttestation(event: any) {\r\n this.displayProviderAttestationTraining = false;\r\n if (event != null && event !== 'cancel') {\r\n this.selectedProvider = event;\r\n\r\n for (var i = 0; i < this.displayProviders.length; i++) {\r\n if (this.displayProviders[i].providerNPI === this.selectedProvider.providerNPI) {\r\n this.displayProviders[i].trainingAttestationStatus = TrainingAttestationStatus.Submitted;\r\n this.displayProviders[i].trainingAttestationStatusDisplay = \"Submitted\";\r\n this.displayProviders[i].attestationDate = new Date();\r\n this.displayProviders[i].attendees = this.selectedProvider.attendees;\r\n\r\n if (!this.isEnterpriseUser && this.selectedProvider.attendees && this.selectedProvider.attendees.length > 0) {\r\n this.displayProviders[i].attendees = \"*****\";\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n private searchProviders(collectionId: number, providerId: string = null, providerName: string = null, providerTin: string = null) {\r\n this.errorMessage = '';\r\n this.userCollectionSubscription = this.reportService.getProvidersForTrainingAttestationIndividual(collectionId, providerId, providerName, providerTin).subscribe(result=>{\r\n this.providers = result !== null ? result : [];\r\n this.totalRecords = this.providers.length;\r\n\r\n if(this.providers) {\r\n this.providers.forEach(p => {\r\n p.trainingAttestationStatusDisplay = this.reportService.providerTrainingStatusMapping(p.trainingAttestationStatus);\r\n p.trainingDueDate = (new Date(p.trainingDueDate)).getTime();\r\n });\r\n this.displayProviders = this.providers.slice();\r\n }\r\n\r\n this.displayMessage = this.providers.length === 0;\r\n \r\n let param: any = {\r\n \"field\": \"name\",\r\n \"order\": 1\r\n }\r\n this.onSort(param)\r\n }, (error) => {\r\n console.log(error);\r\n this.errorMessage = this.messages.MessageGenericError;\r\n });\r\n }\r\n}\r\n","\r\n
\r\n
\r\n \r\n
\r\n
\r\n {{errorMessage}}\r\n
\r\n
\r\n \r\n \r\n \r\n  \r\n Name\r\n Provider ID\r\n TIN\r\n Due Date\r\n Attestation Status\r\n  \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{row.name}}
\r\n \r\n \r\n \r\n
{{row.calProviderID}}
\r\n \r\n \r\n
{{row.taxId}}
\r\n \r\n \r\n
{{row.trainingDueDate | date:'MM/dd/yyyy'}}
\r\n \r\n \r\n
{{row.trainingAttestationStatusDisplay}}
\r\n
{{row.trainingAttestationStatusDisplay}}
\r\n
{{row.trainingAttestationStatusDisplay}}
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n No results found.\r\n
\r\n
\r\n\r\n\r\n","import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { TabView } from 'primeng/tabview';\r\nimport { Subscription } from 'rxjs';\r\nimport { SessionService } from 'src/app/services/session.service';\r\nimport { UserAdminService } from 'src/app/services/user-admin.service';\r\nimport { UiUtility } from 'src/app/utils/ui-utility';\r\n\r\n@Component({\r\n selector: 'app-attestation-provider-training',\r\n templateUrl: './attestation-provider-training.component.html',\r\n styleUrl: './attestation-provider-training.component.scss'\r\n})\r\nexport class AttestationProviderTrainingComponent implements OnInit {\r\n private userCollectionSubscription: Subscription;\r\n public activeindex:number = 0;\r\n\r\n private tabs: any = [\r\n { index: 0, id: 'training-attestation-individual', label: 'Initial', enable: true },\r\n { index: 1, id: 'training-attestation-annual', label: 'Annual', enable: true }\r\n ];\r\n\r\n @ViewChild('tabView') tabview: TabView;\r\n \r\n constructor(\r\n private sessionService: SessionService,\r\n private userAdminService: UserAdminService,\r\n private elementRef: ElementRef\r\n ) {}\r\n \r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.setPcpReportAttestationTabs();\r\n }\r\n\r\n public canViewTab(index: number) {\r\n const currentTab = this.tabs.find((tab: any) => tab.index === index);\r\n return currentTab ? currentTab.enable : false;\r\n }\r\n\r\n public getTabName(index: number) {\r\n const currentTab = this.tabs.find((tab: any) => tab.index === index);\r\n return currentTab ? currentTab.label : '';\r\n }\r\n\r\n public getTabIndex(name: string) {\r\n const currentTab = this.tabs.find((tab: any) => tab.label === name);\r\n return currentTab ? currentTab.index : 0;\r\n }\r\n\r\n public onTabChanged(e: any) {\r\n this.tabview.activeIndex = e.index === 1 ? 0 : 1;\r\n }\r\n\r\n public handleChange(selectedIndex:number, e:MouseEvent) {\r\n const currentIndex = this.tabview.activeIndex;\r\n e.stopPropagation();\r\n if (currentIndex == selectedIndex){\r\n return;\r\n }\r\n }\r\n\r\n private setPcpReportAttestationTabs() {\r\n const tabView = this.elementRef.nativeElement.querySelector('div.training-attestation-tabview-styles ul.p-tabview-nav');\r\n UiUtility.SetTabsWidthDynamically(tabView, 0, 250);\r\n\r\n const tabElements = tabView.querySelectorAll('li');\r\n tabElements.forEach(element => {\r\n const currentChild = element.firstChild;\r\n const tabElement = (element.querySelector(\"a\") as HTMLAnchorElement);\r\n if (tabElement) {\r\n const tabName = tabElement.innerText;\r\n const tabIndex = this.getTabIndex(tabName.trim());\r\n \r\n const newDiv = window.document.createElement(\"div\");\r\n newDiv.addEventListener('click', this.handleChange.bind(this, tabIndex), false);\r\n newDiv.style.cursor = 'pointer';\r\n newDiv.appendChild(currentChild);\r\n \r\n element.firstChild.remove();\r\n element.appendChild(newDiv);\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 {{getTabName(0)}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{getTabName(1)}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n","import { DatePipe, DOCUMENT } from '@angular/common';\r\nimport { Component, Inject, ViewChild } from '@angular/core';\r\nimport { UserProfile } from '@caloptima/authentication';\r\nimport { BusyService } from '@caloptima/portal-foundation';\r\nimport saveAs from 'file-saver';\r\nimport { ReportsMemberSearchComponent } from 'src/app/app-components/reports-member-search/reports-member-search.component';\r\nimport { CollectionService } from 'src/app/services/collection.service';\r\nimport { MemberAWPStatus } from 'src/app/services/models/awp-detail';\r\nimport { BHABAReferralAttestation } from 'src/app/services/models/bh-aba-referral-attestation';\r\nimport { ProviderDetail } from 'src/app/services/models/provider-detail';\r\nimport { ReportMemberDetails } from 'src/app/services/models/reportmemberdetails';\r\nimport { ReportType } from 'src/app/services/models/reportype';\r\nimport { WellnessDetails } from 'src/app/services/models/wellness-details';\r\nimport { ReportsService } from 'src/app/services/reports.service';\r\nimport { SessionService } from 'src/app/services/session.service';\r\n\r\n@Component({\r\n selector: 'app-attestation-bh-aba-referrals-member',\r\n templateUrl: './attestation-bh-aba-referrals-member.component.html',\r\n styleUrl: './attestation-bh-aba-referrals-member.component.scss'\r\n})\r\nexport class AttestationBhAbaReferralsMemberComponent {\r\n public userProfile: UserProfile;\r\n public members:ReportMemberDetails[] = [];\r\n public displayMembers:ReportMemberDetails[] = [];\r\n public selectedMember: ReportMemberDetails;\r\n private sortColumn: string;\r\n private sortAscending: boolean;\r\n public totalRecords: number;\r\n public attestationList: BHABAReferralAttestation[];\r\n public searchCin: string;\r\n public searchName: string;\r\n public collectionId: number;\r\n public selectedProvider: ProviderDetail;\r\n public fromProviderTab: boolean;\r\n public showAttachment: boolean;\r\n public userFullName: string;\r\n public wellnessDetails: WellnessDetails;\r\n public selectedReferral:BHABAReferralAttestation;\r\n public lastSelectedMemberCin: string;\r\n public lastMemberSearch: any;\r\n public selectedCin: ReportMemberDetails;\r\n public first: number =0;\r\n \r\n\r\n @ViewChild('memberSearch') memberSearch: ReportsMemberSearchComponent;\r\n\r\n constructor(\r\n private reportsService: ReportsService,\r\n private sessionService: SessionService,\r\n private collectionService: CollectionService,\r\n private datePipe: DatePipe,\r\n private busyService: BusyService,\r\n @Inject(DOCUMENT) private document: Document) {\r\n }\r\n\r\n ngOnInit() {\r\n this.collectionId = this.sessionService.currentPermission.providerCollectionID;\r\n this.userFullName = '';\r\n this.fromProviderTab = false;\r\n\r\n this.initialize();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n\r\n }\r\n\r\n public setProviderId(providerDetail: ProviderDetail) {\r\n this.attestationList = [];\r\n this.selectedProvider = providerDetail;\r\n this.lastMemberSearch = null;\r\n this.lastSelectedMemberCin = null;\r\n this.fromProviderTab = (providerDetail != null);\r\n this.initialize(true);\r\n }\r\n\r\n public initialize(resetComponent = false) {\r\n this.sortColumn = 'memberName';\r\n this.sortAscending = true;\r\n this.selectedCin = null;\r\n this.searchCin = '';\r\n this.searchName = '';\r\n this.selectedMember = null;\r\n this.displayMembers = [];\r\n \r\n if (resetComponent) {\r\n this.memberSearch.resetSearchFilters();\r\n }\r\n\r\n if(this.selectedProvider) {\r\n\r\n this.reportsService.getMembersForBHABAReferralAttestation(this.collectionId, this.selectedProvider.calProviderID, this.selectedProvider.taxId, ReportType.AWV).subscribe(result=>{\r\n\r\n this.members = result;\r\n\r\n this.totalRecords = this.members.length;\r\n\r\n if(this.members)\r\n this.displayMembers = this.members.slice();\r\n\r\n let param: any = {\r\n \"field\": \"memberName\",\r\n \"order\": 1\r\n }\r\n this.onSort(param)\r\n\r\n if(this.lastSelectedMemberCin) {\r\n let lastselectedMember = this.displayMembers.find(x=>x.cin == this.lastSelectedMemberCin);\r\n this.lastSelectedMemberCin= null;\r\n if(lastselectedMember)\r\n this.onMemberSelected(lastselectedMember); \r\n }\r\n });\r\n }\r\n }\r\n\r\n public sortClass(column: string): string {\r\n let cls: string;\r\n if (column == this.sortColumn) {\r\n cls = this.sortAscending ? \"fa fa-chevron-up\" : \"fa fa-chevron-down\";\r\n }\r\n else {\r\n cls = \"fa fa-chevron-up\";\r\n }\r\n return cls;\r\n }\r\n\r\n public onPage(e: any) {\r\n let s = JSON.stringify(e);\r\n }\r\n\r\n public onSort(e: any): void { \r\n this.displayMembers.sort((data1, data2) => {\r\n let value1 = data1[e.field];\r\n let value2 = data2[e.field];\r\n let result = null;\r\n\r\n if (value1 == null && value2 != null)\r\n result = -1;\r\n else if (value1 != null && value2 == null)\r\n result = 1;\r\n else if (value1 == null && value2 == null)\r\n result = 0;\r\n else if (typeof value1 === 'string' && typeof value2 === 'string')\r\n result = value1.localeCompare(value2);\r\n else\r\n result = (value1 < value2) ? -1 : (value1 > value2) ? 1 : 0;\r\n\r\n return (e.order * result);\r\n });\r\n this.sortAscending = e.order == 1;\r\n this.sortColumn = e.field;\r\n }\r\n\r\n public onMemberSelected(member: ReportMemberDetails): void {\r\n this.selectedMember = member; \r\n this.attestationList = [];\r\n \r\n this.reportsService.getBHABAReferralAttestation(null, this.selectedMember.cin, this.selectedMember.providerId).subscribe(result=>{\r\n\r\n if(!this.selectedProvider) {\r\n this.collectionService.GetProvider2(this.selectedMember.providerId).subscribe(prov=>{\r\n\r\n this.selectedProvider = new ProviderDetail();\r\n this.selectedProvider.providerID = prov.providerID.toString();\r\n this.selectedProvider.calProviderID = prov.calProviderId;\r\n this.selectedProvider.taxId = prov.providerTaxId;\r\n this.selectedProvider.name = prov.providerName;\r\n\r\n if (!this.selectedMember.providerTaxId) \r\n this.selectedMember.providerTaxId = prov.providerTaxId;\r\n\r\n this.attestationList = result; \r\n });\r\n }\r\n else {\r\n if (!this.selectedMember.providerTaxId)\r\n this.selectedMember.providerTaxId = this.selectedProvider.taxId;\r\n\r\n this.attestationList = result;\r\n }\r\n });\r\n }\r\n\r\n public get displayText(): string {\r\n if(this.selectedMember && this.selectedMember.cin) {\r\n\r\n let memeberDetail: ReportMemberDetails = this.members.find(x=> x.cin === this.selectedMember.cin);\r\n\r\n if(memeberDetail) {\r\n let s = memeberDetail.memberName;\r\n return s;\r\n }\r\n else {\r\n return \"\"\r\n }\r\n }\r\n else {\r\n return \"\";\r\n }\r\n }\r\n\r\n public get enableBuildReport() : boolean {\r\n\r\n return this.selectedMember != null;\r\n }\r\n\r\n private saveAsFile(buffer: any, fileName: string, fileType: string): void {\r\n const data: Blob = new Blob([buffer], { type: fileType });\r\n saveAs(data, fileName);\r\n }\r\n\r\n public onMemberSearch(search) : void {\r\n\r\n this.lastMemberSearch = search;\r\n this.selectedMember = null;\r\n this.attestationList = [];\r\n\r\n if(this.fromProviderTab) {\r\n if(search.memberId === '') {\r\n this.displayMembers = this.members.slice();\r\n this.first = 0;\r\n this.selectedCin = null;\r\n\r\n let param: any = {\r\n \"field\": \"memberName\",\r\n \"order\": 1\r\n }\r\n this.onSort(param) \r\n }\r\n else {\r\n\r\n this.displayMembers.splice(0);\r\n\r\n var items = this.members.find(x=>\r\n x.cin == search.memberId || \r\n x.medsId == search.memberId || \r\n x.mbi == search.memberId\r\n );\r\n\r\n this.displayMembers.push(items);\r\n this.selectedCin = null;\r\n this.first = 0;\r\n } \r\n }\r\n else {\r\n\r\n if(search.memberId === '')\r\n {\r\n // Do nothing.\r\n }\r\n else {\r\n this.reportsService.searchMembersForBHABAReferralAttestation(ReportType.AWV, this.collectionId, search.memberName, search.memberId).subscribe(result=>{\r\n\r\n this.members = result;\r\n \r\n this.totalRecords = this.members.length;\r\n \r\n if(this.members)\r\n this.displayMembers = this.members.slice();\r\n \r\n let param: any = {\r\n \"field\": \"memberName\",\r\n \"order\": 1\r\n }\r\n this.onSort(param)\r\n \r\n if(this.lastSelectedMemberCin) {\r\n let lastselectedMember = this.displayMembers.find(x=>x.cin == this.lastSelectedMemberCin);\r\n this.lastSelectedMemberCin = null;\r\n if(lastselectedMember)\r\n this.onMemberSelected(lastselectedMember); \r\n }\r\n });\r\n }\r\n }\r\n } \r\n\r\n public showDialog(referral:BHABAReferralAttestation) : void {\r\n\r\n this.selectedReferral = referral;\r\n this.showAttachment = true;\r\n }\r\n\r\n public onCancel() {\r\n this.showAttachment = false;\r\n }\r\n\r\n public onSubmit() {\r\n this.lastSelectedMemberCin = this.selectedMember.cin; \r\n if(this.fromProviderTab) {\r\n var temp = this.selectedCin;\r\n this.initialize(true);\r\n this.selectedCin = temp;\r\n }\r\n else {\r\n this.onMemberSearch(this.lastMemberSearch);\r\n }\r\n\r\n this.showAttachment = false;\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Name
\r\n Member ID
\r\n Provider ID
\r\n Status
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{row.memberName}}
\r\n \r\n \r\n
{{row.cin}}
\r\n \r\n \r\n
{{row.providerId}}
\r\n \r\n \r\n
{{row.status}}
\r\n
{{row.status}}
\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 Referral Id\r\n Status\r\n Action\r\n \r\n \r\n \r\n \r\n
{{row.referralId}}
\r\n \r\n
Attested
\r\n
{{row.status}}
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n","export class BHABAReferralAttestation {\r\n public id: number;\r\n public calProviderId: string;\r\n public memberCIN: string;\r\n public referralId: string;\r\n public startDate: Date;\r\n public endDate: Date;\r\n public servicesAuthorized: number;\r\n public assignedUnits: number;\r\n public assessmentGoals: number;\r\n public assessmentGoalsCompleted: number;\r\n public comment: string;\r\n public reason: string;\r\n public assessmentGoalsRate: number;\r\n public attestationBy: string;\r\n public attestationDate: Date;\r\n public createdBy: string;\r\n public created: Date;\r\n public modifiedBy: string;\r\n public modified: Date;\r\n public memberFirstName: string;\r\n public memberLastName: string;\r\n public status: string;\r\n\r\n}","import { BHABAReferralAttestation } from \"./bh-aba-referral-attestation\";\r\n\r\nexport class BHABAReferral {\r\n public autH_SVC_IDN: number;\r\n public procedurE_CD: string;\r\n public procedurE_DESC: string;\r\n public assigneD_UNITS: number;\r\n public starT_DATE: Date;\r\n public enD_DATE: Date;\r\n}\r\n\r\nexport class BHABAReferral2 extends BHABAReferral {\r\n public attestationId: number;\r\n public attestationServiceId: number;\r\n public directServiceCompleted: number;\r\n public directServicePercentage: number;\r\n}\r\n\r\nexport class BHABAReferralAttestationWithServices extends BHABAReferralAttestation {\r\n public services: BHABAReferral2[] = []\r\n}","export class ResourceRequest {\r\n \r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { OAuthService } from \"angular-oauth2-oidc\";\r\nimport { PortalConfig } from \"../portal-config\";\r\nimport { AppConfig, HttpResponseHelper } from \"@caloptima/portal-foundation\";\r\nimport { Constants } from \"../app.constants\";\r\nimport { SessionService } from \"./session.service\";\r\nimport { ResourceRequest } from \"./models/requests/resource-request\";\r\nimport { catchError, map, Observable } from \"rxjs\";\r\nimport { HttpHeaders } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { BHABAReferralAttestationPortalResources } from \"./models/bh-aba-referral-attestation-portal-resources\";\r\n\r\nconst httpOptions = {\r\n headers: new HttpHeaders({ 'Content-Type': 'application/json' }),\r\n withCredentials: true\r\n };\r\n \r\n @Injectable({\r\n providedIn: 'root'\r\n })\r\n\r\n export class ResourcesService {\r\n \r\n private currentUser: string;\r\n private baseProviderReportServiceUrl: string;\r\n private bhabareferralinstructionUrl: string;\r\n\r\n constructor(\r\n private oAuthService: OAuthService,\r\n private http: HttpClient,\r\n private portalConfig: PortalConfig,\r\n private appConfig: AppConfig,\r\n private constants:Constants,\r\n private sessionService: SessionService) {\r\n \r\n const claims = this.oAuthService.getIdentityClaims();\r\n this.currentUser = claims['sub'];\r\n this.baseProviderReportServiceUrl = appConfig.getConfig('BaseProviderServicesApiUrl');\r\n if (this.baseProviderReportServiceUrl == null) {\r\n const config$ = appConfig.subscribe(() => {\r\n this.baseProviderReportServiceUrl = appConfig.getConfig('BaseProviderServicesApiUrl');\r\n this.checkUrls();\r\n config$.unsubscribe();\r\n });\r\n }\r\n }\r\n\r\n private checkUrls(): void {\r\n const baseUrl = this.baseProviderReportServiceUrl + 'api/resource/';\r\n if(this.bhabareferralinstructionUrl == null) {\r\n this.bhabareferralinstructionUrl = baseUrl + 'bhabareferralinstruction';\r\n }\r\n }\r\n\r\n public getBHABAReferralAttestationResources():Observable { \r\n \r\n this.checkUrls();\r\n \r\n try{\r\n const request = new ResourceRequest();\r\n \r\n return this.http\r\n .post(this.bhabareferralinstructionUrl, request, httpOptions)\r\n .pipe(\r\n map((result) => { \r\n console.log(result);\r\n return result;\r\n }),\r\n catchError(error => HttpResponseHelper.handleError(error))\r\n );\r\n \r\n }\r\n catch(ex) {\r\n \r\n }\r\n }\r\n }","import { CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Component } from '@angular/core';\nimport { BaseIcon } from 'primeng/baseicon';\nlet MinusIcon = /*#__PURE__*/(() => {\n class MinusIcon extends BaseIcon {\n static ɵfac = /* @__PURE__ */(() => {\n let ɵMinusIcon_BaseFactory;\n return function MinusIcon_Factory(t) {\n return (ɵMinusIcon_BaseFactory || (ɵMinusIcon_BaseFactory = i0.ɵɵgetInheritedFactory(MinusIcon)))(t || MinusIcon);\n };\n })();\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MinusIcon,\n selectors: [[\"MinusIcon\"]],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 2,\n vars: 5,\n consts: [[\"width\", \"14\", \"height\", \"14\", \"viewBox\", \"0 0 14 14\", \"fill\", \"none\", \"xmlns\", \"http://www.w3.org/2000/svg\"], [\"d\", \"M13.2222 7.77778H0.777778C0.571498 7.77778 0.373667 7.69584 0.227806 7.54998C0.0819442 7.40412 0 7.20629 0 7.00001C0 6.79373 0.0819442 6.5959 0.227806 6.45003C0.373667 6.30417 0.571498 6.22223 0.777778 6.22223H13.2222C13.4285 6.22223 13.6263 6.30417 13.7722 6.45003C13.9181 6.5959 14 6.79373 14 7.00001C14 7.20629 13.9181 7.40412 13.7722 7.54998C13.6263 7.69584 13.4285 7.77778 13.2222 7.77778Z\", \"fill\", \"currentColor\"]],\n template: function MinusIcon_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0);\n i0.ɵɵelement(1, \"path\", 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵclassMap(ctx.getClassNames());\n i0.ɵɵattribute(\"aria-label\", ctx.ariaLabel)(\"aria-hidden\", ctx.ariaHidden)(\"role\", ctx.role);\n }\n },\n dependencies: [CommonModule],\n encapsulation: 2\n });\n }\n return MinusIcon;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MinusIcon };\n","import { trigger, state, style, transition, animate } from '@angular/animations';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, ContentChild, ContentChildren, NgModule } from '@angular/core';\nimport { Footer, PrimeTemplate, SharedModule } from 'primeng/api';\nimport { MinusIcon } from 'primeng/icons/minus';\nimport { PlusIcon } from 'primeng/icons/plus';\nimport * as i2 from 'primeng/ripple';\nimport { RippleModule } from 'primeng/ripple';\nimport { UniqueComponentId } from 'primeng/utils';\n\n/**\n * Panel is a container with the optional content toggle feature.\n * @group Components\n */\nfunction Panel_div_1_span_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 10);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext(2);\n i0.ɵɵattribute(\"id\", ctx_r3.id + \"_header\");\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r3.header);\n }\n}\nfunction Panel_div_1_ng_container_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\nfunction Panel_div_1_5_ng_template_0_Template(rf, ctx) {}\nfunction Panel_div_1_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, Panel_div_1_5_ng_template_0_Template, 0, 0, \"ng-template\");\n }\n}\nfunction Panel_div_1_button_6_ng_container_1_ng_container_1_span_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 16);\n }\n if (rf & 2) {\n const ctx_r12 = i0.ɵɵnextContext(5);\n i0.ɵɵclassMap(ctx_r12.expandIcon);\n i0.ɵɵproperty(\"ngClass\", ctx_r12.iconClass);\n }\n}\nfunction Panel_div_1_button_6_ng_container_1_ng_container_1_MinusIcon_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"MinusIcon\", 17);\n }\n if (rf & 2) {\n const ctx_r13 = i0.ɵɵnextContext(5);\n i0.ɵɵproperty(\"styleClass\", ctx_r13.iconClass);\n }\n}\nfunction Panel_div_1_button_6_ng_container_1_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Panel_div_1_button_6_ng_container_1_ng_container_1_span_1_Template, 1, 3, \"span\", 14)(2, Panel_div_1_button_6_ng_container_1_ng_container_1_MinusIcon_2_Template, 1, 1, \"MinusIcon\", 15);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r10 = i0.ɵɵnextContext(4);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r10.expandIcon);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r10.expandIcon);\n }\n}\nfunction Panel_div_1_button_6_ng_container_1_ng_container_2_span_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 16);\n }\n if (rf & 2) {\n const ctx_r14 = i0.ɵɵnextContext(5);\n i0.ɵɵclassMap(ctx_r14.collapseIcon);\n i0.ɵɵproperty(\"ngClass\", ctx_r14.iconClass);\n }\n}\nfunction Panel_div_1_button_6_ng_container_1_ng_container_2_PlusIcon_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"PlusIcon\", 17);\n }\n if (rf & 2) {\n const ctx_r15 = i0.ɵɵnextContext(5);\n i0.ɵɵproperty(\"styleClass\", ctx_r15.iconClass);\n }\n}\nfunction Panel_div_1_button_6_ng_container_1_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Panel_div_1_button_6_ng_container_1_ng_container_2_span_1_Template, 1, 3, \"span\", 14)(2, Panel_div_1_button_6_ng_container_1_ng_container_2_PlusIcon_2_Template, 1, 1, \"PlusIcon\", 15);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r11 = i0.ɵɵnextContext(4);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r11.collapseIcon);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r11.collapseIcon);\n }\n}\nfunction Panel_div_1_button_6_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Panel_div_1_button_6_ng_container_1_ng_container_1_Template, 3, 2, \"ng-container\", 12)(2, Panel_div_1_button_6_ng_container_1_ng_container_2_Template, 3, 2, \"ng-container\", 12);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r8 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r8.collapsed);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r8.collapsed);\n }\n}\nfunction Panel_div_1_button_6_2_ng_template_0_Template(rf, ctx) {}\nfunction Panel_div_1_button_6_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, Panel_div_1_button_6_2_ng_template_0_Template, 0, 0, \"ng-template\");\n }\n}\nconst _c0 = a0 => ({\n $implicit: a0\n});\nfunction Panel_div_1_button_6_Template(rf, ctx) {\n if (rf & 1) {\n const _r18 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 11);\n i0.ɵɵlistener(\"click\", function Panel_div_1_button_6_Template_button_click_0_listener($event) {\n i0.ɵɵrestoreView(_r18);\n const ctx_r17 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r17.onIconClick($event));\n })(\"keydown\", function Panel_div_1_button_6_Template_button_keydown_0_listener($event) {\n i0.ɵɵrestoreView(_r18);\n const ctx_r19 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r19.onKeyDown($event));\n });\n i0.ɵɵtemplate(1, Panel_div_1_button_6_ng_container_1_Template, 3, 2, \"ng-container\", 12)(2, Panel_div_1_button_6_2_Template, 1, 0, null, 13);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r6 = i0.ɵɵnextContext(2);\n i0.ɵɵattribute(\"id\", ctx_r6.id + \"_header\")(\"aria-label\", ctx_r6.buttonAriaLabel)(\"aria-controls\", ctx_r6.id + \"_content\")(\"aria-expanded\", !ctx_r6.collapsed);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r6.headerIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r6.headerIconTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(7, _c0, ctx_r6.collapsed));\n }\n}\nconst _c1 = (a0, a1, a2) => ({\n \"p-panel-icons-start\": a0,\n \"p-panel-icons-end\": a1,\n \"p-panel-icons-center\": a2\n});\nfunction Panel_div_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r21 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 6);\n i0.ɵɵlistener(\"click\", function Panel_div_1_Template_div_click_0_listener($event) {\n i0.ɵɵrestoreView(_r21);\n const ctx_r20 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r20.onHeaderClick($event));\n });\n i0.ɵɵtemplate(1, Panel_div_1_span_1_Template, 2, 2, \"span\", 7);\n i0.ɵɵprojection(2, 1);\n i0.ɵɵtemplate(3, Panel_div_1_ng_container_3_Template, 1, 0, \"ng-container\", 4);\n i0.ɵɵelementStart(4, \"div\", 8);\n i0.ɵɵtemplate(5, Panel_div_1_5_Template, 1, 0, null, 4)(6, Panel_div_1_button_6_Template, 3, 9, \"button\", 9);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵattribute(\"id\", ctx_r0.id + \"-titlebar\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.header);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.headerTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction3(6, _c1, ctx_r0.iconPos === \"start\", ctx_r0.iconPos === \"end\", ctx_r0.iconPos === \"center\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.iconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.toggleable);\n }\n}\nfunction Panel_ng_container_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\nfunction Panel_div_6_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\nfunction Panel_div_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 18);\n i0.ɵɵprojection(1, 2);\n i0.ɵɵtemplate(2, Panel_div_6_ng_container_2_Template, 1, 0, \"ng-container\", 4);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.footerTemplate);\n }\n}\nconst _c2 = [\"*\", [[\"p-header\"]], [[\"p-footer\"]]];\nconst _c3 = (a1, a2) => ({\n \"p-panel p-component\": true,\n \"p-panel-toggleable\": a1,\n \"p-panel-expanded\": a2\n});\nconst _c4 = a0 => ({\n transitionParams: a0,\n height: \"0\",\n opacity: \"0\"\n});\nconst _c5 = a1 => ({\n value: \"hidden\",\n params: a1\n});\nconst _c6 = a0 => ({\n transitionParams: a0,\n height: \"*\",\n opacity: \"1\"\n});\nconst _c7 = a1 => ({\n value: \"visible\",\n params: a1\n});\nconst _c8 = [\"*\", \"p-header\", \"p-footer\"];\nlet Panel = /*#__PURE__*/(() => {\n class Panel {\n el;\n /**\n * Defines if content of panel can be expanded and collapsed.\n * @group Props\n */\n toggleable;\n /**\n * Header text of the panel.\n * @group Props\n */\n header;\n /**\n * Defines the initial state of panel content, supports one or two-way binding as well.\n * @group Props\n */\n collapsed;\n /**\n * Inline style of the component.\n * @group Props\n */\n style;\n /**\n * Style class of the component.\n * @group Props\n */\n styleClass;\n /**\n * Position of the icons.\n * @group Props\n */\n iconPos = 'end';\n /**\n * Expand icon of the toggle button.\n * @group Props\n * @deprecated since v15.4.2, use `headericons` template instead.\n */\n expandIcon;\n /**\n * Collapse icon of the toggle button.\n * @group Props\n * @deprecated since v15.4.2, use `headericons` template instead.\n */\n collapseIcon;\n /**\n * Specifies if header of panel cannot be displayed.\n * @group Props\n * @deprecated since v15.4.2, use `headericons` template instead.\n */\n showHeader = true;\n /**\n * Specifies the toggler element to toggle the panel content.\n * @group Props\n */\n toggler = 'icon';\n /**\n * Transition options of the animation.\n * @group Props\n */\n transitionOptions = '400ms cubic-bezier(0.86, 0, 0.07, 1)';\n /**\n * Emitted when the collapsed changes.\n * @param {boolean} value - New Value.\n * @group Emits\n */\n collapsedChange = new EventEmitter();\n /**\n * Callback to invoke before panel toggle.\n * @param {PanelBeforeToggleEvent} event - Custom panel toggle event\n * @group Emits\n */\n onBeforeToggle = new EventEmitter();\n /**\n * Callback to invoke after panel toggle.\n * @param {PanelAfterToggleEvent} event - Custom panel toggle event\n * @group Emits\n */\n onAfterToggle = new EventEmitter();\n footerFacet;\n templates;\n iconTemplate;\n animating;\n headerTemplate;\n contentTemplate;\n footerTemplate;\n headerIconTemplate;\n id = UniqueComponentId();\n get buttonAriaLabel() {\n return this.header;\n }\n constructor(el) {\n this.el = el;\n }\n ngAfterContentInit() {\n this.templates.forEach(item => {\n switch (item.getType()) {\n case 'header':\n this.headerTemplate = item.template;\n break;\n case 'content':\n this.contentTemplate = item.template;\n break;\n case 'footer':\n this.footerTemplate = item.template;\n break;\n case 'icons':\n this.iconTemplate = item.template;\n break;\n case 'headericons':\n this.headerIconTemplate = item.template;\n break;\n default:\n this.contentTemplate = item.template;\n break;\n }\n });\n }\n onHeaderClick(event) {\n if (this.toggler === 'header') {\n this.toggle(event);\n }\n }\n onIconClick(event) {\n if (this.toggler === 'icon') {\n this.toggle(event);\n }\n }\n toggle(event) {\n if (this.animating) {\n return false;\n }\n this.animating = true;\n this.onBeforeToggle.emit({\n originalEvent: event,\n collapsed: this.collapsed\n });\n if (this.toggleable) {\n if (this.collapsed) this.expand();else this.collapse();\n }\n event.preventDefault();\n }\n expand() {\n this.collapsed = false;\n this.collapsedChange.emit(this.collapsed);\n }\n collapse() {\n this.collapsed = true;\n this.collapsedChange.emit(this.collapsed);\n }\n getBlockableElement() {\n return this.el.nativeElement.children[0];\n }\n onKeyDown(event) {\n if (event.code === 'Enter' || event.code === 'Space') {\n this.toggle(event);\n event.preventDefault();\n }\n }\n onToggleDone(event) {\n this.animating = false;\n this.onAfterToggle.emit({\n originalEvent: event,\n collapsed: this.collapsed\n });\n }\n static ɵfac = function Panel_Factory(t) {\n return new (t || Panel)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: Panel,\n selectors: [[\"p-panel\"]],\n contentQueries: function Panel_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, Footer, 5);\n i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.footerFacet = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);\n }\n },\n hostAttrs: [1, \"p-element\"],\n inputs: {\n toggleable: \"toggleable\",\n header: \"header\",\n collapsed: \"collapsed\",\n style: \"style\",\n styleClass: \"styleClass\",\n iconPos: \"iconPos\",\n expandIcon: \"expandIcon\",\n collapseIcon: \"collapseIcon\",\n showHeader: \"showHeader\",\n toggler: \"toggler\",\n transitionOptions: \"transitionOptions\"\n },\n outputs: {\n collapsedChange: \"collapsedChange\",\n onBeforeToggle: \"onBeforeToggle\",\n onAfterToggle: \"onAfterToggle\"\n },\n ngContentSelectors: _c8,\n decls: 7,\n vars: 25,\n consts: [[3, \"ngClass\", \"ngStyle\"], [\"class\", \"p-panel-header\", 3, \"click\", 4, \"ngIf\"], [\"role\", \"region\", 1, \"p-toggleable-content\", 3, \"id\"], [1, \"p-panel-content\"], [4, \"ngTemplateOutlet\"], [\"class\", \"p-panel-footer\", 4, \"ngIf\"], [1, \"p-panel-header\", 3, \"click\"], [\"class\", \"p-panel-title\", 4, \"ngIf\"], [1, \"p-panel-icons\", 3, \"ngClass\"], [\"pRipple\", \"\", \"type\", \"button\", \"role\", \"button\", \"class\", \"p-panel-header-icon p-panel-toggler p-link\", 3, \"click\", \"keydown\", 4, \"ngIf\"], [1, \"p-panel-title\"], [\"pRipple\", \"\", \"type\", \"button\", \"role\", \"button\", 1, \"p-panel-header-icon\", \"p-panel-toggler\", \"p-link\", 3, \"click\", \"keydown\"], [4, \"ngIf\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [3, \"class\", \"ngClass\", 4, \"ngIf\"], [3, \"styleClass\", 4, \"ngIf\"], [3, \"ngClass\"], [3, \"styleClass\"], [1, \"p-panel-footer\"]],\n template: function Panel_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c2);\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵtemplate(1, Panel_div_1_Template, 7, 10, \"div\", 1);\n i0.ɵɵelementStart(2, \"div\", 2);\n i0.ɵɵlistener(\"@panelContent.done\", function Panel_Template_div_animation_panelContent_done_2_listener($event) {\n return ctx.onToggleDone($event);\n });\n i0.ɵɵelementStart(3, \"div\", 3);\n i0.ɵɵprojection(4);\n i0.ɵɵtemplate(5, Panel_ng_container_5_Template, 1, 0, \"ng-container\", 4);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(6, Panel_div_6_Template, 3, 1, \"div\", 5);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵclassMap(ctx.styleClass);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction2(14, _c3, ctx.toggleable, !ctx.collapsed && ctx.toggleable))(\"ngStyle\", ctx.style);\n i0.ɵɵattribute(\"id\", ctx.id)(\"data-pc-name\", \"panel\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.showHeader);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"id\", ctx.id + \"_content\")(\"@panelContent\", ctx.collapsed ? i0.ɵɵpureFunction1(19, _c5, i0.ɵɵpureFunction1(17, _c4, ctx.animating ? ctx.transitionOptions : \"0ms\")) : i0.ɵɵpureFunction1(23, _c7, i0.ɵɵpureFunction1(21, _c6, ctx.animating ? ctx.transitionOptions : \"0ms\")));\n i0.ɵɵattribute(\"aria-labelledby\", ctx.id + \"_header\")(\"aria-hidden\", ctx.collapsed)(\"tabindex\", ctx.collapsed ? \"-1\" : undefined);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx.contentTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.footerFacet || ctx.footerTemplate);\n }\n },\n dependencies: () => [i1.NgClass, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle, i2.Ripple, PlusIcon, MinusIcon],\n styles: [\"@layer primeng{.p-panel-header{display:flex;align-items:center}.p-panel-title{line-height:1;order:1}.p-panel-header-icon{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;text-decoration:none;overflow:hidden;position:relative}.p-panel-toggleable.p-panel-expanded>.p-toggleable-content:not(.ng-animating){overflow:visible}.p-panel-toggleable .p-toggleable-content{overflow:hidden}}\\n\"],\n encapsulation: 2,\n data: {\n animation: [trigger('panelContent', [state('hidden', style({\n height: '0'\n })), state('void', style({\n height: '{{height}}'\n }), {\n params: {\n height: '0'\n }\n }), state('visible', style({\n height: '*'\n })), transition('visible <=> hidden', [animate('{{transitionParams}}')]), transition('void => hidden', animate('{{transitionParams}}')), transition('void => visible', animate('{{transitionParams}}'))])]\n },\n changeDetection: 0\n });\n }\n return Panel;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet PanelModule = /*#__PURE__*/(() => {\n class PanelModule {\n static ɵfac = function PanelModule_Factory(t) {\n return new (t || PanelModule)();\n };\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: PanelModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule, SharedModule, RippleModule, PlusIcon, MinusIcon, SharedModule]\n });\n }\n return PanelModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Panel, PanelModule };\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { BHABAReferral2, BHABAReferralAttestationWithServices } from 'src/app/services/models/bh-aba-referral';\r\nimport { BHABAReferralAttestation } from 'src/app/services/models/bh-aba-referral-attestation';\r\nimport { ReportsService } from 'src/app/services/reports.service';\r\nimport { SessionService } from 'src/app/services/session.service';\r\nimport { InstructionItem } from './instruction-item';\r\nimport { ResourcesService } from 'src/app/services/resources.service';\r\nimport { PortalResource } from 'src/app/services/models/portal-resource';\r\nimport { forkJoin } from 'rxjs';\r\nimport { BHABAReferralAttestationPortalResources } from 'src/app/services/models/bh-aba-referral-attestation-portal-resources';\r\nimport { SelectItem } from 'primeng/api';\r\n\r\n@Component({\r\n selector: 'app-attestation-bh-aba-referrals-dialog',\r\n templateUrl: './attestation-bh-aba-referrals-dialog.component.html',\r\n styleUrl: './attestation-bh-aba-referrals-dialog.component.scss'\r\n})\r\nexport class AttestationBhAbaReferralsDialogComponent {\r\n\r\n @Input() bhabareferral: BHABAReferralAttestation;\r\n @Output() cancelAttestation = new EventEmitter();\r\n @Output() submitAttestation = new EventEmitter();\r\n public comment: string = \"\";\r\n public bhReferral2: BHABAReferral2[];\r\n public resources: BHABAReferralAttestationPortalResources; \r\n public reasonList: SelectItem[] = [];\r\n public reasonRequired: boolean = false;\r\n public hasErrorDateofService: boolean = false;\r\n public hasErrorReason: boolean = false;\r\n public hasErrorProposedGoals: boolean = false;\r\n public hasErrorCompletedGoals: boolean = false;\r\n public errorMessage: string = 'no';\r\n public numberPattern: string =\"^[0-9]{1,7}$\";\r\n\r\n constructor(private reportService: ReportsService, private resourceService: ResourcesService, private sessionService: SessionService){\r\n \r\n }\r\n\r\n public ngOnInit(){\r\n\r\n this.reasonList.push(\r\n { label: 'Family Request for Reduced Hours or Service Pause', value: 'Family Request for Reduced Hours or Service Pause' },\r\n { label: 'Agency Staffing Issues', value: 'Agency Staffing Issues' },\r\n { label: 'Staff Cancellations', value: 'Staff Cancellations' },\r\n { label: 'Service Termination During Authorization Period', value: 'Service Termination During Authorization Period' },\r\n { label: 'Mid-Authorization Increase Request (Unable to Accommodate)', value: 'Mid-Authorization Increase Request (Unable to Accommodate)' },\r\n { label: 'Client Absences or Frequent Cancellations', value: 'Client Absences or Frequent Cancellations' },\r\n { label: 'Unforeseen Circumstances', value: 'Unforeseen Circumstances' },\r\n { label: 'Select One', value: null }\r\n ) \r\n\r\n if(this.bhabareferral.assessmentGoals && this.bhabareferral.assessmentGoalsCompleted)\r\n this.bhabareferral.assessmentGoalsRate = isNaN(this.bhabareferral.assessmentGoals) || isNaN(this.bhabareferral.assessmentGoalsCompleted) ? 0 : Math.round((this.bhabareferral.assessmentGoalsCompleted / this.bhabareferral.assessmentGoals ) * 100);\r\n else\r\n this.bhabareferral.assessmentGoalsRate = 0;\r\n\r\n forkJoin([\r\n this.resourceService.getBHABAReferralAttestationResources(), \r\n this.reportService.getBHABAReferrals2(this.bhabareferral.referralId, this.bhabareferral.memberCIN, this.bhabareferral.calProviderId)\r\n ]).subscribe(\r\n (result)=>{\r\n if(result && result.length > 1) {\r\n this.resources = result[0];\r\n this.bhReferral2 = result[1];\r\n \r\n this.resources.instruction2.forEach(x=>{\r\n if(x.resourceDesc.trim().startsWith(\"-\")) {\r\n x.resourceDesc = \"\\u00A0\\u00A0\\u00A0\\u00A0\" + x.resourceDesc;\r\n }\r\n if(x.resourceDesc.trim().startsWith(\"--\")) {\r\n x.resourceDesc = \"\\u00A0\\u00A0\\u00A0\\u00A0\\u00A0\\u00A0\\u00A0\\u00A0\" + x.resourceDesc;\r\n } \r\n })\r\n\r\n this.bhReferral2.forEach(x=>{\r\n x.directServicePercentage = Math.round((x.directServiceCompleted / x.assigneD_UNITS ) * 100);\r\n }); \r\n \r\n this.updateReasonRequired();\r\n }\r\n });\r\n }\r\n\r\n public get display():boolean {\r\n return true;\r\n }\r\n\r\n public set display(value:boolean) {\r\n this.onCancel();\r\n }\r\n \r\n public get caption(): string {\r\n return \"BH ABA P4V Attestation\";\r\n }\r\n\r\n public onCancel() {\r\n this.cancelAttestation.emit();\r\n }\r\n\r\n public get tooltip1(): string {\r\n return 'Indicate rationale if authorized hours for either direct service (i.e., H2019 or H2014) fell below 80% utilization';\r\n }\r\n\r\n public performValidation(): void{\r\n\r\n this.hasErrorDateofService = false;\r\n this.hasErrorReason = false;\r\n this.hasErrorProposedGoals = false;\r\n this.hasErrorCompletedGoals = false;\r\n\r\n this.errorMessage = '';\r\n\r\n this.bhReferral2.forEach(x=>{\r\n if(x.directServiceCompleted == null || x.directServiceCompleted.toString().trim() == '') {\r\n this.hasErrorDateofService = true;\r\n this.errorMessage = 'Date of serives completed required.'; \r\n }\r\n });\r\n\r\n if(this.reasonRequired) {\r\n if(this.bhabareferral.reason && this.bhabareferral.reason.trim() == 'Unforeseen Circumstances' && (!this.bhabareferral.comment || this.bhabareferral.comment.trim() == '')){\r\n this.hasErrorReason = true;\r\n this.errorMessage = 'Unforseen Circumstances reason required explaination.';\r\n }\r\n }\r\n\r\n if(this.bhabareferral.assessmentGoals == null || this.bhabareferral.assessmentGoals.toString() == ''){\r\n this.hasErrorProposedGoals = true;\r\n this.errorMessage = '# of Proposed Goals required.';\r\n }\r\n\r\n if(this.bhabareferral.assessmentGoalsCompleted == null || this.bhabareferral.assessmentGoalsCompleted.toString() == '') {\r\n this.hasErrorCompletedGoals = true;\r\n this.errorMessage = '# of Advanced Goals.';\r\n }\r\n }\r\n\r\n public onAttest() {\r\n \r\n this.performValidation();\r\n if(this.hasErrorDateofService || this.hasErrorReason || this.hasErrorProposedGoals || this.hasErrorCompletedGoals) {\r\n return;\r\n }\r\n\r\n\r\n let data:BHABAReferralAttestationWithServices = new BHABAReferralAttestationWithServices();\r\n data.calProviderId = this.bhabareferral.calProviderId;\r\n data.memberCIN = this.bhabareferral.memberCIN;\r\n data.referralId = this.bhabareferral.referralId;\r\n data.assessmentGoals = this.bhabareferral.assessmentGoals;\r\n data.assessmentGoalsCompleted = this.bhabareferral.assessmentGoalsCompleted;\r\n data.assessmentGoalsRate = this.bhabareferral.assessmentGoalsRate;\r\n data.reason = this.bhabareferral.reason;\r\n data.comment = this.bhabareferral.comment;\r\n data.attestationBy = this.sessionService.currentPermission.secureAuthUserName;\r\n data.services = this.bhReferral2;\r\n\r\n this.reportService.ApplyBHABAReferralAttestation(data).subscribe(x=>{\r\n this.submitAttestation.emit();\r\n }); \r\n }\r\n\r\n public onDirectServiceCompleted(item: BHABAReferral2) {\r\n item.directServiceCompleted = Math.round(item.directServiceCompleted)\r\n item.directServicePercentage = Math.round((item.directServiceCompleted/item.assigneD_UNITS)*100);\r\n this.updateReasonRequired();\r\n }\r\n\r\n public updateAssessmentRate() {\r\n if(this.bhabareferral.assessmentGoalsCompleted && this.bhabareferral.assessmentGoals) {\r\n this.bhabareferral.assessmentGoalsCompleted = Math.round(this.bhabareferral.assessmentGoalsCompleted);\r\n this.bhabareferral.assessmentGoals = Math.round(this.bhabareferral.assessmentGoals);\r\n this.bhabareferral.assessmentGoalsRate = Math.round((this.bhabareferral.assessmentGoalsCompleted/this.bhabareferral.assessmentGoals)*100);\r\n }\r\n else {\r\n this.bhabareferral.assessmentGoalsRate = 0;\r\n }\r\n }\r\n\r\n public updateReasonRequired() {\r\n this.reasonRequired = false;\r\n\r\n if(this.bhReferral2) {\r\n var item = this.bhReferral2.find(x=> x.directServicePercentage < 80)\r\n if(item)\r\n this.reasonRequired = true;\r\n }\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n Member Details\r\n
\r\n
\r\n
\r\n
Member name
\r\n
Member ID
\r\n
Referral ID
\r\n
Authorization Period
\r\n
\r\n
\r\n
{{bhabareferral.memberFirstName}} {{bhabareferral.memberLastName}}
\r\n
{{bhabareferral.memberCIN}}
\r\n
{{bhabareferral.referralId}}
\r\n
{{bhabareferral.startDate}} - {{bhabareferral.endDate}}
\r\n
\r\n
\r\n
\r\n Direct Services Attestation\r\n
\r\n
\r\n
\r\n
\r\n Services\r\n
\r\n
\r\n Direct Services Authorized (Units)\r\n
\r\n
\r\n Direct Services Completed (Units)\r\n
\r\n
\r\n % of Direct Services Completed\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 {{inst.resourceDesc}}\r\n
\r\n
\r\n {{inst.resourceValue}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Reason \r\n \r\n \r\n
\r\n
\r\n
\r\n Select the reason\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n Treatment Goal Advancement Attestation\r\n
\r\n
\r\n
\r\n
# of Proposed Goals
\r\n
# of Advanced Goals
\r\n
Treatment Progress Rate
\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 {{inst.resourceDesc}}\r\n
\r\n
\r\n {{inst.resourceValue}}\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","import { Component, ViewChild } from '@angular/core';\r\nimport { ReportsProviderSearchComponent } from 'src/app/app-components/reports-provider-search/reports-provider-search.component';\r\nimport { ProviderDetail } from 'src/app/services/models/provider-detail';\r\nimport { ReportsService } from 'src/app/services/reports.service';\r\nimport { SessionService } from 'src/app/services/session.service';\r\nimport { UiUtility } from 'src/app/utils/ui-utility';\r\nimport { AttestationBhAbaReferralsMemberComponent } from '../attestation-bh-aba-referrals-member/attestation-bh-aba-referrals-member.component';\r\nimport { ReportType } from 'src/app/services/models/reportype';\r\n\r\n@Component({\r\n selector: 'app-attestation-bh-aba-referrals-provider',\r\n templateUrl: './attestation-bh-aba-referrals-provider.component.html',\r\n styleUrl: './attestation-bh-aba-referrals-provider.component.scss'\r\n})\r\nexport class AttestationBhAbaReferralsProviderComponent {\r\n public providers: ProviderDetail[] = [];\r\n public displayedProviders: ProviderDetail[] = [];\r\n public selectedProvider: ProviderDetail;\r\n public totalRecords: number;\r\n public rowsPerPage: number = 10;\r\n public pageNumber: number = 1;\r\n public selectedCalProviderID: string;\r\n public animationState: string = '';\r\n public displayMembers = false;\r\n\r\n private sortColumn: string;\r\n private sortAscending: boolean;\r\n\r\n public columns: any = [\r\n { field: '', header: '', width: '5%', classHeader: 'provider-reports-header', classContent: 'provider-reports-content-alt1', sort: false },\r\n { field: 'name', header: 'Name', width: '40%', classHeader: 'provider-reports-header', classContent: 'provider-reports-content', sort: true },\r\n { field: 'taxId', header: 'TIN', width: '25%', classHeader: 'provider-reports-header-alt1', classContent: 'provider-reports-content-alt1', sort: true },\r\n { field: 'calProviderID', header: 'Provider ID', width: '25%', classHeader: 'provider-reports-header-alt1', classContent: 'provider-reports-content-alt1', sort: true }\r\n ];\r\n\r\n @ViewChild('providerSearch') providerSearch: ReportsProviderSearchComponent;\r\n @ViewChild('awpmemberComponent') awpmemberComponent: AttestationBhAbaReferralsMemberComponent;\r\n\r\n constructor(\r\n private reportsService: ReportsService,\r\n private sessionService: SessionService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.initialize();\r\n }\r\n\r\n public initialize(resetComponent = false) {\r\n \r\n this.sortColumn = 'name';\r\n this.selectedCalProviderID = '';\r\n\r\n if (resetComponent) { \r\n this.displayMembers = false;\r\n this.providers = [];\r\n this.displayedProviders = [];\r\n\r\n setTimeout(() => {\r\n if(this.providerSearch) {\r\n this.providerSearch.resetSearchFilters();\r\n } \r\n }, 100);\r\n }\r\n\r\n if(this.sessionService.currentPermission.isEnterpriseAdmin || this.sessionService.currentPermission.isEnterpriseUser) {\r\n // Do nothing.\r\n }\r\n else {\r\n this.reportsService.getProvidersForBHABAReferralAttestation(this.sessionService.currentPermission.providerCollectionID, ReportType.AWV).subscribe(result => {\r\n this.providers = result;\r\n\r\n this.pageNumber = 1;\r\n this.onProviderSearch(null);\r\n\r\n let param: any = {\r\n \"field\": \"name\",\r\n \"order\": 1\r\n }\r\n this.onSort(param)\r\n });\r\n }\r\n }\r\n\r\n public sortClass(column: string): string {\r\n let cls: string;\r\n if (column == this.sortColumn) {\r\n cls = this.sortAscending ? \"fa fa-chevron-up\" : \"fa fa-chevron-down\";\r\n }\r\n else {\r\n cls = \"fa fa-chevron-up\";\r\n }\r\n return cls;\r\n }\r\n\r\n public onPage(e: any) {\r\n let s = JSON.stringify(e);\r\n }\r\n\r\n public onSort(e: any): void {\r\n this.providers.sort((data1, data2) => {\r\n let value1 = data1[e.field];\r\n let value2 = data2[e.field];\r\n let result = null;\r\n\r\n if (value1 == null && value2 != null)\r\n result = -1;\r\n else if (value1 != null && value2 == null)\r\n result = 1;\r\n else if (value1 == null && value2 == null)\r\n result = 0;\r\n else if (typeof value1 === 'string' && typeof value2 === 'string')\r\n result = value1.localeCompare(value2);\r\n else\r\n result = (value1 < value2) ? -1 : (value1 > value2) ? 1 : 0;\r\n\r\n return (e.order * result);\r\n });\r\n this.sortAscending = e.order == 1;\r\n this.sortColumn = e.field;\r\n }\r\n\r\n public onProviderSelected(provider: ProviderDetail) {\r\n this.selectedCalProviderID = provider.calProviderID;\r\n this.selectedProvider = provider;\r\n this.displayMembers = true;\r\n setTimeout(() => {\r\n this.awpmemberComponent.setProviderId(this.selectedProvider); \r\n }, (500)); \r\n }\r\n\r\n public backToProvider() {\r\n this.initialize(true);\r\n }\r\n\r\n public onProviderSearch(search) {\r\n this.selectedCalProviderID = '';\r\n if (search && (search.providerName || search.providerId || search.providerTin)) {\r\n\r\n if(this.sessionService.currentPermission.isEnterpriseAdmin || this.sessionService.currentPermission.isEnterpriseUser) {\r\n this.reportsService.searchProvidersForBHABAReferralAttestation(search.providerId, search.providerName, search.providerTin, ReportType.AWV).subscribe(result => {\r\n this.providers = result;\r\n this.displayedProviders = this.providers.slice();\r\n });\r\n }\r\n else {\r\n if (!UiUtility.isNullUndefinedOrEmpty(search.providerName)) {\r\n this.displayedProviders = this.providers\r\n .filter(p => p.name.toLowerCase().indexOf(search.providerName.trim().toLowerCase()) >= 0);\r\n }\r\n else if (!UiUtility.isNullUndefinedOrEmpty(search.providerId)) {\r\n this.displayedProviders = this.providers\r\n .filter(p => p.calProviderID.toLowerCase().indexOf(search.providerId.trim().toLowerCase()) >= 0);\r\n }\r\n else if (!UiUtility.isNullUndefinedOrEmpty(search.providerTin)) {\r\n this.displayedProviders = this.providers\r\n .filter(p => p.taxId.toLowerCase().indexOf(search.providerTin.trim().toLowerCase()) >= 0);\r\n } \r\n }\r\n }\r\n else {\r\n this.displayedProviders = this.providers.slice();\r\n }\r\n }\r\n\r\n private setPagedData(page: number = 0) {\r\n if (page === 0) {\r\n this.pageNumber = 1;\r\n }\r\n this.totalRecords = this.displayedProviders.length;\r\n const start = (this.pageNumber - 1) * this.rowsPerPage;\r\n let end = start + this.rowsPerPage;\r\n if (end > this.displayedProviders.length) {\r\n end = this.displayedProviders.length;\r\n }\r\n\r\n this.displayedProviders = this.displayedProviders.slice(start, end);\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 {{col.header}}\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 {{provider[col.field]}}\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n

{{selectedProvider.name}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n ","import { Component, ElementRef, ViewChild } from '@angular/core';\r\nimport { AttestationBhAbaReferralsProviderComponent } from './attestation-bh-aba-referrals-provider/attestation-bh-aba-referrals-provider.component';\r\nimport { AttestationBhAbaReferralsMemberComponent } from './attestation-bh-aba-referrals-member/attestation-bh-aba-referrals-member.component';\r\nimport { TabView } from 'primeng/tabview';\r\nimport { ConfirmationService } from 'primeng/api';\r\nimport { UiUtility } from 'src/app/utils/ui-utility';\r\n\r\n@Component({\r\n selector: 'app-attestation-bh-aba-referrals',\r\n templateUrl: './attestation-bh-aba-referrals.component.html',\r\n styleUrl: './attestation-bh-aba-referrals.component.scss'\r\n})\r\nexport class AttestationBhAbaReferralsComponent {\r\n public displayConfirmContinue = false;\r\n public activeindex:number = 0;\r\n\r\n @ViewChild('tabView') tabview: TabView;\r\n @ViewChild('providerComponent') providerComponent: AttestationBhAbaReferralsProviderComponent;\r\n @ViewChild('memberComponent') memberComponent: AttestationBhAbaReferralsMemberComponent;\r\n\r\n private tabs: any = [\r\n { index: 0, id: 'awp-provider', label: 'Provider', enable: true },\r\n { index: 1, id: 'awp-member', label: 'Member', enable: true }\r\n ];\r\n\r\n constructor(\r\n private confirmationService: ConfirmationService,\r\n private elementRef: ElementRef\r\n ) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.setPcpReportAttestationTabs();\r\n }\r\n\r\n public canViewTab(index: number) {\r\n const currentTab = this.tabs.find((tab: any) => tab.index === index);\r\n return currentTab ? currentTab.enable : false;\r\n }\r\n\r\n public getTabName(index: number) {\r\n const currentTab = this.tabs.find((tab: any) => tab.index === index);\r\n return currentTab ? currentTab.label : '';\r\n }\r\n\r\n public getTabIndex(name: string) {\r\n const currentTab = this.tabs.find((tab: any) => tab.label === name);\r\n return currentTab ? currentTab.index : 0;\r\n }\r\n\r\n public onTabChanged(e: any) {\r\n this.displayConfirmContinue = true;\r\n this.tabview.activeIndex = e.index === 1 ? 0 : 1;\r\n }\r\n\r\n public handleChange(selectedIndex:number, e:MouseEvent) {\r\n const currentIndex = this.tabview.activeIndex;\r\n e.stopPropagation();\r\n if (currentIndex == selectedIndex){\r\n return;\r\n }\r\n this.confirmationService.confirm({\r\n header: 'Are you sure?',\r\n message: 'Your search results will be cleared.',\r\n key: 'continueDialog',\r\n accept: () => {\r\n this.tabview.activeIndex = selectedIndex;\r\n if (selectedIndex === this.getTabIndex('Provider')) {\r\n this.providerComponent.initialize(true);\r\n }\r\n else if (selectedIndex === this.getTabIndex('Member')) {\r\n if (this.memberComponent) {\r\n this.memberComponent.setProviderId(null);\r\n }\r\n }\r\n },\r\n reject: () => {\r\n this.tabview.activeIndex = currentIndex;\r\n }\r\n });\r\n }\r\n\r\n private setPcpReportAttestationTabs() {\r\n const tabView = this.elementRef.nativeElement.querySelector('div.pcpattestation-tabview-styles ul.p-tabview-nav');\r\n UiUtility.SetTabsWidthDynamically(tabView, 0, 250);\r\n\r\n const tabElements = tabView.querySelectorAll('li');\r\n tabElements.forEach(element => {\r\n const currentChild = element.firstChild;\r\n const anchorelement = (element.querySelector(\"a\") as HTMLAnchorElement);\r\n const tabName = (anchorelement) ? anchorelement.innerText : \"\";\r\n\r\n const tabIndex = this.getTabIndex(tabName.trim());\r\n\r\n const newDiv = window.document.createElement(\"div\");\r\n newDiv.addEventListener('click', this.handleChange.bind(this, tabIndex), false);\r\n newDiv.style.cursor = 'pointer';\r\n newDiv.appendChild(currentChild);\r\n\r\n element.firstChild.remove();\r\n element.appendChild(newDiv);\r\n });\r\n }\r\n\r\n public confirmContinue(event) {\r\n this.displayConfirmContinue = false;\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 {{getTabName(0)}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{getTabName(1)}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n ","\r\nimport { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ProviderNetwork } from 'src/app/services/models/provider-tax-details';\r\nimport { ReportsService } from 'src/app/services/reports.service';\r\nimport { SessionService } from 'src/app/services/session.service';\r\nimport FileSaver, { saveAs } from 'file-saver';\r\nimport { LazyLoadEvent } from 'primeng/api/lazyloadevent';\r\n\r\n@Component({\r\n selector: 'app-pdc-health-network',\r\n templateUrl: './pdc-health-network.component.html',\r\n styleUrl: './pdc-health-network.component.scss'\r\n})\r\nexport class PdcHealthNetworkComponent implements OnInit, OnDestroy {\r\n public healthPlans: ProviderNetwork[];\r\n public displayMessage: boolean = false;\r\n public totalRecords: number;\r\n public rowsPerPage: number = 10;\r\n public pageNumber: number = 1;\r\n\r\n\r\n private sortColumn: string;\r\n private sortAscending: boolean;\r\n\r\n public columns: any = [\r\n { field: 'networkName', header: 'Health Network Plan Name', width: '40%', classHeader: 'header-name-column', classContent: 'name-column', sort: true },\r\n { field: 'networkId', header: 'Health Network Plan Code', width: '40%', classHeader: 'header-name-column', classContent: 'name-column', sort: true },\r\n { field: '', header: 'Action', width: '20%', classHeader: 'header-action-column', classContent: 'action-column', sort: false }\r\n ];\r\n \r\n constructor (\r\n private reportsService: ReportsService,\r\n private sessionService: SessionService\r\n ) {}\r\n\r\n ngOnDestroy(): void {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.loadData();\r\n }\r\n\r\n public onGetLatest(providerNetwork: ProviderNetwork, isExcel: boolean = false) {\r\n this.reportsService.downloadHealthNetworkPlanPDCReport(providerNetwork.networkId, 'healthnetwork', [], [], isExcel).subscribe(result=>{\r\n if (result) {\r\n const currentDate = new Date();\r\n const year = currentDate.getFullYear();\r\n const month = (currentDate.getMonth() + 1).toString().padStart(2, '0'); \r\n const day = currentDate.getDate().toString().padStart(2, '0');\r\n \r\n if (isExcel) {\r\n const fileName = `${providerNetwork.networkId.substring(3,5)}550${year}${month}${day}.xlsx`;\r\n this.saveAsFile(result, fileName, 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');\r\n }\r\n else {\r\n const fileName = `${providerNetwork.networkId.substring(3,5)}550${year}${month}${day}.csv`;\r\n this.saveAsFile(result, fileName, 'text/csv');\r\n }\r\n }\r\n });\r\n }\r\n\r\n private saveAsFile(buffer: any, fileName: string, fileType: string): void {\r\n const data: Blob = new Blob([buffer], { type: fileType });\r\n FileSaver.saveAs(data, fileName);\r\n }\r\n\r\n public onGetLatestExcel(providerNetwork: ProviderNetwork) {\r\n this.onGetLatest(providerNetwork, true);\r\n }\r\n \r\n public sortClass(column: string): string {\r\n let cls: string;\r\n if (column == this.sortColumn) {\r\n cls = this.sortAscending ? \"fa fa-chevron-up\" : \"fa fa-chevron-down\";\r\n }\r\n else {\r\n cls = \"fa fa-chevron-up\";\r\n }\r\n return cls;\r\n }\r\n\r\n public onPage(e: any) {\r\n let s = JSON.stringify(e);\r\n }\r\n\r\n public onSort(e: any): void {\r\n this.healthPlans.sort((data1, data2) => {\r\n let value1 = data1[e.field];\r\n let value2 = data2[e.field];\r\n let result = null;\r\n\r\n if (value1 == null && value2 != null)\r\n result = -1;\r\n else if (value1 != null && value2 == null)\r\n result = 1;\r\n else if (value1 == null && value2 == null)\r\n result = 0;\r\n else if (typeof value1 === 'string' && typeof value2 === 'string')\r\n result = value1.localeCompare(value2);\r\n else\r\n result = (value1 < value2) ? -1 : (value1 > value2) ? 1 : 0;\r\n\r\n return (e.order * result);\r\n });\r\n this.sortAscending = e.order == 1;\r\n this.sortColumn = e.field;\r\n }\r\n\r\n lazyLoadData(event: LazyLoadEvent) {\r\n if (event.sortField !== undefined) {\r\n this.sortAscending = event.sortOrder === 1;\r\n this.sortColumn = event.sortField;\r\n this.loadData();\r\n }\r\n }\r\n\r\n private loadData() {\r\n const currentCollectionId = this.sessionService.currentPermission.providerCollectionID;\r\n const healthNetworkPlanCodes = this.sessionService.currentPermission.healthNetworkPlanCodes;\r\n this.reportsService.getProviderHealthNetworkPlanForPDC(currentCollectionId, healthNetworkPlanCodes).subscribe(result => {\r\n this.healthPlans = result;\r\n this.totalRecords = this.healthPlans.length;\r\n this.displayMessage = this.healthPlans && this.totalRecords === 0;\r\n\r\n let param: any = {\r\n \"field\": \"networkName\",\r\n \"order\": 1\r\n }\r\n this.onSort(param)\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 {{col.header}}\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 {{row[col.field]}}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n No results found.\r\n
\r\n
\r\n ","import { Component, Provider } from '@angular/core';\r\nimport FileSaver from 'file-saver';\r\nimport { ProviderDetail } from 'src/app/services/models/provider-detail';\r\nimport { ReportsService } from 'src/app/services/reports.service';\r\nimport { SessionService } from 'src/app/services/session.service';\r\n\r\n@Component({\r\n selector: 'app-pdc-provider',\r\n templateUrl: './pdc-provider.component.html',\r\n styleUrl: './pdc-provider.component.scss'\r\n})\r\nexport class PdcProviderComponent {\r\n public isInternalUser: boolean = false;\r\n public displayMessage: boolean = false;\r\n public providers: ProviderDetail[] = [];\r\n public totalRecords: number;\r\n public rowsPerPage: number = 10;\r\n public pageNumber: number = 1;\r\n public first: number = 0;\r\n public displayDownload: boolean = false;\r\n public columns: any = [\r\n { field: 'name', header: 'Name', width: '60%', classHeader: 'header-name-column', classContent: 'name-column', sort: true },\r\n { field: 'taxId', header: 'TIN', width: '20%', classHeader: 'header-name-column', classContent: 'name-column', sort: true },\r\n { field: 'providerNPI', header: 'NPI', width: '20%', classHeader: 'header-name-column', classContent: 'name-column', sort: true }\r\n ];\r\n\r\n private sortColumn: string;\r\n private sortAscending: boolean;\r\n private providerIds: string[] = [];\r\n private providerNPIs: string[] = [];\r\n private searchType: string = 'prescriber';\r\n private collectionName: string; \r\n\r\n constructor (\r\n private reportsService: ReportsService,\r\n private sessionService: SessionService\r\n ) {}\r\n\r\n ngOnDestroy(): void {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.isInternalUser = this.sessionService.isEnterpriseAdmin || this.sessionService.isEnterpriseUser;\r\n this.collectionName = this. sessionService.currentPermission.collectionName;\r\n\r\n if (!this.isInternalUser) {\r\n this.onProviderSearch({ \r\n selectionType: 'prescriber', \r\n providerName: null, \r\n providerNPI: null, \r\n providerTaxId: null\r\n });\r\n }\r\n }\r\n\r\n public onDownload() {\r\n var isExcel = true;\r\n\r\n this.providerIds = [];\r\n this.providerNPIs = [];\r\n this.providers.forEach(p => {\r\n if (this.providerIds.indexOf(p.calProviderID) === -1) {\r\n this.providerIds.push(p.calProviderID);\r\n }\r\n if (this.providerNPIs.indexOf(p.providerNPI) === -1) {\r\n this.providerNPIs.push(p.providerNPI);\r\n }\r\n }); \r\n\r\n this.reportsService.downloadHealthNetworkPlanPDCReport(null, this.searchType, this.providerIds, this.providerNPIs, true).subscribe(result=>{\r\n if (result) {\r\n const currentDate = new Date();\r\n const year = currentDate.getFullYear();\r\n const month = (currentDate.getMonth() + 1).toString().padStart(2, '0'); \r\n const day = currentDate.getDate().toString().padStart(2, '0');\r\n \r\n if (isExcel) {\r\n const fileName = `${this.isInternalUser ? \"CalOptima\" : this.collectionName}550${year}${month}${day}.xlsx`;\r\n this.saveAsFile(result, fileName, 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');\r\n }\r\n else {\r\n const fileName = `$Caloptima550${year}${month}${day}.csv`;\r\n this.saveAsFile(result, fileName, 'text/csv');\r\n }\r\n }\r\n });\r\n }\r\n\r\n private saveAsFile(buffer: any, fileName: string, fileType: string): void {\r\n const data: Blob = new Blob([buffer], { type: fileType });\r\n FileSaver.saveAs(data, fileName);\r\n }\r\n\r\n public sortClass(column: string): string {\r\n let cls: string;\r\n if (column == this.sortColumn) {\r\n cls = this.sortAscending ? \"fa fa-chevron-up\" : \"fa fa-chevron-down\";\r\n }\r\n else {\r\n cls = \"fa fa-chevron-up\";\r\n }\r\n return cls;\r\n }\r\n\r\n public onPage(e: any) {\r\n let s = JSON.stringify(e);\r\n }\r\n\r\n public onSort(e: any): void {\r\n this.providers.sort((data1, data2) => {\r\n let value1 = data1[e.field];\r\n let value2 = data2[e.field];\r\n let result = null;\r\n\r\n if (value1 == null && value2 != null)\r\n result = -1;\r\n else if (value1 != null && value2 == null)\r\n result = 1;\r\n else if (value1 == null && value2 == null)\r\n result = 0;\r\n else if (typeof value1 === 'string' && typeof value2 === 'string')\r\n result = value1.localeCompare(value2);\r\n else\r\n result = (value1 < value2) ? -1 : (value1 > value2) ? 1 : 0;\r\n\r\n return (e.order * result);\r\n });\r\n this.sortAscending = e.order == 1;\r\n this.sortColumn = e.field;\r\n }\r\n\r\n public onSelectionFilterChange(event: any) {\r\n this.searchType = event ? event : \"prescriber\";\r\n }\r\n\r\n public onProviderSearch(event: any) {\r\n if (event === null) {\r\n //reset the search\r\n this.providers = [];\r\n this.displayDownload = false;\r\n this.displayMessage = false;\r\n\r\n return;\r\n }\r\n\r\n this.searchType = event ? event.selectionType : \"prescriber\";\r\n const currentCollectionId = this.sessionService.currentPermission.providerCollectionID;\r\n this.reportsService.getPDCReportForProviders( currentCollectionId, \r\n event ? event.providerName : null, \r\n event ? event.providerNPI : null, \r\n event ? event.providerTaxId : null, \r\n this.searchType).subscribe(result => {\r\n this.providers = result;\r\n this.pageNumber = 1;\r\n this.first = 0;\r\n this.totalRecords = this.providers.length;\r\n\r\n if (this.isInternalUser) {\r\n //internal user can only download single NPI\r\n const seenValues = new Set();\r\n this.providers.filter(item => {\r\n const value = item['providerNPI'];\r\n if (seenValues.has(value)) {\r\n return false;\r\n }\r\n seenValues.add(value);\r\n return true;\r\n });\r\n\r\n this.displayDownload = seenValues.size === 1;\r\n }\r\n else {\r\n this.displayDownload = this.providers && this.providers.length > 0;\r\n }\r\n\r\n this.displayMessage = !this.providers || this.providers.length === 0;\r\n\r\n let param: any = {\r\n \"field\": \"name\",\r\n \"order\": 1\r\n }\r\n this.onSort(param)\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 {{col.header}}\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n {{row[col.field]}}\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n No results found.\r\n
\r\n
\r\n \r\n
\r\n
\r\n ","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\r\nimport { SessionService } from 'src/app/services/session.service';\r\nimport { UiUtility } from 'src/app/utils/ui-utility';\r\n\r\n@Component({\r\n selector: 'app-pdc-provider-search',\r\n templateUrl: './pdc-provider-search.component.html',\r\n styleUrl: './pdc-provider-search.component.scss'\r\n})\r\nexport class PdcProviderSearchComponent implements OnInit {\r\n public providerName: string = \"\";\r\n public providerNPI: string = \"\";\r\n public providerTaxId: string = \"\";\r\n public pdcProviderSearchOption: string[] = ['prescriber'];\r\n\r\n private isInternalUser: boolean = false;\r\n\r\n @Output() onProviderFilterSearch: EventEmitter = new EventEmitter(null);\r\n @Output() onSelectionFilterChange: EventEmitter = new EventEmitter(null);\r\n\r\n constructor(\r\n private sessionService: SessionService) \r\n {}\r\n\r\n public get enableReset(): boolean {\r\n return (this.providerName && !UiUtility.isNullUndefinedOrEmpty(this.providerName.trim())) || \r\n (this.providerTaxId && !UiUtility.isNullUndefinedOrEmpty(this.providerTaxId.trim())) || \r\n (this.providerNPI && !UiUtility.isNullUndefinedOrEmpty(this.providerNPI.trim()));\r\n }\r\n public get disableProviderName(): boolean {\r\n return !UiUtility.isNullUndefinedOrEmpty(this.providerNPI) || !UiUtility.isNullUndefinedOrEmpty(this.providerTaxId); \r\n }\r\n public get disableProviderNPI(): boolean {\r\n return !UiUtility.isNullUndefinedOrEmpty(this.providerName) || !UiUtility.isNullUndefinedOrEmpty(this.providerTaxId); \r\n } \r\n public get disableProviderTaxId(): boolean {\r\n return !UiUtility.isNullUndefinedOrEmpty(this.providerName) || !UiUtility.isNullUndefinedOrEmpty(this.providerNPI); \r\n } \r\n\r\n ngOnInit(): void {\r\n this.isInternalUser = this.sessionService.isEnterpriseAdmin || this.sessionService.isEnterpriseUser;\r\n }\r\n\r\n public findProviders(reset: boolean = false) {\r\n if (reset) {\r\n this.onProviderFilterSearch.emit(null);\r\n }\r\n\r\n if (this.isInternalUser && \r\n UiUtility.isNullUndefinedOrEmpty(this.providerName.trim()) && \r\n UiUtility.isNullUndefinedOrEmpty(this.providerNPI.trim()) && \r\n UiUtility.isNullUndefinedOrEmpty(this.providerTaxId.trim())\r\n ) {\r\n //internal user needs to search using params\r\n return;\r\n }\r\n\r\n // for external user, no need to use these params.\r\n this.onProviderFilterSearch.emit({ \r\n selectionType: this.pdcProviderSearchOption.length === 2 ? 'both' : this.pdcProviderSearchOption[0], \r\n providerName: this.providerName.trim(), \r\n providerNPI: this.providerNPI.trim(), \r\n providerTaxId: this.providerTaxId.trim()\r\n });\r\n }\r\n\r\n public onSelectFilterSearch(event: any) {\r\n if (this.pdcProviderSearchOption.length === 0) {\r\n this.pdcProviderSearchOption = ['prescriber'];\r\n }\r\n this.onSelectionFilterChange.emit(this.pdcProviderSearchOption.length === 2 ? 'both' : this.pdcProviderSearchOption[0]);\r\n }\r\n\r\n public onReset() {\r\n this.providerName = \"\";\r\n this.providerNPI = \"\";\r\n this.providerTaxId = \"\";\r\n this.findProviders(true);\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","import { Component, ElementRef, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { TabView } from 'primeng/tabview';\r\nimport { UiUtility } from 'src/app/utils/ui-utility';\r\n\r\n@Component({\r\n selector: 'app-reports-pdc',\r\n templateUrl: './reports-pdc.component.html',\r\n styleUrl: './reports-pdc.component.scss'\r\n})\r\nexport class ReportsPdcComponent implements OnInit, OnDestroy {\r\n public activeindex:number = 0;\r\n\r\n private tabs: any = [\r\n { index: 0, id: 'pdc-report-provider', label: 'PCP / Prescriber', enable: true },\r\n { index: 1, id: 'pdc-report-member', label: 'Health Network', enable: true }\r\n ];\r\n\r\n @ViewChild('tabView') tabview: TabView;\r\n \r\n constructor (\r\n private elementRef: ElementRef\r\n ) {}\r\n\r\n ngOnDestroy(): void {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.setPdcReportTabs();\r\n }\r\n\r\n \r\n public canViewTab(index: number) {\r\n const currentTab = this.tabs.find((tab: any) => tab.index === index);\r\n return currentTab ? currentTab.enable : false;\r\n }\r\n\r\n public getTabName(index: number) {\r\n const currentTab = this.tabs.find((tab: any) => tab.index === index);\r\n return currentTab ? currentTab.label : '';\r\n }\r\n\r\n public getTabIndex(name: string) {\r\n const currentTab = this.tabs.find((tab: any) => tab.label === name);\r\n return currentTab ? currentTab.index : 0;\r\n }\r\n\r\n public onTabChanged(e: any) {\r\n this.tabview.activeIndex = e.index === 1 ? 0 : 1;\r\n }\r\n\r\n public handleChange(selectedIndex:number, e:MouseEvent) {\r\n const currentIndex = this.tabview.activeIndex;\r\n e.stopPropagation();\r\n if (currentIndex == selectedIndex){\r\n return;\r\n }\r\n }\r\n\r\n private setPdcReportTabs() {\r\n const tabView = this.elementRef.nativeElement.querySelector('div.report-pdc-tabview-styles ul.p-tabview-nav');\r\n if (tabView) {\r\n UiUtility.SetTabsWidthDynamically(tabView, 0, 250);\r\n\r\n const tabElements = tabView.querySelectorAll('li');\r\n tabElements.forEach(element => {\r\n const currentChild = element.firstChild;\r\n const tabName = (element.querySelector(\"a\") as HTMLAnchorElement).innerText;\r\n const tabIndex = this.getTabIndex(tabName.trim());\r\n \r\n const newDiv = window.document.createElement(\"div\");\r\n newDiv.addEventListener('click', this.handleChange.bind(this, tabIndex), false);\r\n newDiv.style.cursor = 'pointer';\r\n newDiv.appendChild(currentChild);\r\n \r\n element.firstChild.remove();\r\n element.appendChild(newDiv);\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 {{getTabName(0)}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{getTabName(1)}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","import { Component, OnInit, Output, EventEmitter, Provider } from '@angular/core';\r\nimport { ProviderDetail } from 'src/app/services/models/provider-detail';\r\nimport { ReportType } from 'src/app/services/models/reportype';\r\nimport { ReportsService } from 'src/app/services/reports.service';\r\nimport { SessionService } from 'src/app/services/session.service';\r\nimport { UiUtility } from 'src/app/utils/ui-utility';\r\n\r\n\r\n@Component({\r\n selector: 'app-reports-roster-provider',\r\n templateUrl: './reports-roster-provider.component.html',\r\n styleUrl: './reports-roster-provider.component.scss'\r\n})\r\nexport class ReportsRosterProviderComponent implements OnInit {\r\n\r\n @Output() selectedprovider = new EventEmitter();\r\n\r\n public providers: ProviderDetail[] = [];\r\n public displayedProviders: ProviderDetail[] = [];\r\n public rowsPerPage: number = 10;\r\n public pageNumber: number = 1;\r\n public animationState: string = '';\r\n\r\n private sortColumn: string;\r\n private sortAscending: boolean;\r\n \r\n public columns: any = [\r\n { field: '', header: '', width: '5%', classHeader: 'provider-reports-header', classContent: 'provider-reports-content-alt1', sort: false },\r\n { field: 'name', header: 'Name', width: '40%', classHeader: 'provider-reports-header', classContent: 'provider-reports-content', sort: true },\r\n { field: 'taxId', header: 'TIN', width: '25%', classHeader: 'provider-reports-header-alt1', classContent: 'provider-reports-content-alt1', sort: true },\r\n { field: 'calProviderID', header: 'Provider ID', width: '25%', classHeader: 'provider-reports-header-alt1', classContent: 'provider-reports-content-alt1', sort: true }\r\n ];\r\n\r\n constructor(private sessionService: SessionService, private reportsService: ReportsService) {\r\n\r\n }\r\n\r\n public ngOnInit(): void {\r\n \r\n this.sortColumn = 'name';\r\n\r\n if(this.sessionService.currentPermission.isEnterpriseAdmin || this.sessionService.currentPermission.isEnterpriseUser) {\r\n // Do nothing.\r\n }\r\n else {\r\n this.reportsService.getProvidersForPCPMemberRoster(this.sessionService.currentPermission.providerCollectionID).subscribe(result => {\r\n this.providers = result;\r\n\r\n this.pageNumber = 1;\r\n this.onProviderSearch(null);\r\n\r\n let param: any = {\r\n \"field\": \"name\",\r\n \"order\": 1\r\n }\r\n this.onSort(param)\r\n });\r\n }\r\n }\r\n\r\n public sortClass(column: string): string {\r\n let cls: string;\r\n if (column == this.sortColumn) {\r\n cls = this.sortAscending ? \"fa fa-chevron-up\" : \"fa fa-chevron-down\";\r\n }\r\n else {\r\n cls = \"fa fa-chevron-up\";\r\n }\r\n return cls;\r\n }\r\n\r\n public onPage(e: any) {\r\n let s = JSON.stringify(e);\r\n }\r\n\r\n public onSort(e: any): void {\r\n this.providers.sort((data1, data2) => {\r\n let value1 = data1[e.field];\r\n let value2 = data2[e.field];\r\n let result = null;\r\n\r\n if (value1 == null && value2 != null)\r\n result = -1;\r\n else if (value1 != null && value2 == null)\r\n result = 1;\r\n else if (value1 == null && value2 == null)\r\n result = 0;\r\n else if (typeof value1 === 'string' && typeof value2 === 'string')\r\n result = value1.localeCompare(value2);\r\n else\r\n result = (value1 < value2) ? -1 : (value1 > value2) ? 1 : 0;\r\n\r\n return (e.order * result);\r\n });\r\n this.sortAscending = e.order == 1;\r\n this.sortColumn = e.field;\r\n }\r\n\r\n public onProviderSelected(provider: ProviderDetail) {\r\n this.selectedprovider.emit(provider);\r\n }\r\n\r\n public onProviderSearch(search) {\r\n if (search && (search.providerName || search.providerId || search.providerTin)) {\r\n\r\n if(this.sessionService.currentPermission.isEnterpriseAdmin || this.sessionService.currentPermission.isEnterpriseUser) {\r\n this.reportsService.searchProvidersForPCPMemberRoster(search.providerId, search.providerName, search.providerTin).subscribe(result => {\r\n this.providers = result;\r\n this.displayedProviders = this.providers.slice();\r\n });\r\n }\r\n else {\r\n if (!UiUtility.isNullUndefinedOrEmpty(search.providerName)) {\r\n this.displayedProviders = this.providers\r\n .filter(p => p.name.toLowerCase().indexOf(search.providerName.trim().toLowerCase()) >= 0);\r\n }\r\n else if (!UiUtility.isNullUndefinedOrEmpty(search.providerId)) {\r\n this.displayedProviders = this.providers\r\n .filter(p => p.calProviderID.toLowerCase().indexOf(search.providerId.trim().toLowerCase()) >= 0);\r\n }\r\n else if (!UiUtility.isNullUndefinedOrEmpty(search.providerTin)) {\r\n this.displayedProviders = this.providers\r\n .filter(p => p.taxId.toLowerCase().indexOf(search.providerTin.trim().toLowerCase()) >= 0);\r\n } \r\n }\r\n }\r\n else {\r\n this.displayedProviders = this.providers.slice();\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 {{col.header}}\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 {{provider[col.field]}}\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
","import { Component, OnInit, Output, EventEmitter, Input } from '@angular/core';\r\nimport { PortalMenuItem } from '../../shared/portal-menu-item';\r\n\r\n\r\n@Component({\r\n selector: 'app-reports-roster-menu',\r\n templateUrl: './reports-roster-menu.component.html',\r\n styleUrl: './reports-roster-menu.component.scss'\r\n})\r\nexport class ReportsRosterMenuComponent implements OnInit {\r\n\r\n @Output() itemclicked = new EventEmitter();\r\n @Input() tag: any;\r\n @Input() menuItems: PortalMenuItem[];\r\n\r\n public visible: boolean = false;\r\n\r\n\r\n public onView() {\r\n this.visible = !this.visible\r\n } \r\n\r\n ngOnInit(): void {\r\n \r\n } \r\n\r\n public get menuCount() : number{\r\n return this.menuItems.length;\r\n }\r\n\r\n itemclick(item: PortalMenuItem) {\r\n\r\n var itemreturn: any = {\r\n \"item\": item,\r\n \"tag\": this.tag\r\n }\r\n\r\n this.itemclicked.emit(itemreturn);\r\n }\r\n}\r\n","
\r\n
1\">\r\n ...\r\n
\r\n
\r\n
\r\n
\r\n {{item.label}}\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component, Output, EventEmitter, OnInit, Input } from '@angular/core';\r\nimport { MemberInfoService } from 'src/app/services/member-info.service';\r\nimport { PortalMember } from 'src/app/services/models/portal-resource';\r\n\r\n@Component({\r\n selector: 'app-reports-roster-member-dialog',\r\n templateUrl: './reports-roster-member-dialog.component.html',\r\n styleUrl: './reports-roster-member-dialog.component.scss'\r\n})\r\nexport class ReportsRosterMemberDialogComponent implements OnInit {\r\n\r\n @Input() member: PortalMember;\r\n @Output() onCancel = new EventEmitter();\r\n public display: boolean = true;\r\n\r\n constructor(private memberService: MemberInfoService) {\r\n\r\n }\r\n \r\n ngOnInit(): void {\r\n \r\n }\r\n\r\n public get caption() : string {\r\n if(this.member)\r\n return this.member.lastName + \", \" + this.member.firstName + \" => \" + this.member.cin;\r\n else\r\n return \"\";\r\n }\r\n\r\n public cancelClick() {\r\n this.display = false;\r\n\r\n this.onCancel.emit(false);\r\n }\r\n}\r\n","\r\n \r\n\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { Component, Inject, OnInit, Output, EventEmitter } from '@angular/core';\r\nimport { UserProfile } from '@caloptima/authentication';\r\nimport { MenuItem } from 'primeng/api';\r\nimport { MemberRosterService } from 'src/app/services/member.roster.service';\r\nimport { PortalMember } from 'src/app/services/models/portal-resource';\r\nimport { ProviderDetail } from 'src/app/services/models/provider-detail';\r\nimport { RosterType } from 'src/app/services/models/request-status';\r\nimport { RosterItem } from 'src/app/services/models/roster-item';\r\nimport { Menu } from 'primeng/menu';\r\nimport { ToggleButtonModule } from 'primeng/togglebutton';\r\nimport { PortalMenuItem } from '../../shared/portal-menu-item';\r\nimport { MemberInfoService } from 'src/app/services/member-info.service';\r\nimport { SessionService } from 'src/app/services/session.service';\r\n\r\n@Component({\r\n selector: 'app-reports-roster-member',\r\n templateUrl: './reports-roster-member.component.html',\r\n styleUrl: './reports-roster-member.component.scss'\r\n})\r\nexport class ReportsRosterMemberComponent implements OnInit {\r\n\r\n public userProfile: UserProfile;\r\n public members:PortalMember[] = [];\r\n public displayMembers:PortalMember[] = [];\r\n public selectedMember: PortalMember;\r\n private sortColumn: string;\r\n private sortAscending: boolean;\r\n public searchCin: string;\r\n public searchName: string;\r\n private selectedProvider: ProviderDetail;\r\n public rosterItems: RosterItem[];\r\n public selectedrosterItem: RosterItem;\r\n public menuItems: PortalMenuItem[] = [];\r\n public showDialog: boolean = false;\r\n public showDatePickerDialog: boolean = false;\r\n public errormessage: string = \"\";\r\n public successmessage: string = \"\";\r\n public showSuccess: boolean = false;\r\n public showError: boolean = false;\r\n\r\n @Output() back = new EventEmitter();\r\n\r\n constructor(private memberRosterService: MemberRosterService,\r\n private memberService: MemberInfoService,\r\n private sessionService: SessionService,\r\n @Inject(DOCUMENT) private document: Document) {\r\n \r\n }\r\n ngOnInit(): void {\r\n\r\n var itemExists = this.sessionService.currentPermission.userPermissionCodes.find(x=>x.trim().toLocaleUpperCase() === \"PRVBRM\");\r\n\r\n if(itemExists || this.sessionService.isInternalUser) {\r\n this.menuItems = [\r\n {\r\n key: 'view',\r\n label: 'View Member Details',\r\n icon: ''\r\n },\r\n {\r\n key: 'delete',\r\n label: 'Remove from Roster',\r\n icon: ''\r\n } \r\n ];\r\n }\r\n else {\r\n this.menuItems = [\r\n {\r\n key: 'view',\r\n label: 'View Member Details',\r\n icon: ''\r\n }\r\n ];\r\n }\r\n \r\n\r\n this.memberRosterService.getRosterItems().subscribe(x=>{\r\n this.rosterItems = x;\r\n this.selectedrosterItem = x[0];\r\n\r\n this.onChange(this.selectedrosterItem);\r\n });\r\n }\r\n\r\n public onMemberSearch(search) : void {\r\n if(search.memberId && search.memberId.trim() != '') {\r\n this.displayMembers = this.members.filter(x=> x.cin.trim().toUpperCase() === search.memberId.trim().toUpperCase());\r\n }\r\n else {\r\n this.displayMembers = this.members.slice();\r\n } \r\n }\r\n\r\n public get selectedProviderName() : string {\r\n if(this.selectedProvider)\r\n return this.selectedProvider.name;\r\n else\r\n return \"null\";\r\n }\r\n\r\n public initialize(resetComponent = false) {\r\n this.sortColumn = 'memberName';\r\n this.sortAscending = true;\r\n this.searchCin = '';\r\n this.searchName = '';\r\n this.selectedMember = null;\r\n this.displayMembers = [];\r\n \r\n }\r\n\r\n public sortClass(column: string): string {\r\n let cls: string;\r\n if (column == this.sortColumn) {\r\n cls = this.sortAscending ? \"fa fa-chevron-up\" : \"fa fa-chevron-down\";\r\n }\r\n else {\r\n cls = \"fa fa-chevron-up\";\r\n }\r\n return cls;\r\n }\r\n\r\n public onPage(e: any) {\r\n let s = JSON.stringify(e);\r\n }\r\n\r\n public onSort(e: any): void { \r\n this.displayMembers.sort((data1, data2) => {\r\n let value1 = data1[e.field];\r\n let value2 = data2[e.field];\r\n let result = null;\r\n\r\n if (value1 == null && value2 != null)\r\n result = -1;\r\n else if (value1 != null && value2 == null)\r\n result = 1;\r\n else if (value1 == null && value2 == null)\r\n result = 0;\r\n else if (typeof value1 === 'string' && typeof value2 === 'string')\r\n result = value1.localeCompare(value2);\r\n else\r\n result = (value1 < value2) ? -1 : (value1 > value2) ? 1 : 0;\r\n\r\n return (e.order * result);\r\n });\r\n this.sortAscending = e.order == 1;\r\n this.sortColumn = e.field;\r\n }\r\n\r\n public setProvider(provider: ProviderDetail) {\r\n if(provider) {\r\n this.selectedProvider = provider;\r\n\r\n if(this.selectedrosterItem) {\r\n this.memberRosterService.getProviderMemberRoster(provider.calProviderID, this.selectedrosterItem.rosterTypeID).subscribe(res=>{\r\n this.members = res;\r\n this.displayMembers = res.slice();\r\n });\r\n }\r\n }\r\n }\r\n\r\n public deleteMember(member: PortalMember) {\r\n this.selectedMember = member;\r\n this.showDatePickerDialog = true; \r\n }\r\n\r\n public onChange(rosterItem: RosterItem) {\r\n this.resetMessage();\r\n this.setProvider(this.selectedProvider);\r\n }\r\n\r\n public onBack() {\r\n this.resetMessage();\r\n this.back.emit();\r\n }\r\n\r\n public itemclick($event) {\r\n var itemx = $event;\r\n var portalmember: PortalMember = itemx.tag;\r\n var menuItem: PortalMenuItem = itemx.item;\r\n\r\n if(menuItem.key.trim().toUpperCase() === \"DELETE\") {\r\n this.resetMessage();\r\n this.deleteMember(portalmember);\r\n }\r\n else if(menuItem.key.trim().toUpperCase() === \"VIEW\") {\r\n this.resetMessage();\r\n this.showDialog = true;\r\n this.selectedMember = portalmember; \r\n\r\n setTimeout(()=>{\r\n this.memberService.getMembersById(portalmember.cin).subscribe(x=>{\r\n this.memberService.setSelectMember(x[0]);\r\n });\r\n }, 100);\r\n }\r\n }\r\n\r\n public cancelMemberDialog() {\r\n this.showDialog = false;\r\n }\r\n\r\n public cancelDateDialog() {\r\n this.showDatePickerDialog = false;\r\n }\r\n\r\n public resetMessage() {\r\n this.showError = false;\r\n this.showSuccess = false;\r\n this.errormessage = \"\";\r\n this.successmessage = \"\";\r\n }\r\n\r\n public continueDateDialog($event) {\r\n var relationshipDate: Date = $event;\r\n var providerIds : string[] = [];\r\n providerIds.push(this.selectedProvider.calProviderID);\r\n \r\n this.memberRosterService.removeMemberFromProviderRoster(this.selectedMember.cin, this.selectedrosterItem.rosterTypeID, relationshipDate, providerIds)\r\n .subscribe(x=>{\r\n this.setProvider(this.selectedProvider);\r\n this.successmessage = \"Memeber removed from roster successfully.\";\r\n this.showSuccess = true;\r\n },\r\n (error)=>{\r\n this.successmessage = \"Failed to remove member from the roster.\";\r\n this.showError = true;\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {{selectedProviderName}}\r\n
\r\n
\r\n
\r\n
\r\n Roster Type\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 Name
\r\n Member ID
\r\n Start Date
\r\n Action\r\n \r\n
\r\n \r\n \r\n \r\n
{{row.memberName}}
\r\n \r\n \r\n
{{row.cin}}
\r\n \r\n \r\n
{{row.rosterEffDate}}
\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","import { Component, ViewChild } from '@angular/core';\r\nimport { ReportsRosterProviderComponent } from './reports-roster-provider/reports-roster-provider.component';\r\nimport { ReportsRosterMemberComponent } from './reports-roster-member/reports-roster-member.component';\r\nimport { ProviderDetail } from 'src/app/services/models/provider-detail';\r\n\r\n@Component({\r\n selector: 'app-reports-provider-member-roster',\r\n templateUrl: './reports-provider-member-roster.component.html',\r\n styleUrl: './reports-provider-member-roster.component.scss'\r\n})\r\nexport class ReportsProviderMemberRosterComponent {\r\n @ViewChild('providercomponent') providerComponent: ReportsRosterProviderComponent;\r\n @ViewChild('membercomponent') memberComponent: ReportsRosterMemberComponent;\r\n\r\n public displayProvider: boolean = true;\r\n public displayMember: boolean = false; \r\n\r\n constructor() {\r\n\r\n }\r\n\r\n public onProviderSelected(val: ProviderDetail) {\r\n \r\n\r\n this.displayProvider = false;\r\n this.displayMember = true;\r\n\r\n setTimeout(()=>{\r\n this.memberComponent.setProvider(val);\r\n }, 100);\r\n }\r\n\r\n public onBack() {\r\n this.displayMember =false;\r\n this.displayProvider = true;\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
","import { NgModule } from '@angular/core';\r\nimport { RouterModule, provideRoutes, Routes } from '@angular/router';\r\nimport { ReportsBloodleadScreeningComponent } from './reports-bloodlead-screening/reports-bloodlead-screening.component';\r\nimport { ReportsHomeComponent } from './reports-home/reports-home.component';\r\nimport { ReportsMemberEligibilityRosterComponent } from './reports-member-eligibility-roster/reports-member-eligibility-roster.component';\r\nimport { ReportsPayForValueComponent } from './reports-pay-for-value/reports-pay-for-value.component';\r\nimport { ReportsPcpMemberRosterComponent } from './reports-pcp-member-roster/reports-pcp-member-roster.component';\r\nimport { ReportsPcpAttestationComponent } from './reports-pcp-attestation/reports-pcp-attestation.component';\r\nimport { ReportsDHCSBloodleadScreeningComponent } from './reports-dhcs-bloodlead-screening/reports-dhcs-bloodlead-screening.component';\r\nimport { ReportsPayForValueManualComponent } from './reports-pay-for-value-manual/reports-pay-for-value-manual.component';\r\nimport { AttestationHomeComponent } from './attestation/attestation-home/attestation-home.component';\r\nimport { AttestationBloodleadScreeningComponent } from './attestation/attestation-bloodlead-screening/attestation-bloodlead-screening.component';\r\nimport { ReportsBHPayForValueComponent } from './reports-BH-pay-for-value/reports-bh-pay-for-value.component';\r\nimport { ReportsAWPComponent } from './reports-awp/reports-awp.component';\r\nimport { ReportsHIFComponent } from './reports-hif/reports-hif.component';\r\nimport { ReportsPcpMemberIHAComponent } from './reports-pcp-member-iha/reports-pcp-member-iha.component';\r\nimport { ReportsBHIComponent } from './reports-bhi/reports-bhi.component';\r\nimport { ReportsBHABAReferralsComponent } from './reports-bhaba-referrals/reports-bhaba-referrals.component';\r\nimport { AttestationProviderTrainingComponent } from './attestation/attestation-provider-training/attestation-provider-training.component';\r\nimport { AttestationBhAbaReferralsProviderComponent } from './attestation/attestation-bh-aba-referrals/attestation-bh-aba-referrals-provider/attestation-bh-aba-referrals-provider.component';\r\nimport { AttestationBhAbaReferralsComponent } from './attestation/attestation-bh-aba-referrals/attestation-bh-aba-referrals.component';\r\nimport { ReportsPdcComponent } from './reports-pdc/reports-pdc.component';\r\nimport { ReportsProviderMemberRosterComponent } from './reports-provider-member-roster/reports-provider-member-roster.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n redirectTo: '/reports/home',\r\n pathMatch: 'full'\r\n },\r\n {\r\n path: 'home',\r\n component: ReportsHomeComponent\r\n },\r\n {\r\n path: 'pcpmembershiproster',\r\n component: ReportsPcpMemberRosterComponent\r\n },\r\n {\r\n path: 'membereligibilityroster',\r\n component: ReportsMemberEligibilityRosterComponent\r\n },\r\n {\r\n path: 'payforvalue',\r\n component: ReportsPayForValueComponent\r\n },\r\n {\r\n path: 'bhpayforvalue',\r\n component: ReportsBHPayForValueComponent\r\n }, \r\n {\r\n path: 'bloodleadscreening',\r\n component: ReportsBloodleadScreeningComponent\r\n },\r\n {\r\n path: 'pcpattestation',\r\n component: ReportsPcpAttestationComponent\r\n },\r\n {\r\n path: 'dhcsbloodleadscreening',\r\n component: ReportsDHCSBloodleadScreeningComponent\r\n },\r\n {\r\n path: 'payforvaluemanual',\r\n component: ReportsPayForValueManualComponent\r\n },\r\n {\r\n path: 'attestationhome',\r\n component: AttestationHomeComponent,\r\n },\r\n {\r\n path: 'attestationbloodleadscreening',\r\n component: AttestationBloodleadScreeningComponent\r\n },\r\n {\r\n path: 'providertrainingattestation',\r\n component: AttestationProviderTrainingComponent\r\n },\r\n {\r\n path: 'bhabareferralattestation',\r\n component: AttestationBhAbaReferralsComponent\r\n },\r\n {\r\n path: 'awp',\r\n component: ReportsAWPComponent\r\n },\r\n {\r\n path: 'hif',\r\n component: ReportsHIFComponent\r\n },\r\n {\r\n path: 'iha',\r\n component: ReportsPcpMemberIHAComponent\r\n },\r\n {\r\n path: 'bhi',\r\n component: ReportsBHIComponent\r\n },\r\n {\r\n path: 'bhaba',\r\n component: ReportsBHABAReferralsComponent\r\n },\r\n {\r\n path: 'pdc',\r\n component: ReportsPdcComponent\r\n },\r\n {\r\n path: 'roster',\r\n component: ReportsProviderMemberRosterComponent\r\n }\r\n];\r\n\r\nexport const routedComponents = [\r\n ReportsHomeComponent\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class ReportsRoutingModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ReportsHomeComponent } from './reports-home/reports-home.component';\r\nimport { routedComponents, ReportsRoutingModule } from './reports-routing';\r\nimport { ReportsTypeComponent } from './reports-type/reports-type.component';\r\nimport { ReportsPcpMemberRosterComponent } from './reports-pcp-member-roster/reports-pcp-member-roster.component';\r\nimport { ReportsPcpMemberIHAComponent } from './reports-pcp-member-iha/reports-pcp-member-iha.component';\r\nimport { ToastModule } from 'primeng/toast';\r\nimport { TableModule } from 'primeng/table';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\nimport { FileUploadModule } from 'primeng/fileupload';\r\nimport { PanelModule } from 'primeng/panel';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { ReportsMemberEligibilityRosterComponent } from './reports-member-eligibility-roster/reports-member-eligibility-roster.component';\r\nimport { ReportsPayForValueComponent } from './reports-pay-for-value/reports-pay-for-value.component';\r\nimport { AppComponentsModule } from '../app-components/app-components.module';\r\nimport { RadioButtonModule } from 'primeng/radiobutton';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { ReportsBloodleadScreeningComponent } from './reports-bloodlead-screening/reports-bloodlead-screening.component';\r\nimport { ReportsPcpAttestationComponent } from './reports-pcp-attestation/reports-pcp-attestation.component';\r\nimport { TabViewModule } from 'primeng/tabview';\r\nimport { PcpAttestationProviderComponent } from './reports-pcp-attestation/pcp-attestation-provider/pcp-attestation-provider.component';\r\nimport { PcpAttestationMemberComponent } from './reports-pcp-attestation/pcp-attestation-member/pcp-attestation-member.component';\r\nimport { ReportsMemberSearchComponent } from '../app-components/reports-member-search/reports-member-search.component';\r\nimport { ReportsDHCSBloodleadScreeningComponent } from './reports-dhcs-bloodlead-screening/reports-dhcs-bloodlead-screening.component';\r\nimport { ReportsPayForValueManualComponent } from './reports-pay-for-value-manual/reports-pay-for-value-manual.component';\r\nimport { AttestationBloodleadScreeningComponent } from './attestation/attestation-bloodlead-screening/attestation-bloodlead-screening.component';\r\nimport { AttestationHomeComponent } from './attestation/attestation-home/attestation-home.component';\r\nimport { AttestationTypeComponent } from './attestation/attestation-type/attestation-type.component';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\nimport { AttestationDialogComponent } from './attestation/attestation-bloodlead-screening/attestation-dialog/attestation-dialog.component';\r\nimport { DialogModule } from 'primeng/dialog';\r\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\r\nimport { ReportsBHPayForValueComponent } from './reports-BH-pay-for-value/reports-bh-pay-for-value.component';\r\nimport { ReportsTinSearchComponent } from '../app-components/reports-tin-search/reports-tin-search.component';\r\nimport { ReportsAWPComponent } from './reports-awp/reports-awp.component';\r\nimport { AWPProviderComponent } from './reports-awp/awp-provider/awp-provider.component';\r\nimport { AWPMemberComponent } from './reports-awp/awp-member/awp-member.component';\r\nimport { ReportsHIFComponent } from './reports-hif/reports-hif.component';\r\nimport { HIFProviderComponent } from './reports-hif/hif-provider/hif-provider.component';\r\nimport { HIFMemberComponent } from './reports-hif/hif-member/hif-member.component';\r\nimport { ReportsBHIComponent } from './reports-bhi/reports-bhi.component';\r\nimport { AttestationBHIDialogComponent } from './attestation/attestation-bhi/attestationbhi-dialog.component';\r\nimport { ReportsBHABAReferralsComponent } from './reports-bhaba-referrals/reports-bhaba-referrals.component';\r\nimport { AttestationProviderTrainingComponent } from './attestation/attestation-provider-training/attestation-provider-training.component';\r\nimport { AttestationProviderTrainingDialogComponent } from './attestation/attestation-provider-training/attestation-provider-training-dialog/attestation-provider-training-dialog.component';\r\nimport { AttestationProviderTrainingAnnualComponent } from './attestation/attestation-provider-training/attestation-provider-training-annual/attestation-provider-training-annual.component';\r\nimport { AttestationProviderTrainingIndividualComponent } from './attestation/attestation-provider-training/attestation-provider-training-individual/attestation-provider-training-individual.component';\r\nimport { AttestationBhAbaReferralsProviderComponent } from './attestation/attestation-bh-aba-referrals/attestation-bh-aba-referrals-provider/attestation-bh-aba-referrals-provider.component';\r\nimport { AttestationBhAbaReferralsMemberComponent } from './attestation/attestation-bh-aba-referrals/attestation-bh-aba-referrals-member/attestation-bh-aba-referrals-member.component';\r\nimport { AttestationBhAbaReferralsComponent } from './attestation/attestation-bh-aba-referrals/attestation-bh-aba-referrals.component';\r\nimport { AttestationBhAbaReferralsDialogComponent } from './attestation/attestation-bh-aba-referrals/attestation-bh-aba-referrals-dialog/attestation-bh-aba-referrals-dialog.component';\r\nimport { ReportWellnessAttachmentDialogComponent } from './reports-awp/awp-dialogs/report-wellness-attachment-dialog/report-wellness-attachment-dialog.component';\r\nimport { ReportWellnessSurveyComponent } from './reports-awp/awp-components/report-wellness-survey/report-wellness-survey.component';\r\nimport { ReportWellnessAttachmentsComponent } from './reports-awp/awp-components/report-wellness-attachments/report-wellness-attachments.component';\r\nimport { ReportWellnessDetailsDialogComponent } from './reports-awp/awp-dialogs/report-wellness-details-dialog/report-wellness-details-dialog.component';\r\nimport { ReportWellnessDetailsComponent } from './reports-awp/awp-components/report-wellness-details/report-wellness-details.component';\r\nimport { ReportsPdcComponent } from './reports-pdc/reports-pdc.component';\r\nimport { ReportsProviderMemberRosterComponent } from './reports-provider-member-roster/reports-provider-member-roster.component';\r\nimport { ReportsRosterProviderComponent } from './reports-provider-member-roster/reports-roster-provider/reports-roster-provider.component';\r\nimport { ReportsRosterMemberComponent } from './reports-provider-member-roster/reports-roster-member/reports-roster-member.component';\r\nimport { ReportsRosterMenuComponent } from './reports-provider-member-roster/reports-roster-menu/reports-roster-menu.component';\r\nimport { ReportsRosterMemberDialogComponent } from './reports-provider-member-roster/reports-roster-member-dialog/reports-roster-member-dialog.component';\r\nimport { CalendarModule } from 'primeng/calendar';\r\nimport { PdcHealthNetworkComponent } from './reports-pdc/pdc-health-network/pdc-health-network.component';\r\nimport { PdcProviderComponent } from './reports-pdc/pdc-provider/pdc-provider.component';\r\nimport { PdcProviderSearchComponent } from './reports-pdc/pdc-provider-search/pdc-provider-search.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n routedComponents,\r\n ReportsHomeComponent,\r\n ReportsTypeComponent,\r\n ReportsPcpMemberRosterComponent,\r\n ReportsPcpMemberIHAComponent,\r\n ReportsBHABAReferralsComponent,\r\n ReportsBHIComponent,\r\n ReportsMemberEligibilityRosterComponent,\r\n ReportsPayForValueComponent,\r\n ReportsBloodleadScreeningComponent,\r\n ReportsPcpAttestationComponent,\r\n PcpAttestationProviderComponent,\r\n PcpAttestationMemberComponent,\r\n ReportsTinSearchComponent,\r\n ReportsMemberSearchComponent,\r\n ReportsDHCSBloodleadScreeningComponent,\r\n ReportsPayForValueManualComponent,\r\n AttestationBloodleadScreeningComponent,\r\n AttestationProviderTrainingComponent,\r\n AttestationProviderTrainingDialogComponent,\r\n AttestationProviderTrainingAnnualComponent,\r\n AttestationProviderTrainingIndividualComponent,\r\n AttestationHomeComponent,\r\n AttestationTypeComponent,\r\n AttestationDialogComponent,\r\n AttestationBHIDialogComponent,\r\n ReportsBHPayForValueComponent,\r\n ReportsAWPComponent,\r\n AWPProviderComponent,\r\n AWPMemberComponent,\r\n ReportsHIFComponent,\r\n HIFProviderComponent,\r\n HIFMemberComponent,\r\n ReportsPdcComponent,\r\n PdcHealthNetworkComponent,\r\n PdcProviderComponent,\r\n PdcProviderSearchComponent,\r\n ReportWellnessDetailsComponent,\r\n ReportWellnessAttachmentsComponent,\r\n ReportWellnessDetailsDialogComponent,\r\n ReportWellnessSurveyComponent,\r\n ReportWellnessAttachmentDialogComponent,\r\n AttestationBhAbaReferralsComponent,\r\n AttestationBhAbaReferralsProviderComponent,\r\n AttestationBhAbaReferralsMemberComponent, \r\n AttestationBhAbaReferralsDialogComponent,\r\n ReportsProviderMemberRosterComponent,\r\n ReportsRosterProviderComponent,\r\n ReportsRosterMemberComponent,\r\n ReportsRosterMenuComponent,\r\n ReportsRosterMemberDialogComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n ReportsRoutingModule,\r\n AppComponentsModule,\r\n ToastModule,\r\n TableModule,\r\n FormsModule,\r\n PanelModule,\r\n TooltipModule,\r\n DropdownModule,\r\n RadioButtonModule,\r\n TabViewModule,\r\n CheckboxModule,\r\n DialogModule,\r\n ConfirmDialogModule,\r\n FileUploadModule,\r\n DialogModule,\r\n CalendarModule\r\n ]\r\n})\r\nexport class ReportsModule { }\r\n"],"mappings":"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","names":["ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ReportsTypeComponent","constructor","router","route","sessionService","paramsviaState","isInternalUser","getCurrentNavigation","extras","state","showDHCSBLS","lastdate","Date","valueOf","todayDate","now","showPDC","result","UiUtility","isNullUndefinedOrEmpty","currentUserPermission","healthNetworkPlanCodes","ngOnInit","currentPermission","isEnterpriseAdmin","isEnterpriseUser","extractStateParam","params","subscribe","value","onChange","navigate","reportType","redirectToAttestation","onContinue","rname","reportName","isNullOrUndefined","ɵɵdirectiveInject","Router","ActivatedRoute","SessionService","selectors","inputs","decls","vars","consts","template","rf","ctx","ɵɵtwoWayListener","$event","i0","ɵɵtwoWayBindingSet","ɵɵlistener","ɵɵtemplate","ReportsTypeComponent_option_14_Template","ɵɵadvance","ɵɵtwoWayProperty","ɵɵproperty","ReportsHomeComponent","constructor","ngOnInit","selectors","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵtext","ɵɵadvance","ɵɵproperty","import_file_saver","ɵɵelementStart","ɵɵelement","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵclassMap","ctx_r1","sortClass","ɵɵtwoWayListener","$event","ɵɵrestoreView","_r8","ctx_r7","ɵɵnextContext","i0","ɵɵtwoWayBindingSet","selectedCalProviderID","ɵɵresetView","ɵɵlistener","row_r6","$implicit","ctx_r9","onProviderSelected","ɵɵproperty","calProviderID","ɵɵtwoWayProperty","ctx_r2","ɵɵtextInterpolate","name","groupName","ɵɵpropertyInterpolate","ctx_r3","attestationMessage","ɵɵtextInterpolate1","ctx_r4","displayText","_r11","ctx_r10","selectedFile","ctx_r12","onBuildReport","ctx_r5","fileList","enableBuildReport","ReportsBloodleadScreeningComponent","constructor","sessionService","reportsService","datePipe","router","document","providers","displayProviders","sortColumn","sortAscending","searchProviderId","searchProviderName","ngOnInit","currentPermission","isEnterpriseAdmin","isEnterpriseUser","getProvidersWithAttestationForReports","providerCollectionID","collectionName","ReportType","BLS","subscribe","result","totalRecords","length","slice","param","onSort","column","cls","onPage","e","s","JSON","stringify","sort","data1","data2","value1","field","value2","localeCompare","order","provider","selectedCalProvider","getReportFilesForProvider","forEach","x","push","label","transform","yearMonth","value","UiUtility","scrollDown","providerDetail","find","temp","fileName","filePath","fileType","split","pop","downloadReportFileForProvider","saveAsFile","buffer","data","Blob","type","saveAs","isAdminUser","onSearch","search","providerName","providerId","providerTin","searchProvidersWithAttestationForReports","isNullUndefinedOrEmpty","filter","p","taxId","toLowerCase","indexOf","trim","scrollToNext","el","getElementsByClassName","scrollTop","scrollHeight","ɵɵdirectiveInject","SessionService","ReportsService","DatePipe","Router","DOCUMENT","selectors","decls","vars","consts","template","rf","ctx","ɵɵtemplate","ReportsBloodleadScreeningComponent_ng_template_10_Template","ReportsBloodleadScreeningComponent_ng_template_11_Template","ReportsBloodleadScreeningComponent_div_12_Template","ReportsBloodleadScreeningComponent_div_13_Template","ReportsBloodleadScreeningComponent_div_14_Template","attestationStatus","import_file_saver","ReportsMemberEligibilityRosterComponent","constructor","sessionService","collectionService","reportsService","ngOnInit","onBuildReport","saveAsFile","buffer","fileName","fileType","data","Blob","type","saveAs","ɵɵdirectiveInject","SessionService","CollectionService","ReportsService","selectors","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵtext","ɵɵadvance","ɵɵproperty","import_file_saver","ɵɵelementStart","ɵɵelement","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵclassMap","ctx_r1","sortClass","ɵɵtwoWayListener","$event","ɵɵrestoreView","_r7","ctx_r6","ɵɵnextContext","i0","ɵɵtwoWayBindingSet","selectedCalProviderID","ɵɵresetView","ɵɵlistener","row_r5","$implicit","ctx_r8","onProviderSelected","ɵɵproperty","calProviderID","ɵɵtwoWayProperty","ctx_r2","ɵɵtextInterpolate","name","groupName","ɵɵtextInterpolate1","ctx_r3","displayText","_r10","ctx_r9","selectedFile","ctx_r11","onBuildReport","ctx_r4","fileList","enableBuildReport","ReportsPayForValueComponent","constructor","sessionService","reportsService","datePipe","document","providers","displayProviders","sortColumn","sortAscending","searchProviderId","searchProviderName","ngOnInit","currentPermission","isEnterpriseAdmin","isEnterpriseUser","getProvidersForReports","providerCollectionID","ReportType","P4V","subscribe","result","totalRecords","length","slice","param","onSort","column","cls","onPage","e","s","JSON","stringify","sort","data1","data2","value1","field","value2","localeCompare","order","provider","getReportFilesForProvider","forEach","x","push","label","transform","yearMonth","value","UiUtility","scrollDown","providerDetail","find","temp","fileName","downloadReportFileForProvider","saveAsFile","buffer","fileType","data","Blob","type","saveAs","onSearch","search","providerName","providerId","providerTin","searchProvidersForReports","isNullUndefinedOrEmpty","filter","p","taxId","toLowerCase","indexOf","trim","ɵɵdirectiveInject","SessionService","ReportsService","DatePipe","DOCUMENT","selectors","decls","vars","consts","template","rf","ctx","ɵɵtemplate","ReportsPayForValueComponent_ng_template_10_Template","ReportsPayForValueComponent_ng_template_11_Template","ReportsPayForValueComponent_div_12_Template","ReportsPayForValueComponent_div_13_Template","import_file_saver","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵlistener","$event","ɵɵrestoreView","_r7","ctx_r6","ɵɵnextContext","ɵɵresetView","onSearch","ɵɵtext","ɵɵadvance","ɵɵclassMap","ctx_r3","sortClass","stopPropagation","ɵɵproperty","row_r8","ɵɵtextInterpolate","name","calProviderID","pcpMemberCount","groupName","ɵɵtextInterpolate1","ctx_r10","threshold","ɵɵtemplate","ReportsPcpMemberRosterComponent_ng_template_10_span_3_Template","_r12","ctx_r11","onBuildReport","ctx_r5","totalCount","showThresholdAlert","enableBuildReport","selected","length","ReportsPcpMemberRosterComponent","constructor","sessionService","collectionService","reportsService","providers","sortColumn","sortAscending","ngOnInit","getProvidersForPCPMemberRoster","currentPermission","providerCollectionID","subscribe","result","param","onSort","providerIds","forEach","x","push","downloadMemberPcpRosterUsingProviderIds","saveAsFile","buffer","fileName","fileType","data","Blob","type","saveAs","column","cls","e","sort","data1","data2","value1","field","value2","localeCompare","order","IsEnterpriseUser","isEnterpriseAdmin","isEnterpriseUser","search","searchProvidersForPCPMemberRoster","providerId","providerName","providerTin","ɵɵdirectiveInject","SessionService","CollectionService","ReportsService","selectors","decls","vars","consts","template","rf","ctx","ReportsPcpMemberRosterComponent_div_3_Template","ReportsPcpMemberRosterComponent_div_4_Template","ɵɵtwoWayListener","i0","ɵɵtwoWayBindingSet","ReportsPcpMemberRosterComponent_ng_template_8_Template","ReportsPcpMemberRosterComponent_ng_template_9_Template","ReportsPcpMemberRosterComponent_ng_template_10_Template","ɵɵtwoWayProperty","import_file_saver","ReportsMemberSearchComponent","constructor","searchLabel","idLabel","instructionLabel","onMemberSearch","EventEmitter","ngOnInit","findMembers","emit","memberName","memberId","resetSearchFilters","setLabel","instructionlabel","id","search","selectors","outputs","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵlistener","ɵɵtext","ɵɵelementEnd","ɵɵtwoWayListener","$event","i0","ɵɵtwoWayBindingSet","ɵɵadvance","ɵɵtextInterpolate","ɵɵtwoWayProperty","ɵɵtextInterpolate1","ɵɵelementStart","ɵɵelement","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵclassMap","ctx_r2","sortClass","ɵɵtwoWayListener","$event","ɵɵrestoreView","_r8","ctx_r7","ɵɵnextContext","i0","ɵɵtwoWayBindingSet","selectedCin","ɵɵresetView","ɵɵlistener","row_r6","$implicit","ctx_r9","onMemberSelected","ɵɵproperty","cin","ɵɵtwoWayProperty","ctx_r3","ɵɵtextInterpolate","memberName","providerId","ɵɵtextInterpolate1","ctx_r4","displayText","_r11","ctx_r10","selectedFile","ctx_r12","onBuildReport","ctx_r5","fileList","enableBuildReport","PcpAttestationMemberComponent","constructor","reportsService","sessionService","datePipe","document","members","displayMembers","ngOnInit","collectionId","currentPermission","providerCollectionID","initialize","setProviderId","calProviderId","resetComponent","sortColumn","sortAscending","searchCin","searchName","memberSearch","resetSearchFilters","UiUtility","isNullUndefinedOrEmpty","getMembersForReports","ReportType","PCPDocAttest","subscribe","result","totalRecords","length","slice","param","onSort","column","cls","onPage","e","s","JSON","stringify","sort","data1","data2","value1","field","value2","localeCompare","order","member","getReportFilesForMember","forEach","x","push","label","transform","yearMonth","value","scrollDown","memeberDetail","find","temp","fileName","downloadReportFileForMember","saveAsFile","buffer","fileType","data","Blob","type","saveAs","onMemberSearch","search","searchMembersForReports","memberId","include","trim","toUpperCase","includes","medsId","mbi","ɵɵdirectiveInject","ReportsService","SessionService","DatePipe","DOCUMENT","selectors","viewQuery","rf","ctx","ɵɵtemplate","PcpAttestationMemberComponent_ng_template_7_Template","PcpAttestationMemberComponent_ng_template_8_Template","PcpAttestationMemberComponent_div_9_Template","PcpAttestationMemberComponent_div_10_Template","ɵɵelement","ɵɵclassMap","ctx_r7","sortClass","col_r6","field","ɵɵelementStart","ɵɵtext","ɵɵtemplate","PcpAttestationProviderComponent_ng_template_7_th_1_div_2_Template","ɵɵelementEnd","classHeader","ɵɵpropertyInterpolate","width","ɵɵadvance","ɵɵtextInterpolate1","header","ɵɵproperty","sort","PcpAttestationProviderComponent_ng_template_7_th_1_Template","ctx_r1","columns","ɵɵtwoWayListener","$event","ɵɵrestoreView","_r15","ctx_r14","ɵɵnextContext","i0","ɵɵtwoWayBindingSet","selectedCalProviderID","ɵɵresetView","ɵɵlistener","provider_r9","$implicit","ctx_r16","onProviderSelected","calProviderID","ɵɵtwoWayProperty","ctx_r12","ɵɵtextInterpolate","col_r11","PcpAttestationProviderComponent_ng_template_8_td_1_div_1_Template","PcpAttestationProviderComponent_ng_template_8_td_1_div_2_Template","classContent","PcpAttestationProviderComponent_ng_template_8_td_1_Template","ctx_r2","_r22","ctx_r21","backToProvider","ctx_r3","selectedProvider","name","PcpAttestationProviderComponent","constructor","reportsService","sessionService","providers","displayedProviders","rowsPerPage","pageNumber","animationState","displayMembers","ngOnInit","initialize","resetComponent","sortColumn","providerSearch","resetSearchFilters","currentPermission","isEnterpriseAdmin","isEnterpriseUser","getProvidersForReports","providerCollectionID","ReportType","PCPDocAttest","subscribe","result","onProviderSearch","param","onSort","column","cls","sortAscending","onPage","e","s","JSON","stringify","data1","data2","value1","value2","localeCompare","order","provider","memberComponent","setProviderId","search","providerName","providerId","providerTin","searchProvidersForReports","slice","UiUtility","isNullUndefinedOrEmpty","filter","p","taxId","toLowerCase","indexOf","trim","setPagedData","page","totalRecords","length","start","end","ɵɵdirectiveInject","ReportsService","SessionService","selectors","viewQuery","rf","ctx","PcpAttestationProviderComponent_ng_template_7_Template","PcpAttestationProviderComponent_ng_template_8_Template","PcpAttestationProviderComponent_div_10_Template","trigger","state","style","opacity","transform","display","transition","animate","ɵɵtext","ɵɵtextInterpolate1","ctx_r1","getTabName","ɵɵelement","ctx_r5","ɵɵelementStart","ɵɵtemplate","ReportsPcpAttestationComponent_p_tabPanel_11_ng_template_1_Template","ReportsPcpAttestationComponent_p_tabPanel_11_ng_template_2_Template","ɵɵelementEnd","ɵɵproperty","ctx_r3","ReportsPcpAttestationComponent","constructor","confirmationService","elementRef","displayConfirmContinue","activeindex","tabs","index","id","label","enable","ngOnInit","ngAfterViewInit","setPcpReportAttestationTabs","canViewTab","currentTab","find","tab","getTabIndex","name","onTabChanged","e","tabview","activeIndex","handleChange","selectedIndex","currentIndex","stopPropagation","confirm","header","message","key","accept","providerComponent","initialize","memberComponent","setProviderId","reject","tabView","nativeElement","querySelector","UiUtility","SetTabsWidthDynamically","querySelectorAll","forEach","element","currentChild","firstChild","tabName","innerText","tabIndex","trim","newDiv","window","document","createElement","addEventListener","bind","style","cursor","appendChild","remove","confirmContinue","event","ɵɵdirectiveInject","ConfirmationService","ElementRef","selectors","viewQuery","rf","ctx","ReportsPcpAttestationComponent_ng_template_9_Template","ReportsPcpAttestationComponent_ng_template_10_Template","ReportsPcpAttestationComponent_p_tabPanel_11_Template","ɵɵadvance","import_file_saver","ɵɵelementStart","ɵɵelement","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵclassMap","ctx_r1","sortClass","ɵɵtwoWayListener","$event","ɵɵrestoreView","_r7","ctx_r6","ɵɵnextContext","i0","ɵɵtwoWayBindingSet","selectedCalProviderID","ɵɵresetView","ɵɵlistener","row_r5","$implicit","ctx_r8","onProviderSelected","ɵɵproperty","calProviderID","ɵɵtwoWayProperty","ctx_r2","ɵɵtextInterpolate","name","groupName","ɵɵtextInterpolate1","ctx_r3","displayText","_r10","ctx_r9","selectedFile","ctx_r11","onBuildReport","ctx_r4","fileList","enableBuildReport","ReportsDHCSBloodleadScreeningComponent","constructor","sessionService","reportsService","datePipe","document","providers","displayProviders","sortColumn","sortAscending","searchProviderId","searchProviderName","ngOnInit","currentPermission","isEnterpriseAdmin","isEnterpriseUser","getProvidersForReports","providerCollectionID","ReportType","DHCS_BLS","subscribe","result","totalRecords","length","slice","param","onSort","column","cls","onPage","e","s","JSON","stringify","sort","data1","data2","value1","field","value2","localeCompare","order","provider","getReportFilesForProvider","forEach","x","push","label","transform","yearMonth","value","UiUtility","scrollDown","providerDetail","find","temp","fileName","filePath","fileType","split","pop","downloadReportFileForProvider","saveAsFile","buffer","data","Blob","type","saveAs","onSearch","search","providerName","providerId","providerTin","searchProvidersForReports","isNullUndefinedOrEmpty","filter","p","taxId","toLowerCase","indexOf","trim","scrollToNext","el","getElementsByClassName","scrollTop","scrollHeight","ɵɵdirectiveInject","SessionService","ReportsService","DatePipe","DOCUMENT","selectors","decls","vars","consts","template","rf","ctx","ɵɵtemplate","ReportsDHCSBloodleadScreeningComponent_ng_template_10_Template","ReportsDHCSBloodleadScreeningComponent_ng_template_11_Template","ReportsDHCSBloodleadScreeningComponent_div_12_Template","ReportsDHCSBloodleadScreeningComponent_div_13_Template","import_file_saver","ɵɵelementStart","ɵɵtwoWayListener","$event","ɵɵrestoreView","_r3","ctx_r2","ɵɵnextContext","i0","ɵɵtwoWayBindingSet","selectedFile","ɵɵresetView","ɵɵelementEnd","ɵɵlistener","ctx_r4","onBuildReport","ɵɵtext","ɵɵadvance","ɵɵproperty","ctx_r0","fileList","ɵɵtwoWayProperty","enableBuildReport","ReportsPayForValueManualComponent","constructor","sessionService","reportsService","datePipe","document","ngOnInit","onShowPeriod","getReportFilesForProvider","ReportType","P4V_Manual","subscribe","result","forEach","x","push","label","transform","yearMonth","value","length","UiUtility","scrollDown","temp","fileName","downloadReportFileForProvider","saveAsFile","buffer","fileType","data","Blob","type","saveAs","ɵɵdirectiveInject","SessionService","ReportsService","DatePipe","DOCUMENT","selectors","decls","vars","consts","template","rf","ctx","ɵɵelement","ɵɵtemplate","ReportsPayForValueManualComponent_div_6_Template","ReportsPayForValueManualComponent_div_7_Template","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","AttestationTypeComponent","constructor","router","route","sessionService","reportsService","appConfig","showProviderTrainingAttestation","paramsviaState","getCurrentNavigation","extras","state","ngOnInit","extractStateParam","params","subscribe","value","getConfig","trim","toLowerCase","attestationType","isAdmin","accessProviderTrainingAttestation","currentPermission","providerCollectionID","result","isEnterpriseAdmin","isEnterpriseUser","onChange","navigate","onContinue","rname","UiUtility","isNullOrUndefined","ɵɵdirectiveInject","Router","ActivatedRoute","SessionService","ReportsService","AppConfig","selectors","inputs","decls","vars","consts","template","rf","ctx","ɵɵtwoWayListener","$event","i0","ɵɵtwoWayBindingSet","ɵɵlistener","ɵɵtemplate","AttestationTypeComponent_option_10_Template","ɵɵadvance","ɵɵtwoWayProperty","ɵɵproperty","AttestationHomeComponent","constructor","ngOnInit","selectors","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵtext","ɵɵadvance","ɵɵproperty","AttestationStatus","ATTESTATION_VERSION","AttestationDialogComponent","constructor","submitAttestation","EventEmitter","cancelAttestation","iagree","ngOnInit","onSubmit","emit","onCancel","display","value","selectors","inputs","fullname","outputs","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtwoWayListener","$event","i0","ɵɵtwoWayBindingSet","ɵɵtext","ɵɵelementEnd","ɵɵelement","ɵɵlistener","ɵɵtwoWayProperty","ɵɵproperty","ɵɵadvance","ɵɵpropertyInterpolate","ɵɵelementStart","ɵɵelement","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵclassMap","ctx_r1","sortClass","ɵɵtextInterpolate","ctx_r9","attestationStatusDisplay","row_r8","attestationStatus","ctx_r10","ctx_r11","ɵɵtwoWayListener","$event","ɵɵrestoreView","_r16","ctx_r15","ɵɵnextContext","i0","ɵɵtwoWayBindingSet","selectedCalProviderID","ɵɵresetView","ɵɵlistener","$implicit","ctx_r17","onProviderSelected","ɵɵtemplate","AttestationBloodleadScreeningComponent_ng_template_11_div_13_Template","AttestationBloodleadScreeningComponent_ng_template_11_div_14_Template","AttestationBloodleadScreeningComponent_ng_template_11_div_15_Template","ɵɵpropertyInterpolate","calProviderID","ɵɵtwoWayProperty","ctx_r2","name","taxId","ɵɵproperty","ɵɵtextInterpolate1","ctx_r3","displayText","_r23","ctx_r22","overAllCheckUnCheck","ctx_r21","AttestationBloodleadScreeningComponent_div_13_ng_template_3_p_checkbox_2_Template","ctx_r19","anyAttestationAvailableToSelect","visibleAttest","_r31","row_r24","hasChecked","attestationId","ctx_r26","ctx_r27","ctx_r28","AttestationBloodleadScreeningComponent_div_13_ng_template_4_p_checkbox_2_Template","AttestationBloodleadScreeningComponent_div_13_ng_template_4_div_10_Template","AttestationBloodleadScreeningComponent_div_13_ng_template_4_div_11_Template","AttestationBloodleadScreeningComponent_div_13_ng_template_4_div_12_Template","ctx_r20","measurementPeriodDisplay","reportPeriodDisplay","ɵɵpipeBind2","attestationDueDate","_r37","ctx_r36","onSort","AttestationBloodleadScreeningComponent_div_13_ng_template_3_Template","AttestationBloodleadScreeningComponent_div_13_ng_template_4_Template","ctx_r4","attestationList","_r39","ctx_r38","onAttest","ctx_r6","enableAttest","_r42","ctx_r41","onSubmitAttestation","ctx_r43","onCancelAttestation","ctx_r7","userFullName","AttestationBloodleadScreeningComponent","constructor","sessionService","reportsService","outhService","datePipe","authenticationService","portalConfig","document","providers","displayProviders","sortColumn","sortAscending","searchProviderId","searchProviderName","selectedProviderID","ngOnInit","userEmail","claims","getIdentityClaims","findUsers","ClientId","subscribe","users","length","userProfile","selectedProvider","loadProviders","currentPermission","isEnterpriseAdmin","isEnterpriseUser","getProvidersWithAttestationForReports","providerCollectionID","collectionName","ReportType","BLS","result","filter","x","AttestationStatus","NotAvailable","totalRecords","slice","param","column","cls","onPage","e","s","JSON","stringify","sort","data1","data2","value1","field","value2","localeCompare","order","provider","overAllCheckUnCheckValue","getAttestationListForProvider","forEach","item","getReportPeriodDisplay","reportPeriod","getMeasurementPeriodDisplay","PastDue","Pending","providerDetail","find","onSearch","search","providerName","providerId","searchProvidersWithAttestationForReports","providerTin","UiUtility","isNullUndefinedOrEmpty","p","toLowerCase","indexOf","trim","Attested","quarter","substring","year","month","numMonth","Number","numYear","toString","showAttestation","event","list","attestationDetail","attestationName","userID","attestationEmail","email","attestationPhone","mobilePhone","attestationVersion","ApplyAttestation","firstName","lastName","value","ɵɵdirectiveInject","SessionService","ReportsService","OAuthService","DatePipe","AuthenticationService","PortalConfig","DOCUMENT","selectors","decls","vars","consts","template","rf","ctx","AttestationBloodleadScreeningComponent_ng_template_10_Template","AttestationBloodleadScreeningComponent_ng_template_11_Template","AttestationBloodleadScreeningComponent_div_12_Template","AttestationBloodleadScreeningComponent_div_13_Template","AttestationBloodleadScreeningComponent_div_14_Template","AttestationBloodleadScreeningComponent_div_15_Template","AttestationBloodleadScreeningComponent_attestation_dialog_16_Template","import_file_saver","ReportsTinSearchComponent","constructor","onProviderSearch","EventEmitter","ngOnInit","findProviders","emit","providerId","resetSearchFilters","nameLabel","dialogType","idLabel","requiredName","selectors","inputs","outputs","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵlistener","ɵɵtext","ɵɵelementEnd","ɵɵtwoWayListener","$event","i0","ɵɵtwoWayBindingSet","ɵɵadvance","ɵɵtextInterpolate","ɵɵtwoWayProperty","ɵɵelementStart","ɵɵelement","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵclassMap","ctx_r1","sortClass","ɵɵtwoWayListener","$event","ɵɵrestoreView","_r8","ctx_r7","ɵɵnextContext","i0","ɵɵtwoWayBindingSet","selectedtaxid","ɵɵresetView","ɵɵlistener","row_r5","$implicit","ctx_r9","onTaxSelected","ɵɵproperty","providerTaxId","ɵɵtwoWayProperty","ctx_r6","ɵɵtemplate","ReportsBHPayForValueComponent_ng_template_11_p_radioButton_2_Template","ɵɵtextInterpolate","providerTaxName","ɵɵtextInterpolate1","ctx_r3","displayText","_r13","ctx_r12","selectedFile","ctx_r14","onBuildReport","ctx_r4","fileList","enableBuildReport","ReportsBHPayForValueComponent","constructor","sessionService","reportsService","datePipe","document","taxes","displaytaxes","sortColumn","sortAscending","searchTaxId","searchTaxName","ngOnInit","currentPermission","isEnterpriseAdmin","isEnterpriseUser","getTaxesForReports","providerCollectionID","ReportType","BHP4V","subscribe","result","totalRecords","length","slice","fixDisplayTaxes","param","onSort","norecordfound","ProviderTaxDetails","push","column","cls","onPage","e","s","JSON","stringify","sort","data1","data2","value1","field","value2","localeCompare","order","provider","getReportFilesForTax","forEach","x","label","transform","yearMonth","value","UiUtility","scrollDown","taxdetails","find","temp","fileName","downloadReportFileForProvider","saveAsFile","buffer","fileType","data","Blob","type","saveAs","onSearch","search","providerId","searchTaxForReports","isNullUndefinedOrEmpty","filter","p","toLowerCase","indexOf","trim","ɵɵdirectiveInject","SessionService","ReportsService","DatePipe","DOCUMENT","selectors","decls","vars","consts","template","rf","ctx","ReportsBHPayForValueComponent_ng_template_10_Template","ReportsBHPayForValueComponent_ng_template_11_Template","ReportsBHPayForValueComponent_div_12_Template","ReportsBHPayForValueComponent_div_13_Template","import_file_saver","WellnessDetails","WellnessDetailsOtherDiagnosis","import_file_saver","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵtwoWayListener","$event","screen_r11","ɵɵrestoreView","_r15","$implicit","i0","ɵɵtwoWayBindingSet","screening","ɵɵresetView","ɵɵlistener","ctx_r16","ɵɵnextContext","completionDate","onChange","status","ctx_r18","ɵɵtemplate","ReportWellnessDetailsComponent_div_57_span_11_Template","ɵɵadvance","ɵɵpropertyInterpolate1","ɵɵtwoWayProperty","ɵɵproperty","ɵɵpipeBind2","ctx_r1","screeningStatusList","diag_r19","_r21","description","diagCode","ctx_r24","ctx_r3","diagnosisStatusList","diag_r25","_r27","ctx_r30","ctx_r5","diag_r31","_r33","ctx_r36","ctx_r37","removeDiagnosis","ɵɵelement","index","ctx_r7","statusList","ɵɵtextInterpolate1","ctx_r9","additionalComments","length","_r39","ctx_r38","diagnosisAdded","ctx_r40","diagnosisCancelled","ctx_r10","wellnessDetails","otherDiagnosis","ReportWellnessDetailsComponent","constructor","busyService","onItemChange","EventEmitter","chronicDiagnosis","nonChronicDiagnosis","showAddDiagnosis","ngOnInit","push","label","value","LoadData","ngOnDestroy","diagnosisReCaptured","forEach","diag","isChronic","trim","toUpperCase","x","val","notes","showData","JSON","stringify","temp","WellnessDetailsOtherDiagnosis","name","id","documentId","memberCin","selectedMember","cin","emit","getAddress","providerDetail","address1","address2","city","state","zipCode","dateOfService","$value","indexOf","splice","onAddDiagnostic","maxIndex","ɵɵdirectiveInject","BusyService","selectors","inputs","selectedMemberAWPStatus","memberDetail","outputs","decls","vars","consts","template","rf","ctx","ReportWellnessDetailsComponent_div_57_Template","ReportWellnessDetailsComponent_span_71_Template","ReportWellnessDetailsComponent_div_73_Template","ReportWellnessDetailsComponent_span_87_Template","ReportWellnessDetailsComponent_div_89_Template","ReportWellnessDetailsComponent_span_103_Template","ReportWellnessDetailsComponent_div_107_Template","ReportWellnessDetailsComponent_div_119_Template","ReportWellnessDetailsComponent_span_121_Template","ReportWellnessDetailsComponent_add_diagnosis_dialog_122_Template","memberCIN","memberDOB","providerName","import_file_saver","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵtext","ɵɵlistener","ɵɵrestoreView","_r18","file_r6","ɵɵnextContext","$implicit","ctx_r16","ɵɵresetView","onDownload","name","ɵɵadvance","ɵɵtextInterpolate","ɵɵtextInterpolate1","_r22","ctx_r21","onRemove2","event","ɵɵtemplate","ReportWellnessAttachmentsComponent_ng_template_6_ul_1_li_1_div_2_Template","ReportWellnessAttachmentsComponent_ng_template_6_ul_1_li_1_div_3_Template","ReportWellnessAttachmentsComponent_ng_template_6_ul_1_li_1_div_4_Template","ReportWellnessAttachmentsComponent_ng_template_6_ul_1_li_1_div_5_Template","ReportWellnessAttachmentsComponent_ng_template_6_ul_1_li_1_div_6_Template","ReportWellnessAttachmentsComponent_ng_template_6_ul_1_li_1_div_7_Template","ReportWellnessAttachmentsComponent_ng_template_6_ul_1_li_1_div_8_Template","ReportWellnessAttachmentsComponent_ng_template_6_ul_1_li_1_div_9_Template","ReportWellnessAttachmentsComponent_ng_template_6_ul_1_li_1_div_15_Template","ɵɵproperty","ctx_r5","fileType","doesExists","fileSize","ɵɵpipeBind2","fileUploadDateTime","ReportWellnessAttachmentsComponent_ng_template_6_ul_1_li_1_Template","ctx_r4","attachments2","ReportWellnessAttachmentsComponent_ng_template_6_div_0_Template","ReportWellnessAttachmentsComponent_ng_template_6_ul_1_Template","ctx_r1","length","ReportWellnessAttachmentsComponent","constructor","busyService","fileService","onFileAdded","EventEmitter","onFileRemoved","attachmentProgress","maxUploadFilesSupported2","totalFilesSize","maxFileNameLength","attachmentError","ngOnInit","ngOnDestroy","setAttachments","attachments","setTimeout","fileUpload2","files","onSelect","totalSize","filesRemove","hasUploadError","validate","index","validFiles","removeOnError","addedFiles","moreThanMaxfiles","file","findDuplicateInCurrentList","msgs","push","detail","severity","summary","wellnessFileList","find","x","originalFileName","trim","toUpperCase","isWellnessForm","getFileName","test","size","i","remove","emit","enableUpload","indexOf","hasUploadError2","fileName","item","created","toString","newFile","newFileName","temp","formatSize","item1","bytes","k","dm","sizes","Math","floor","log","parseFloat","pow","toFixed","split","pop","toLowerCase","filename","getWellnessAttachmentFile","wellnessAttachmentID","subscribe","result","bytesArray","UiUtility","convertBase64ToArrayBuffer","fileStreamData","saveAsFile","fileContentType","buffer","data","Blob","type","saveAs","ɵɵdirectiveInject","BusyService","FileService","selectors","viewQuery","rf","ctx","$event","ReportWellnessAttachmentsComponent_ng_template_6_Template","ReportWellnessAttachmentsComponent_div_9_Template","ɵɵpropertyInterpolate","ɵɵelementStart","ɵɵlistener","$event","ɵɵrestoreView","_r9","ctx_r8","ɵɵnextContext","ɵɵresetView","onChangeType","type","ɵɵtwoWayListener","wellnessSurvey_r1","$implicit","i0","ɵɵtwoWayBindingSet","answer","ɵɵelementEnd","ɵɵadvance","ɵɵpropertyInterpolate1","id","ɵɵpropertyInterpolate","item_r7","ɵɵtwoWayProperty","ɵɵtemplate","ReportWellnessSurveyComponent_div_5_div_5_div_1_span_1_Template","ɵɵproperty","options","_r17","ctx_r16","item_r15","ReportWellnessSurveyComponent_div_5_div_5_div_2_div_1_Template","ReportWellnessSurveyComponent_div_5_div_5_div_1_Template","ReportWellnessSurveyComponent_div_5_div_5_div_2_Template","align","_r29","checkedAnswer","ctx_r30","checkvalue","item_r26","ReportWellnessSurveyComponent_div_5_div_6_div_1_span_1_Template","_r38","ctx_r39","item_r35","ReportWellnessSurveyComponent_div_5_div_6_div_2_div_1_Template","ReportWellnessSurveyComponent_div_5_div_6_div_1_Template","ReportWellnessSurveyComponent_div_5_div_6_div_2_Template","ɵɵtext","ReportWellnessSurveyComponent_div_5_div_5_Template","ReportWellnessSurveyComponent_div_5_div_6_Template","ɵɵtextInterpolate","question","ReportWellnessSurveyComponent","constructor","wellnessSurveys","onItemChange","EventEmitter","ngOnInit","optionList","item","wellnessSurvey","checked","forEach","x","trim","toUpperCase","includes","push","endsWith","slice","length","emit","event","selectors","inputs","outputs","decls","vars","consts","template","rf","ctx","ReportWellnessSurveyComponent_div_5_Template","ɵɵelementStart","ɵɵlistener","$event","ɵɵrestoreView","_r9","ctx_r8","ɵɵnextContext","ɵɵresetView","onWellnessFormChanges","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ctx_r0","selectedMemberAWPStatus","selectedMember","wellnessDetails","providerDetail","memberDetail","_r12","ctx_r11","fileAdded","ctx_r13","fileRemoved","ctx_r1","wellnessFileList","_r16","ctx_r15","ctx_r2","wellnessSurveys","ɵɵtext","ɵɵelement","ctx_r17","validationerror","errorMessage","ɵɵtemplate","ReportWellnessDetailsDialogComponent_div_6_app_alert_danger_1_Template","ctx_r4","hasUploadError2","_r20","ctx_r19","onSkip","_r22","ctx_r21","onPrintToPdf","ReportWellnessDetailsDialogComponent","constructor","reportService","fileService","memberService","collectionService","busyService","oauth","cancelWellness","EventEmitter","applyWellness","currentView","attachmentProgress","attachments2","maxUploadFilesSupported2","totalFilesSize","maxFileNameLength","isLoaded","wellnessFormChanged","wellnessAttachmentChanged","isskipped","ngOnInit","LoadData","forkJoin","getWellnessAttachment","cin","selectedProvider","calProviderID","taxId","period","getReportWellnessDetails","documentId","getReportWellnessSurvey","providerId","grgr_ck","providerTaxId","ReportType","AWV","GetProvider2","subscribe","result","length","forEach","x","content","data","Blob","type","arrayOfBlob","push","tempFile","File","originalFileName","isWellnessForm","claims","getIdentityClaims","currentUser","error","emit","ngOnDestroy","event","display","value","onCancel","onCancelWellness","setTimeout","wellnessattachmentcomponent","setAttachments","diagnosisReCaptured","status","otherDiagnosis","splice","screening","completionDate","additionalComments","notes","dateOfService","onSaveAndContinueLater","fixDates","modifiedBy","ApplyWellness2Save","ApplyWellnessSurveyAnswers","wellnessYear","uploadWellnessForm","performWellnessFormValidation","toString","trim","toUpperCase","element","isChronic","alertDangerComponent","contentMessage","setContentMessages","performAttachmentValidation","fileExists","onApplyWellness","Date","ApplyWellness2","isFromSubmit","wellnessFormExits","find","downloadAWPDetailPdf","wellnessForm","uploadSupportingDocuments","formData","getFormData","uploadWellnessAttachments","getSubmitButtonText","getCancelButtonText","getHeaderText","memberName","wellnessFormFileName","fileName","pcpId","memberCIN","getNewWellnessFormFileName","temp","iloop","doesExists","doesExists2","mainWellnessFormFile","wellnessFormFiles","fileToUpload","FormData","wellnewFile","name","totalSize","Array","from","map","file","index","size","append","saveAs","isSubmitted","ɵɵdirectiveInject","ReportsService","FileService","MemberInfoService","CollectionService","BusyService","OAuthService","selectors","viewQuery","rf","ctx","ɵɵtwoWayListener","i0","ɵɵtwoWayBindingSet","ReportWellnessDetailsDialogComponent_div_1_Template","ReportWellnessDetailsDialogComponent_div_2_Template","ReportWellnessDetailsDialogComponent_div_3_Template","ReportWellnessDetailsDialogComponent_div_5_Template","ReportWellnessDetailsDialogComponent_div_6_Template","ReportWellnessDetailsDialogComponent_button_8_Template","ReportWellnessDetailsDialogComponent_button_9_Template","ɵɵstyleMap","ɵɵpureFunction0","_c4","ɵɵpropertyInterpolate","ɵɵtwoWayProperty","ɵɵtextInterpolate","import_file_saver","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵtext","ɵɵlistener","ɵɵrestoreView","_r21","file_r9","ɵɵnextContext","$implicit","ctx_r19","ɵɵresetView","onDownload","name","ɵɵadvance","ɵɵtextInterpolate","ɵɵtextInterpolate1","_r25","ctx_r24","onRemove1","event","ɵɵtemplate","ReportWellnessAttachmentDialogComponent_div_1_ng_template_5_ul_1_li_1_div_2_Template","ReportWellnessAttachmentDialogComponent_div_1_ng_template_5_ul_1_li_1_div_3_Template","ReportWellnessAttachmentDialogComponent_div_1_ng_template_5_ul_1_li_1_div_4_Template","ReportWellnessAttachmentDialogComponent_div_1_ng_template_5_ul_1_li_1_div_5_Template","ReportWellnessAttachmentDialogComponent_div_1_ng_template_5_ul_1_li_1_div_6_Template","ReportWellnessAttachmentDialogComponent_div_1_ng_template_5_ul_1_li_1_div_7_Template","ReportWellnessAttachmentDialogComponent_div_1_ng_template_5_ul_1_li_1_div_8_Template","ReportWellnessAttachmentDialogComponent_div_1_ng_template_5_ul_1_li_1_div_9_Template","ReportWellnessAttachmentDialogComponent_div_1_ng_template_5_ul_1_li_1_div_12_Template","ɵɵproperty","ctx_r8","fileType","doesExists","fileSize","ReportWellnessAttachmentDialogComponent_div_1_ng_template_5_ul_1_li_1_Template","ctx_r7","attachments1","ReportWellnessAttachmentDialogComponent_div_1_ng_template_5_div_0_Template","ReportWellnessAttachmentDialogComponent_div_1_ng_template_5_ul_1_Template","ctx_r3","length","ɵɵtwoWayListener","$event","_r29","ctx_r28","i0","ɵɵtwoWayBindingSet","selectedMemberAWPStatus","notes","ɵɵtwoWayProperty","ctx_r4","_r32","ctx_r31","ctx_r5","_r34","ctx_r33","onSelect1","ReportWellnessAttachmentDialogComponent_div_1_ng_template_5_Template","ReportWellnessAttachmentDialogComponent_div_1_div_6_Template","ReportWellnessAttachmentDialogComponent_div_1_div_7_Template","ɵɵpropertyInterpolate","ctx_r0","maxUploadFilesSupported1","enableUpload","editComment","_r53","file_r41","ctx_r51","_r57","ctx_r56","onRemove2","ReportWellnessAttachmentDialogComponent_div_2_ng_template_5_ul_1_li_1_div_2_Template","ReportWellnessAttachmentDialogComponent_div_2_ng_template_5_ul_1_li_1_div_3_Template","ReportWellnessAttachmentDialogComponent_div_2_ng_template_5_ul_1_li_1_div_4_Template","ReportWellnessAttachmentDialogComponent_div_2_ng_template_5_ul_1_li_1_div_5_Template","ReportWellnessAttachmentDialogComponent_div_2_ng_template_5_ul_1_li_1_div_6_Template","ReportWellnessAttachmentDialogComponent_div_2_ng_template_5_ul_1_li_1_div_7_Template","ReportWellnessAttachmentDialogComponent_div_2_ng_template_5_ul_1_li_1_div_8_Template","ReportWellnessAttachmentDialogComponent_div_2_ng_template_5_ul_1_li_1_div_9_Template","ReportWellnessAttachmentDialogComponent_div_2_ng_template_5_ul_1_li_1_div_12_Template","ctx_r40","ReportWellnessAttachmentDialogComponent_div_2_ng_template_5_ul_1_li_1_Template","ctx_r39","attachments2","ReportWellnessAttachmentDialogComponent_div_2_ng_template_5_div_0_Template","ReportWellnessAttachmentDialogComponent_div_2_ng_template_5_ul_1_Template","ctx_r36","_r60","ctx_r59","onSelect2","ReportWellnessAttachmentDialogComponent_div_2_ng_template_5_Template","ReportWellnessAttachmentDialogComponent_div_2_div_8_Template","ctx_r1","maxUploadFilesSupported2","attachmentError","ReportWellnessAttachmentDialogComponent","constructor","collectionService","busyService","fileService","reportService","currentView","totalFilesSize","maxFileNameLength","attachmentProgress","cancelWellness","EventEmitter","applyWellness","ngOnInit","getWellnessAttachment","selectedMember","cin","providerId","providerTaxId","period","subscribe","results","wellnessFileList","forEach","x","content","data","Blob","type","arrayOfBlob","push","tempFile","File","originalFileName","isWellnessForm","fileUpload1","files","ngOnDestroy","ngAfterViewInit","display","caption","value","onCancel","emit","onContinue","setTimeout","fileUpload2","wellnessDetails","WellnessDetails","grgr_ck","memberCIN","pcpId","pcpTIN","wellnessYear","documentId","completionDate","Date","status","ApplyWellness","formData","getFormData","uploadWellnessAttachments","error","submitText","hasUploadError1","onSelect","hasUploadError2","filename","temp","find","trim","toUpperCase","getWellnessAttachmentFile","wellnessAttachmentID","result","bytesArray","UiUtility","convertBase64ToArrayBuffer","fileStreamData","saveAsFile","fileContentType","buffer","fileName","saveAs","fileUpload","attachments","maxUploadFilesSupported","totalSize","filesRemove","hasUploadError","validate","index","validFiles","removeOnError","addedFiles","duplicateAdded","moreThanMaxfiles","newFiles","Array","from","file","findDuplicateInCurrentList","msgs","detail","severity","summary","findDuplicateInOtherList","getFileName","test","size","i","remove","indexOf","findDuplicate","filter","newFile","newFileName","item","formatSize","item1","bytes","k","dm","sizes","Math","floor","log","parseFloat","pow","toFixed","split","pop","toLowerCase","enableSubmit","currentYear","returnValue","getFullYear","getMonth","wellnessFormFiles","fileToUpload","wellnessFormAttached","element","FormData","map","append","toString","ɵɵdirectiveInject","CollectionService","BusyService","FileService","ReportsService","selectors","viewQuery","rf","ctx","ReportWellnessAttachmentDialogComponent_div_1_Template","ReportWellnessAttachmentDialogComponent_div_2_Template","ɵɵelementStart","ɵɵelement","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵclassMap","ctx_r1","sortClass","ɵɵtextInterpolate","row_r7","status","ɵɵtwoWayListener","$event","ɵɵrestoreView","_r13","ctx_r12","ɵɵnextContext","i0","ɵɵtwoWayBindingSet","selectedCin","ɵɵresetView","ɵɵlistener","$implicit","ctx_r14","onMemberSelected","ɵɵtemplate","AWPMemberComponent_ng_template_7_div_13_Template","AWPMemberComponent_ng_template_7_div_14_Template","ɵɵproperty","cin","ɵɵtwoWayProperty","ctx_r2","memberName","providerId","ɵɵtextInterpolate1","ctx_r3","displayText","row_r18","ctx_r20","pendingCaption","AWPMemberComponent_div_9_ng_template_4_div_8_Template","AWPMemberComponent_div_9_ng_template_4_div_9_Template","_r24","ctx_r23","download","ctx_r25","upload","period","signed","ctx_r17","downloadCaption","uploadCaption","_r27","ctx_r26","onSort","AWPMemberComponent_div_9_ng_template_3_Template","AWPMemberComponent_div_9_ng_template_4_Template","ctx_r4","awpList","_r30","ctx_r29","onApplyWellness","ctx_r31","onCancelWellness","ctx_r5","selectedMemberAWPStatus","selectedMember","_r34","ctx_r33","ctx_r35","ctx_r6","selectedProvider","AWPMemberComponent","constructor","reportsService","sessionService","collectionService","datePipe","busyService","document","members","displayMembers","first","ngOnInit","collectionId","currentPermission","providerCollectionID","userFullName","fromProviderTab","initialize","ngAfterViewInit","setProviderId","providerDetail","lastMemberSearch","lastSelectedMemberCin","resetComponent","sortColumn","sortAscending","searchCin","searchName","memberSearch","resetSearchFilters","getMembersForReportsAWP2","calProviderID","taxId","ReportType","AWV","subscribe","result","totalRecords","length","slice","param","lastselectedMember","find","x","column","cls","onPage","e","s","JSON","stringify","sort","data1","data2","value1","field","value2","localeCompare","order","member","getReportFilesForMemberAWP2","grgr_ck","providerTaxId","GetProvider2","prov","ProviderDetail","providerID","toString","calProviderId","name","providerName","memeberDetail","enableBuildReport","saveAsFile","buffer","fileName","fileType","data","Blob","type","saveAs","onMemberSearch","search","memberId","splice","items","medsId","mbi","push","searchMembersForReportsAWP2","awpDetail","isNewWellness","downloadUnansweredAWPDetailPdf","documentId","downloadReportFileForMember","downloadFileName","wellnessDetails","WellnessDetails","memberCIN","pcpTIN","wellnessYear","showAttachment","canShowAttachmentDialog","newWellnessForm","usedDocument","canShowDetailsDialog","temp","item","currentYear","Date","applicable","getFullYear","getMonth","trim","toUpperCase","ɵɵdirectiveInject","ReportsService","SessionService","CollectionService","DatePipe","BusyService","DOCUMENT","selectors","viewQuery","rf","ctx","AWPMemberComponent_ng_template_6_Template","AWPMemberComponent_ng_template_7_Template","AWPMemberComponent_div_8_Template","AWPMemberComponent_div_9_Template","AWPMemberComponent_report_wellness_attachment_dialog_10_Template","AWPMemberComponent_report_wellness_details_dialog_11_Template","ɵɵelement","ɵɵclassMap","ctx_r7","sortClass","col_r6","field","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵtemplate","AWPProviderComponent_div_1_ng_template_6_th_1_div_3_Template","classHeader","ɵɵpropertyInterpolate","width","ɵɵadvance","ɵɵtextInterpolate","header","ɵɵproperty","sort","AWPProviderComponent_div_1_ng_template_6_th_1_Template","ctx_r3","columns","ɵɵtwoWayListener","$event","ɵɵrestoreView","_r15","ctx_r14","ɵɵnextContext","i0","ɵɵtwoWayBindingSet","selectedCalProviderID","ɵɵresetView","ɵɵlistener","provider_r9","$implicit","ctx_r16","onProviderSelected","calProviderID","ɵɵtwoWayProperty","ctx_r12","col_r11","AWPProviderComponent_div_1_ng_template_7_td_1_div_1_Template","AWPProviderComponent_div_1_ng_template_7_td_1_div_2_Template","classContent","AWPProviderComponent_div_1_ng_template_7_td_1_Template","ctx_r4","_r22","ctx_r21","onProviderSearch","ctx_r23","onSort","AWPProviderComponent_div_1_ng_template_6_Template","AWPProviderComponent_div_1_ng_template_7_Template","ctx_r0","displayedProviders","_r27","ctx_r26","backToProvider","ctx_r24","selectedProvider","name","AWPProviderComponent_div_2_div_1_Template","ctx_r1","AWPProviderComponent","constructor","reportsService","sessionService","providers","rowsPerPage","pageNumber","animationState","displayMembers","ngOnInit","initialize","resetComponent","sortColumn","setTimeout","providerSearch","resetSearchFilters","currentPermission","isEnterpriseAdmin","isEnterpriseUser","getProvidersForReportsAWP","providerCollectionID","ReportType","AWV","subscribe","result","param","column","cls","sortAscending","onPage","e","s","JSON","stringify","data1","data2","value1","value2","localeCompare","order","provider","awpmemberComponent","setProviderId","search","providerName","providerId","providerTin","searchProvidersForReportsAWP","slice","UiUtility","isNullUndefinedOrEmpty","filter","p","taxId","toLowerCase","indexOf","trim","setPagedData","page","totalRecords","length","start","end","ɵɵdirectiveInject","ReportsService","SessionService","selectors","viewQuery","rf","ctx","AWPProviderComponent_div_1_Template","AWPProviderComponent_div_2_Template","ɵɵtext","ɵɵtextInterpolate1","ctx_r1","getTabName","ɵɵelement","ctx_r5","ɵɵelementStart","ɵɵtemplate","ReportsAWPComponent_p_tabPanel_11_ng_template_1_Template","ReportsAWPComponent_p_tabPanel_11_ng_template_2_Template","ɵɵelementEnd","ɵɵproperty","ctx_r3","ReportsAWPComponent","constructor","confirmationService","elementRef","displayConfirmContinue","activeindex","tabs","index","id","label","enable","ngOnInit","ngAfterViewInit","setPcpReportAttestationTabs","canViewTab","currentTab","find","tab","getTabIndex","name","onTabChanged","e","tabview","activeIndex","handleChange","selectedIndex","currentIndex","stopPropagation","confirm","header","message","key","accept","awpproviderComponent","initialize","awpmemberComponent","setProviderId","reject","tabView","nativeElement","querySelector","UiUtility","SetTabsWidthDynamically","querySelectorAll","forEach","element","currentChild","firstChild","anchorelement","tabName","innerText","tabIndex","trim","newDiv","window","document","createElement","addEventListener","bind","style","cursor","appendChild","remove","confirmContinue","event","ɵɵdirectiveInject","ConfirmationService","ElementRef","selectors","viewQuery","rf","ctx","ReportsAWPComponent_ng_template_9_Template","ReportsAWPComponent_ng_template_10_Template","ReportsAWPComponent_p_tabPanel_11_Template","ɵɵadvance","import_file_saver","import_file_saver","ɵɵelementStart","ɵɵtext","ɵɵelement","ɵɵelementEnd","ɵɵadvance","ɵɵclassMap","ctx_r2","sortClass","ɵɵlistener","row_r5","ɵɵrestoreView","_r7","$implicit","ctx_r6","ɵɵnextContext","ɵɵresetView","viewhif","ɵɵtextInterpolate","memberName","cin","providerId","_r10","ctx_r9","onCancelMemberHifData","ɵɵproperty","ctx_r4","selectedMember","HIFMemberComponent","constructor","reportsService","sessionService","datePipe","busyService","document","members","displayMembers","ngOnInit","collectionId","currentPermission","providerCollectionID","userFullName","initialize","ngAfterViewInit","setProviderId","selectedCalProviderID","selectedProviderTaxId","awpList","calProviderId","providerTaxId","resetComponent","sortColumn","sortAscending","selectedCin","searchCin","searchName","memberSearch","resetSearchFilters","UiUtility","isNullUndefinedOrEmpty","getMembersForReportsHIF","ReportType","HIF","subscribe","result","totalRecords","length","slice","param","onSort","column","cls","onPage","e","s","JSON","stringify","sort","data1","data2","value1","field","value2","localeCompare","order","displayText","memeberDetail","find","x","enableBuildReport","saveAsFile","buffer","fileName","fileType","data","Blob","type","saveAs","onMemberSearch","search","searchMembersForReportsHIF","memberId","forEach","include","trim","toUpperCase","includes","mbi","medsId","console","log","push","reportMemberDetails","showHif","onDownloadList","downloadHifMemberList","ɵɵdirectiveInject","ReportsService","SessionService","DatePipe","BusyService","DOCUMENT","selectors","viewQuery","rf","ctx","$event","ɵɵtemplate","HIFMemberComponent_ng_template_7_Template","HIFMemberComponent_ng_template_8_Template","HIFMemberComponent_hif_member_data_dialog_12_Template","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵclassMap","ctx_r9","sortClass","col_r6","field","ɵɵtext","ɵɵtemplate","HIFProviderComponent_div_1_ng_template_6_th_1_div_2_div_2_Template","ɵɵadvance","ɵɵtextInterpolate1","header","ɵɵproperty","sort","HIFProviderComponent_div_1_ng_template_6_th_1_div_1_Template","HIFProviderComponent_div_1_ng_template_6_th_1_div_2_Template","classHeader","ɵɵpropertyInterpolate","width","HIFProviderComponent_div_1_ng_template_6_th_1_Template","ctx_r3","columns","ɵɵlistener","$event","stopPropagation","provider_r12","ɵɵrestoreView","_r22","ɵɵnextContext","$implicit","ctx_r20","ɵɵresetView","onProviderSelected","ɵɵtextInterpolate","col_r14","HIFProviderComponent_div_1_ng_template_7_td_1_div_1_Template","HIFProviderComponent_div_1_ng_template_7_td_1_div_2_Template","HIFProviderComponent_div_1_ng_template_7_td_1_div_3_Template","classContent","HIFProviderComponent_div_1_ng_template_7_td_1_Template","ctx_r4","_r28","ctx_r27","onProviderSearch","ɵɵtwoWayListener","ctx_r29","i0","ɵɵtwoWayBindingSet","selected","ctx_r30","onSort","HIFProviderComponent_div_1_ng_template_6_Template","HIFProviderComponent_div_1_ng_template_7_Template","ctx_r31","onDownloadList","ctx_r0","displayedProviders","ɵɵtwoWayProperty","length","_r35","ctx_r34","backToProvider","ctx_r32","selectedProvider","name","HIFProviderComponent_div_2_div_1_Template","ctx_r1","HIFProviderComponent","constructor","reportsService","sessionService","providers","rowsPerPage","pageNumber","animationState","displayMembers","ngOnInit","initialize","resetComponent","sortColumn","selectedCalProviderID","setTimeout","providerSearch","resetSearchFilters","currentPermission","isEnterpriseAdmin","isEnterpriseUser","getProvidersForReportsHIF","providerCollectionID","ReportType","HIF","subscribe","result","param","column","cls","sortAscending","onPage","e","s","JSON","stringify","data1","data2","value1","value2","localeCompare","order","provider","calProviderID","awpmemberComponent","setProviderId","taxId","search","providerName","providerId","providerTin","searchProvidersForReportsHIF","slice","UiUtility","isNullUndefinedOrEmpty","filter","p","toLowerCase","indexOf","trim","setPagedData","page","totalRecords","start","end","selectedProviderIds","forEach","x","push","downloadHifMemberList","saveAsFile","buffer","fileName","fileType","data","Blob","type","saveAs","ɵɵdirectiveInject","ReportsService","SessionService","selectors","viewQuery","rf","ctx","HIFProviderComponent_div_1_Template","HIFProviderComponent_div_2_Template","ɵɵtext","ɵɵtextInterpolate1","ctx_r1","getTabName","ɵɵelement","ctx_r5","ɵɵelementStart","ɵɵtemplate","ReportsHIFComponent_p_tabPanel_11_ng_template_1_Template","ReportsHIFComponent_p_tabPanel_11_ng_template_2_Template","ɵɵelementEnd","ɵɵproperty","ctx_r3","ReportsHIFComponent","constructor","confirmationService","elementRef","displayConfirmContinue","activeindex","tabs","index","id","label","enable","ngOnInit","ngAfterViewInit","setPcpReportAttestationTabs","canViewTab","currentTab","find","tab","getTabIndex","name","onTabChanged","e","tabview","activeIndex","handleChange","selectedIndex","currentIndex","stopPropagation","confirm","header","message","key","accept","hifproviderComponent","initialize","hifmemberComponent","setProviderId","reject","tabView","nativeElement","querySelector","UiUtility","SetTabsWidthDynamically","querySelectorAll","forEach","element","currentChild","firstChild","tabName","innerText","tabIndex","trim","newDiv","window","document","createElement","addEventListener","bind","style","cursor","appendChild","remove","confirmContinue","event","ɵɵdirectiveInject","ConfirmationService","ElementRef","selectors","viewQuery","rf","ctx","ReportsHIFComponent_ng_template_9_Template","ReportsHIFComponent_ng_template_10_Template","ReportsHIFComponent_p_tabPanel_11_Template","ɵɵadvance","import_file_saver","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵlistener","$event","ɵɵrestoreView","_r7","ctx_r6","ɵɵnextContext","ɵɵresetView","onSearch","ɵɵtext","ɵɵadvance","ɵɵclassMap","ctx_r3","sortClass","stopPropagation","ɵɵproperty","row_r8","ɵɵtextInterpolate","name","calProviderID","pcpMemberCount","groupName","ɵɵtextInterpolate1","ctx_r10","threshold","ɵɵtemplate","ReportsPcpMemberIHAComponent_ng_template_10_span_3_Template","_r12","ctx_r11","onBuildReport","ctx_r5","totalCount","showThresholdAlert","enableBuildReport","selected","length","ReportsPcpMemberIHAComponent","constructor","sessionService","collectionService","reportsService","providers","sortColumn","sortAscending","ngOnInit","getProvidersForIHA","currentPermission","providerCollectionID","subscribe","result","param","onSort","providerIds","forEach","x","push","downloadIHADueMembersUsingProviderIds","saveAsFile","buffer","fileName","fileType","data","Blob","type","saveAs","column","cls","e","sort","data1","data2","value1","field","value2","localeCompare","order","IsEnterpriseUser","isEnterpriseAdmin","isEnterpriseUser","search","searchProvidersForIHA","providerId","providerName","providerTin","ɵɵdirectiveInject","SessionService","CollectionService","ReportsService","selectors","decls","vars","consts","template","rf","ctx","ReportsPcpMemberIHAComponent_div_3_Template","ReportsPcpMemberIHAComponent_div_4_Template","ɵɵtwoWayListener","i0","ɵɵtwoWayBindingSet","ReportsPcpMemberIHAComponent_ng_template_8_Template","ReportsPcpMemberIHAComponent_ng_template_9_Template","ReportsPcpMemberIHAComponent_ng_template_10_Template","ɵɵtwoWayProperty","import_file_saver","ɵɵelement","ɵɵproperty","ctx_r1","validationMessage","ɵɵtemplate","AttestationBHIDialogComponent_ng_template_29_app_alert_danger_0_Template","ctx_r0","validationError","ATTESTATION_VERSION","AttestationBHIDialogComponent","constructor","outhService","authenticationService","portalConfig","reportsService","submitAttestation","EventEmitter","cancelAttestation","userEmail","iagree","ngOnInit","claims","getIdentityClaims","findUsers","ClientId","subscribe","users","length","userProfile","fullname","firstName","lastName","onSubmit","item","email","userID","mobilePhone","onSubmitAttestation","onCancel","emit","list","measurementPeriods","forEach","x","selected","attestionDetail","attestationDate","Date","attestationDueDate","attestationEmail","attestationName","attestationPhone","attestationStatus","AttestationStatus","Attested","attestationVersion","collectionName","selectedProvider","name","hasChecked","pcpId","calProviderID","pcpName","pcpTIN","taxId","reportAttestationID","reportPeriod","measurementPeriod","reportTypeCode","measurementPeriodDisplay","reportPeriodDisplay","push","ApplyAttestation","result","error","display","value","ɵɵdirectiveInject","OAuthService","AuthenticationService","PortalConfig","ReportsService","selectors","inputs","outputs","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtwoWayListener","$event","i0","ɵɵtwoWayBindingSet","ɵɵtext","ɵɵelementEnd","ɵɵlistener","AttestationBHIDialogComponent_ng_template_29_Template","ɵɵtwoWayProperty","ɵɵadvance","ɵɵpropertyInterpolate","ɵɵelementStart","ɵɵlistener","$event","ɵɵrestoreView","_r10","ctx_r9","ɵɵnextContext","ɵɵresetView","onSearch","ɵɵelementEnd","ɵɵelement","ɵɵtext","ɵɵadvance","ɵɵclassMap","ctx_r12","sortClass","ɵɵtwoWayListener","_r16","ctx_r15","i0","ɵɵtwoWayBindingSet","selectedCalProviderID","row_r14","$implicit","ctx_r17","onProviderSelected","ɵɵproperty","calProviderID","ɵɵtwoWayProperty","ctx_r13","ɵɵtextInterpolate","name","groupName","_r19","ctx_r18","onSort","ɵɵtemplate","ReportsBHIComponent_div_15_ng_template_3_Template","ReportsBHIComponent_div_15_ng_template_4_Template","ctx_r1","displayProviders","_r22","ctx_r21","onSearchPrescriber","ctx_r24","_r28","ctx_r27","row_r26","ctx_r29","ctx_r25","ɵɵpropertyInterpolate1","bhiPrescriberTaxID","ɵɵtextInterpolate1","length","substring","bhiPrescriberNPI","_r31","ctx_r30","ReportsBHIComponent_div_17_ng_template_3_Template","ReportsBHIComponent_div_17_ng_template_4_Template","ctx_r3","displayPrescribers","ctx_r4","displayText","_r36","ctx_r35","overAllCheckUnCheck","ctx_r33","row_r37","attestationStatus","_r45","selected","ReportsBHIComponent_div_19_ng_template_4_div_7_Template","ReportsBHIComponent_div_19_ng_template_4_div_8_Template","ReportsBHIComponent_div_19_ng_template_4_div_9_Template","ɵɵpropertyInterpolate","MeasurementPeriod","measurementPeriodDisplay","attestationDate","_r47","ctx_r46","ReportsBHIComponent_div_19_ng_template_3_Template","ReportsBHIComponent_div_19_ng_template_4_Template","ctx_r5","measurementPeriods","_r49","ctx_r48","onBuildReport","ctx_r6","enableBuildReport","_r52","ctx_r51","onSubmitAttestation","ctx_r53","onCancelAttestation","ctx_r7","selectedProvider","ReportsBHIComponent","constructor","sessionService","reportsService","datePipe","document","constants","providers","optionValue","sortColumn","sortAscending","searchProviderId","searchProviderName","ngOnInit","currentPermission","isEnterpriseAdmin","isEnterpriseUser","getProvidersForBHI","providerCollectionID","subscribe","result","totalRecords","slice","param","column","cls","onPage","e","s","JSON","stringify","sort","data1","data2","value1","field","value2","localeCompare","order","selectOption","reportsprovidersearchcomponent","setLabel","reportsprescribersearchcomponent","provider","getBHIMeasurementPeriods","forEach","x","year","measurementPeriod","month","periodDate","Date","parseInt","monthNames","currentDate","diff","valueOf","UiUtility","scrollDown","providerDetail","find","found","download","isInternalUser","items","push","downloadbhimembers","fileName","saveAsFile","showAttestation","buffer","fileType","data","Blob","type","saveAs","overAllCheckUnCheckValue","value","item","search","providerName","providerId","providerTin","searchProvidersForBHI","isNullUndefinedOrEmpty","filter","p","taxId","toLowerCase","indexOf","trim","memberId","searchPrescribersForBHI","candidate","bhiPrescriberList","prescriber","isNullOrUndefined","prescriberNPI","stringSeparator","prescriberTaxID","trimLastFromEnd","ɵɵdirectiveInject","SessionService","ReportsService","DatePipe","DOCUMENT","Constants","selectors","viewQuery","rf","ctx","ReportsBHIComponent_div_14_Template","ReportsBHIComponent_div_15_Template","ReportsBHIComponent_div_16_Template","ReportsBHIComponent_div_17_Template","ReportsBHIComponent_div_18_Template","ReportsBHIComponent_div_19_Template","ReportsBHIComponent_div_20_Template","ReportsBHIComponent_attestationbhi_dialog_21_Template","import_file_saver","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵlistener","$event","ɵɵrestoreView","_r7","ctx_r6","ɵɵnextContext","ɵɵresetView","onSearch","ɵɵtext","ɵɵadvance","ɵɵclassMap","ctx_r3","sortClass","stopPropagation","ɵɵproperty","row_r8","ɵɵtextInterpolate","name","calProviderID","groupName","ReportsBHABAReferralsComponent","constructor","sessionService","collectionService","reportsService","providers","selected","threshold","showThresholdAlert","sortColumn","sortAscending","enableBuildReport","ngOnInit","fileList","selectedFile","iLoop","d","Date","setMonth","getMonth","year","getFullYear","month","itemlabel","toString","length","itemValue","push","label","value","getProvidersForBHABAReferrals","currentPermission","providerCollectionID","subscribe","result","param","onSort","onBuildReport","providerIds","forEach","x","startDate","downloadBHABAReferrals","fileName","saveAsFile","buffer","fileType","data","Blob","type","saveAs","column","cls","e","sort","data1","data2","value1","field","value2","localeCompare","order","IsEnterpriseUser","isEnterpriseAdmin","isEnterpriseUser","search","searchProvidersForBHABAReferrals","providerId","providerName","providerTin","totalCount","pcpMemberCount","ɵɵdirectiveInject","SessionService","CollectionService","ReportsService","selectors","decls","vars","consts","template","rf","ctx","ɵɵtemplate","ReportsBHABAReferralsComponent_div_3_Template","ReportsBHABAReferralsComponent_div_4_Template","ɵɵtwoWayListener","i0","ɵɵtwoWayBindingSet","ReportsBHABAReferralsComponent_ng_template_8_Template","ReportsBHABAReferralsComponent_ng_template_9_Template","ReportsBHABAReferralsComponent_ng_template_10_Template","ɵɵtwoWayProperty","PendingCopy","text","_document","textarea","styles","successful","currentFocus","Clipboard","document","pendingCopy","ɵɵinject","DOCUMENT","ɵɵdefineInjectable","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ctx_r0","errorMessage","ɵɵtextInterpolate","ctx_r10","attendeesErrorMessage","ɵɵtemplate","AttestationProviderTrainingDialogComponent_div_9_span_3_Template","ɵɵtwoWayListener","$event","ɵɵrestoreView","_r12","ctx_r11","ɵɵnextContext","i0","ɵɵtwoWayBindingSet","attendees","ɵɵresetView","ɵɵlistener","ctx_r13","onKeyPress","AttestationProviderTrainingDialogComponent_div_9_div_6_Template","ɵɵproperty","ctx_r1","isPending","ɵɵtwoWayProperty","attendeesPlaceholder","ɵɵpureFunction1","_c0","attendeesInvalid","taxDetail","providerTaxId","ɵɵpipeBind2","attestationDate","trainingAttestationStatusDisplay","ctx_r15","ctx_r16","ctx_r17","ctx_r18","AttestationProviderTrainingDialogComponent_div_10_span_3_Template","_r20","ctx_r19","ctx_r21","AttestationProviderTrainingDialogComponent_div_10_div_6_Template","AttestationProviderTrainingDialogComponent_div_10_span_27_Template","AttestationProviderTrainingDialogComponent_div_10_span_28_Template","AttestationProviderTrainingDialogComponent_div_10_span_29_Template","ctx_r2","providerDetail","calProviderID","providerNPI","taxId","network_r22","networkName","AttestationProviderTrainingDialogComponent_div_16_div_1_Template","AttestationProviderTrainingDialogComponent_div_16_div_2_Template","rowNum","ɵɵelement","_r33","ctx_r32","resource_r27","$implicit","currentIndex_r28","index","ctx_r31","onAttestResource","ctx_r34","copyToClipboard","resourceSource","ɵɵpropertyInterpolate1","ɵɵpropertyInterpolate","resourceDesc","_r39","ctx_r38","ctx_r37","ctx_r40","AttestationProviderTrainingDialogComponent_div_34_div_1_Template","AttestationProviderTrainingDialogComponent_div_34_div_2_Template","resourceTrained","_r44","ctx_r43","onSubmit","ctx_r8","enableSubmitAttestation","AttestationProviderTrainingDialogComponent","trainingAttestationResources","length","UiUtility","isNullUndefinedOrEmpty","trim","find","r","undefined","attestationConfirmation","display","displayDialog","value","constructor","reportService","oAuthService","sessionService","messages","clipboard","providerTaxNetwork","headerTitle","attestationName","resourceGeneralMessage","resourceDetailMessage","attendeesRegex","onAttestationSubmission","EventEmitter","ngOnInit","claims","getIdentityClaims","currentUser","ngOnDestroy","providerTrainingAttestationSubscription","unsubscribe","onClose","emit","onShow","trainingCompleted","Error","providerName","providerTaxName","isEnterpriseAdmin","isEnterpriseUser","Date","name","getProviderTrainingAttestationDetail","subscribe","result","row","colCount","i","forEach","t","indexOf","providerResourcesID","toString","MessageGenericError","event","resource","preventDefault","width","document","documentElement","clientWidth","height","clientHeight","windowProps","setTimeout","window","open","onCancel","re","RegExp","isValidForm","request","attestationYear","getFullYear","trainingDueDate","push","providerIdOrTaxId","attestationBy","validationBy","applyProviderTrainingAttestationAnnual","p","trainingAttestationStatus","TrainingAttestationStatus","Submitted","error","console","log","applyProviderTrainingAttestationIndividual","onConfirmationChanged","successful","copy","valid","test","ɵɵdirectiveInject","ReportsService","OAuthService","SessionService","Messages","Clipboard","selectors","inputs","outputs","decls","vars","consts","template","rf","ctx","AttestationProviderTrainingDialogComponent_div_2_Template","AttestationProviderTrainingDialogComponent_div_9_Template","AttestationProviderTrainingDialogComponent_div_10_Template","AttestationProviderTrainingDialogComponent_div_16_Template","AttestationProviderTrainingDialogComponent_span_32_Template","AttestationProviderTrainingDialogComponent_div_34_Template","AttestationProviderTrainingDialogComponent_span_39_Template","AttestationProviderTrainingDialogComponent_span_48_Template","AttestationProviderTrainingDialogComponent_button_52_Template","ɵɵstyleMap","ɵɵpureFunction0","_c1","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ctx_r0","errorMessage","ɵɵtwoWayListener","$event","ɵɵrestoreView","_r15","ctx_r14","ɵɵnextContext","i0","ɵɵtwoWayBindingSet","selectedTin","ɵɵresetView","ɵɵlistener","row_r7","$implicit","ctx_r16","onTinSelected","ɵɵproperty","trainingAttestationId","ɵɵtwoWayProperty","ctx_r8","ɵɵtextInterpolate","providerTaxName","_r22","ctx_r20","trainingAttestationStatusDisplay","ɵɵtemplate","AttestationProviderTrainingAnnualComponent_div_4_ng_template_4_p_radioButton_2_Template","AttestationProviderTrainingAnnualComponent_div_4_ng_template_4_div_4_Template","AttestationProviderTrainingAnnualComponent_div_4_ng_template_4_div_5_Template","AttestationProviderTrainingAnnualComponent_div_4_ng_template_4_div_13_Template","AttestationProviderTrainingAnnualComponent_div_4_ng_template_4_div_14_Template","AttestationProviderTrainingAnnualComponent_div_4_ng_template_4_div_15_Template","_r28","ctx_r27","providerTaxId","ctx_r6","isEnterpriseUser","trainingDueDate","AttestationProviderTrainingAnnualComponent_div_4_ng_template_3_Template","AttestationProviderTrainingAnnualComponent_div_4_ng_template_4_Template","ctx_r1","displayTins","_r30","ctx_r29","onProcessAttestation","ctx_r3","selectedTaxDetail","AttestationProviderTrainingAnnualComponent","constructor","sessionService","reportService","messages","displayMessage","sortColumn","sortAscending","ngOnInit","currentPermission","isEnterpriseAdmin","currentCollectionId","providerCollectionID","searchProviders","ngOnDestroy","userCollectionSubscription","unsubscribe","sortClass","column","cls","onPage","e","s","JSON","stringify","onSort","tins","sort","data1","data2","value1","field","value2","result","localeCompare","order","onSearch","search","UiUtility","isNullUndefinedOrEmpty","providerId","filter","p","toLowerCase","indexOf","trim","slice","tin","isRadioButton","find","t","displayProviderAttestationTraining","event","attendees","length","collectionId","getProvidersForTrainingAttestationAnnual","subscribe","totalRecords","forEach","providerTrainingStatusMapping","trainingAttestationStatus","Date","getFullYear","toString","param","error","console","log","MessageGenericError","ɵɵdirectiveInject","SessionService","ReportsService","Messages","selectors","decls","vars","consts","template","rf","ctx","AttestationProviderTrainingAnnualComponent_div_3_Template","AttestationProviderTrainingAnnualComponent_div_4_Template","AttestationProviderTrainingAnnualComponent_div_5_Template","AttestationProviderTrainingAnnualComponent_app_attestation_provider_training_dialog_6_Template","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ctx_r0","errorMessage","ɵɵtwoWayListener","$event","ɵɵrestoreView","_r14","ctx_r13","ɵɵnextContext","i0","ɵɵtwoWayBindingSet","selectedCalProviderID","ɵɵresetView","ɵɵlistener","row_r6","$implicit","ctx_r15","onProviderSelected","ɵɵproperty","calProviderID","ɵɵtwoWayProperty","ctx_r7","ɵɵtextInterpolate","name","_r21","ctx_r19","trainingAttestationStatusDisplay","ɵɵtemplate","AttestationProviderTrainingIndividualComponent_ng_template_8_p_radioButton_2_Template","AttestationProviderTrainingIndividualComponent_ng_template_8_div_4_Template","AttestationProviderTrainingIndividualComponent_ng_template_8_div_5_Template","AttestationProviderTrainingIndividualComponent_ng_template_8_div_17_Template","AttestationProviderTrainingIndividualComponent_ng_template_8_div_18_Template","AttestationProviderTrainingIndividualComponent_ng_template_8_div_19_Template","_r27","ctx_r26","ctx_r3","isEnterpriseUser","taxId","ɵɵpipeBind2","trainingDueDate","_r29","ctx_r28","onProcessAttestation","ctx_r5","selectedProvider","AttestationProviderTrainingIndividualComponent","constructor","sessionService","reportService","messages","displayMessage","first","sortColumn","sortAscending","ngOnDestroy","userCollectionSubscription","unsubscribe","ngOnInit","currentPermission","isEnterpriseAdmin","currentCollectionId","providerCollectionID","searchProviders","sortClass","column","cls","onPage","e","s","JSON","stringify","onSort","displayProviders","sort","data1","data2","value1","field","value2","result","localeCompare","order","onSearch","search","selectedTin","providerName","providerId","providerTin","UiUtility","isNullUndefinedOrEmpty","providers","filter","p","toLowerCase","indexOf","trim","slice","param","provider","isRadioButton","displayProviderAttestationTraining","event","i","length","providerNPI","trainingAttestationStatus","TrainingAttestationStatus","Submitted","attestationDate","Date","attendees","collectionId","getProvidersForTrainingAttestationIndividual","subscribe","totalRecords","forEach","providerTrainingStatusMapping","getTime","error","console","log","MessageGenericError","ɵɵdirectiveInject","SessionService","ReportsService","Messages","selectors","decls","vars","consts","template","rf","ctx","AttestationProviderTrainingIndividualComponent_div_3_Template","AttestationProviderTrainingIndividualComponent_ng_template_7_Template","AttestationProviderTrainingIndividualComponent_ng_template_8_Template","AttestationProviderTrainingIndividualComponent_div_9_Template","AttestationProviderTrainingIndividualComponent_app_attestation_provider_training_dialog_10_Template","ɵɵtext","ɵɵtextInterpolate1","ctx_r1","getTabName","ɵɵelement","ctx_r4","ɵɵelementStart","ɵɵtemplate","AttestationProviderTrainingComponent_p_tabPanel_11_ng_template_1_Template","AttestationProviderTrainingComponent_p_tabPanel_11_ng_template_2_Template","ɵɵelementEnd","ɵɵproperty","ctx_r3","AttestationProviderTrainingComponent","constructor","sessionService","userAdminService","elementRef","activeindex","tabs","index","id","label","enable","ngOnInit","ngAfterViewInit","setPcpReportAttestationTabs","canViewTab","currentTab","find","tab","getTabIndex","name","onTabChanged","e","tabview","activeIndex","handleChange","selectedIndex","currentIndex","stopPropagation","tabView","nativeElement","querySelector","UiUtility","SetTabsWidthDynamically","querySelectorAll","forEach","element","currentChild","firstChild","tabElement","tabName","innerText","tabIndex","trim","newDiv","window","document","createElement","addEventListener","bind","style","cursor","appendChild","remove","ɵɵdirectiveInject","SessionService","UserAdminService","ElementRef","selectors","viewQuery","rf","ctx","AttestationProviderTrainingComponent_ng_template_9_Template","AttestationProviderTrainingComponent_ng_template_10_Template","AttestationProviderTrainingComponent_p_tabPanel_11_Template","ɵɵadvance","import_file_saver","BHABAReferralAttestation","BHABAReferralAttestationWithServices","BHABAReferralAttestation","constructor","services","ResourceRequest","httpOptions","headers","HttpHeaders","withCredentials","ResourcesService","constructor","oAuthService","http","portalConfig","appConfig","constants","sessionService","claims","getIdentityClaims","currentUser","baseProviderReportServiceUrl","getConfig","config$","subscribe","checkUrls","unsubscribe","baseUrl","bhabareferralinstructionUrl","getBHABAReferralAttestationResources","request","ResourceRequest","post","pipe","map","result","console","log","catchError","error","HttpResponseHelper","handleError","ɵɵinject","OAuthService","HttpClient","PortalConfig","AppConfig","Constants","SessionService","factory","ɵfac","providedIn","MinusIcon","BaseIcon","ɵMinusIcon_BaseFactory","t","ɵɵgetInheritedFactory","ɵɵdefineComponent","ɵɵInheritDefinitionFeature","ɵɵStandaloneFeature","rf","ctx","ɵɵnamespaceSVG","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵclassMap","ɵɵattribute","CommonModule","Panel_div_1_span_1_Template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ctx_r3","ɵɵnextContext","ɵɵattribute","ɵɵadvance","ɵɵtextInterpolate","Panel_div_1_ng_container_3_Template","ɵɵelementContainer","Panel_div_1_5_ng_template_0_Template","Panel_div_1_5_Template","ɵɵtemplate","Panel_div_1_button_6_ng_container_1_ng_container_1_span_1_Template","ɵɵelement","ctx_r12","ɵɵclassMap","ɵɵproperty","Panel_div_1_button_6_ng_container_1_ng_container_1_MinusIcon_2_Template","ctx_r13","Panel_div_1_button_6_ng_container_1_ng_container_1_Template","ɵɵelementContainerStart","ɵɵelementContainerEnd","ctx_r10","Panel_div_1_button_6_ng_container_1_ng_container_2_span_1_Template","ctx_r14","Panel_div_1_button_6_ng_container_1_ng_container_2_PlusIcon_2_Template","ctx_r15","Panel_div_1_button_6_ng_container_1_ng_container_2_Template","ctx_r11","Panel_div_1_button_6_ng_container_1_Template","ctx_r8","Panel_div_1_button_6_2_ng_template_0_Template","Panel_div_1_button_6_2_Template","_c0","a0","Panel_div_1_button_6_Template","_r18","ɵɵgetCurrentView","ɵɵlistener","$event","ɵɵrestoreView","ctx_r17","ɵɵresetView","ctx_r19","ctx_r6","ɵɵpureFunction1","_c1","a1","a2","Panel_div_1_Template","_r21","ctx_r20","ɵɵprojection","ctx_r0","ɵɵpureFunction3","Panel_ng_container_5_Template","Panel_div_6_ng_container_2_Template","Panel_div_6_Template","ctx_r2","_c2","_c3","_c4","_c5","_c6","_c7","_c8","Panel","EventEmitter","UniqueComponentId","el","item","event","ɵɵdirectiveInject","ElementRef","ɵɵdefineComponent","dirIndex","ɵɵcontentQuery","Footer","PrimeTemplate","_t","ɵɵqueryRefresh","ɵɵloadQuery","ɵɵprojectionDef","ɵɵpureFunction2","NgClass","NgIf","NgTemplateOutlet","NgStyle","Ripple","PlusIcon","MinusIcon","trigger","state","style","transition","animate","PanelModule","ɵɵdefineNgModule","ɵɵdefineInjector","CommonModule","SharedModule","RippleModule","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵtwoWayListener","$event","ds_r9","ɵɵrestoreView","_r11","$implicit","i0","ɵɵtwoWayBindingSet","directServiceCompleted","ɵɵresetView","ɵɵlistener","ctx_r12","ɵɵnextContext","onDirectServiceCompleted","ctx_r13","ɵɵadvance","ɵɵpropertyInterpolate1","autH_SVC_IDN","ɵɵproperty","procedurE_DESC","assigneD_UNITS","ɵɵpropertyInterpolate","ctx_r0","numberPattern","ɵɵtwoWayProperty","directServicePercentage","ɵɵtext","ɵɵtextInterpolate1","inst_r14","resourceDesc","resourceValue","ctx_r2","tooltip1","_r16","ctx_r15","bhabareferral","reason","ctx_r17","comment","ctx_r3","reasonList","inst_r18","AttestationBhAbaReferralsDialogComponent","constructor","reportService","resourceService","sessionService","cancelAttestation","EventEmitter","submitAttestation","reasonRequired","hasErrorDateofService","hasErrorReason","hasErrorProposedGoals","hasErrorCompletedGoals","errorMessage","ngOnInit","push","label","value","assessmentGoals","assessmentGoalsCompleted","assessmentGoalsRate","isNaN","Math","round","forkJoin","getBHABAReferralAttestationResources","getBHABAReferrals2","referralId","memberCIN","calProviderId","subscribe","result","length","resources","bhReferral2","instruction2","forEach","x","trim","startsWith","updateReasonRequired","display","onCancel","caption","emit","performValidation","toString","onAttest","data","BHABAReferralAttestationWithServices","attestationBy","currentPermission","secureAuthUserName","services","ApplyBHABAReferralAttestation","item","updateAssessmentRate","find","ɵɵdirectiveInject","ReportsService","ResourcesService","SessionService","selectors","inputs","outputs","decls","vars","consts","template","rf","ctx","ɵɵtemplate","AttestationBhAbaReferralsDialogComponent_div_39_Template","AttestationBhAbaReferralsDialogComponent_div_42_Template","AttestationBhAbaReferralsDialogComponent_div_43_Template","AttestationBhAbaReferralsDialogComponent_div_44_Template","AttestationBhAbaReferralsDialogComponent_div_64_Template","AttestationBhAbaReferralsDialogComponent_div_66_Template","AttestationBhAbaReferralsDialogComponent_div_67_Template","AttestationBhAbaReferralsDialogComponent_div_68_Template","AttestationBhAbaReferralsDialogComponent_div_69_Template","ɵɵtextInterpolate2","memberFirstName","memberLastName","ɵɵtextInterpolate","startDate","endDate","instruction1","attestationDate","ɵɵelementStart","ɵɵelement","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵclassMap","ctx_r1","sortClass","ɵɵtextInterpolate","row_r6","status","ɵɵtwoWayListener","$event","ɵɵrestoreView","_r12","ctx_r11","ɵɵnextContext","i0","ɵɵtwoWayBindingSet","selectedCin","ɵɵresetView","ɵɵlistener","$implicit","ctx_r13","onMemberSelected","ɵɵtemplate","AttestationBhAbaReferralsMemberComponent_ng_template_7_div_13_Template","AttestationBhAbaReferralsMemberComponent_ng_template_7_div_14_Template","ɵɵproperty","cin","ɵɵtwoWayProperty","ctx_r2","memberName","providerId","ɵɵtextInterpolate1","ctx_r3","displayText","row_r17","AttestationBhAbaReferralsMemberComponent_div_9_ng_template_4_div_5_Template","AttestationBhAbaReferralsMemberComponent_div_9_ng_template_4_div_6_Template","_r22","ctx_r21","showDialog","referralId","attestationDate","_r24","ctx_r23","onSort","AttestationBhAbaReferralsMemberComponent_div_9_ng_template_3_Template","AttestationBhAbaReferralsMemberComponent_div_9_ng_template_4_Template","ctx_r4","attestationList","_r27","ctx_r26","onCancel","ctx_r28","onSubmit","ctx_r5","selectedReferral","AttestationBhAbaReferralsMemberComponent","constructor","reportsService","sessionService","collectionService","datePipe","busyService","document","members","displayMembers","first","ngOnInit","collectionId","currentPermission","providerCollectionID","userFullName","fromProviderTab","initialize","ngAfterViewInit","setProviderId","providerDetail","selectedProvider","lastMemberSearch","lastSelectedMemberCin","resetComponent","sortColumn","sortAscending","searchCin","searchName","selectedMember","memberSearch","resetSearchFilters","getMembersForBHABAReferralAttestation","calProviderID","taxId","ReportType","AWV","subscribe","result","totalRecords","length","slice","param","lastselectedMember","find","x","column","cls","onPage","e","s","JSON","stringify","sort","data1","data2","value1","field","value2","localeCompare","order","member","getBHABAReferralAttestation","providerTaxId","GetProvider2","prov","ProviderDetail","providerID","toString","calProviderId","name","providerName","memeberDetail","enableBuildReport","saveAsFile","buffer","fileName","fileType","data","Blob","type","saveAs","onMemberSearch","search","memberId","splice","items","medsId","mbi","push","searchMembersForBHABAReferralAttestation","referral","showAttachment","temp","ɵɵdirectiveInject","ReportsService","SessionService","CollectionService","DatePipe","BusyService","DOCUMENT","selectors","viewQuery","rf","ctx","AttestationBhAbaReferralsMemberComponent_ng_template_6_Template","AttestationBhAbaReferralsMemberComponent_ng_template_7_Template","AttestationBhAbaReferralsMemberComponent_div_8_Template","AttestationBhAbaReferralsMemberComponent_div_9_Template","AttestationBhAbaReferralsMemberComponent_app_attestation_bh_aba_referrals_dialog_10_Template","ɵɵelement","ɵɵclassMap","ctx_r7","sortClass","col_r6","field","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵtemplate","AttestationBhAbaReferralsProviderComponent_div_1_ng_template_6_th_1_div_3_Template","classHeader","ɵɵpropertyInterpolate","width","ɵɵadvance","ɵɵtextInterpolate","header","ɵɵproperty","sort","AttestationBhAbaReferralsProviderComponent_div_1_ng_template_6_th_1_Template","ctx_r3","columns","ɵɵtwoWayListener","$event","ɵɵrestoreView","_r15","ctx_r14","ɵɵnextContext","i0","ɵɵtwoWayBindingSet","selectedCalProviderID","ɵɵresetView","ɵɵlistener","provider_r9","$implicit","ctx_r16","onProviderSelected","calProviderID","ɵɵtwoWayProperty","ctx_r12","col_r11","AttestationBhAbaReferralsProviderComponent_div_1_ng_template_7_td_1_div_1_Template","AttestationBhAbaReferralsProviderComponent_div_1_ng_template_7_td_1_div_2_Template","classContent","AttestationBhAbaReferralsProviderComponent_div_1_ng_template_7_td_1_Template","ctx_r4","_r22","ctx_r21","onProviderSearch","ctx_r23","onSort","AttestationBhAbaReferralsProviderComponent_div_1_ng_template_6_Template","AttestationBhAbaReferralsProviderComponent_div_1_ng_template_7_Template","ctx_r0","displayedProviders","_r27","ctx_r26","backToProvider","ctx_r24","selectedProvider","name","AttestationBhAbaReferralsProviderComponent_div_2_div_1_Template","ctx_r1","AttestationBhAbaReferralsProviderComponent","constructor","reportsService","sessionService","providers","rowsPerPage","pageNumber","animationState","displayMembers","ngOnInit","initialize","resetComponent","sortColumn","setTimeout","providerSearch","resetSearchFilters","currentPermission","isEnterpriseAdmin","isEnterpriseUser","getProvidersForBHABAReferralAttestation","providerCollectionID","ReportType","AWV","subscribe","result","param","column","cls","sortAscending","onPage","e","s","JSON","stringify","data1","data2","value1","value2","localeCompare","order","provider","awpmemberComponent","setProviderId","search","providerName","providerId","providerTin","searchProvidersForBHABAReferralAttestation","slice","UiUtility","isNullUndefinedOrEmpty","filter","p","taxId","toLowerCase","indexOf","trim","setPagedData","page","totalRecords","length","start","end","ɵɵdirectiveInject","ReportsService","SessionService","selectors","viewQuery","rf","ctx","AttestationBhAbaReferralsProviderComponent_div_1_Template","AttestationBhAbaReferralsProviderComponent_div_2_Template","ɵɵtext","ɵɵtextInterpolate1","ctx_r1","getTabName","ɵɵelement","ctx_r5","ɵɵelementStart","ɵɵtemplate","AttestationBhAbaReferralsComponent_p_tabPanel_11_ng_template_1_Template","AttestationBhAbaReferralsComponent_p_tabPanel_11_ng_template_2_Template","ɵɵelementEnd","ɵɵproperty","ctx_r3","AttestationBhAbaReferralsComponent","constructor","confirmationService","elementRef","displayConfirmContinue","activeindex","tabs","index","id","label","enable","ngOnInit","ngAfterViewInit","setPcpReportAttestationTabs","canViewTab","currentTab","find","tab","getTabIndex","name","onTabChanged","e","tabview","activeIndex","handleChange","selectedIndex","currentIndex","stopPropagation","confirm","header","message","key","accept","providerComponent","initialize","memberComponent","setProviderId","reject","tabView","nativeElement","querySelector","UiUtility","SetTabsWidthDynamically","querySelectorAll","forEach","element","currentChild","firstChild","anchorelement","tabName","innerText","tabIndex","trim","newDiv","window","document","createElement","addEventListener","bind","style","cursor","appendChild","remove","confirmContinue","event","ɵɵdirectiveInject","ConfirmationService","ElementRef","selectors","viewQuery","rf","ctx","AttestationBhAbaReferralsComponent_ng_template_9_Template","AttestationBhAbaReferralsComponent_ng_template_10_Template","AttestationBhAbaReferralsComponent_p_tabPanel_11_Template","ɵɵadvance","import_file_saver","ɵɵelement","ɵɵclassMap","ctx_r5","sortClass","col_r4","field","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵtemplate","PdcHealthNetworkComponent_ng_template_5_th_1_div_3_Template","classHeader","ɵɵpropertyInterpolate","width","ɵɵadvance","ɵɵtextInterpolate","header","ɵɵproperty","sort","PdcHealthNetworkComponent_ng_template_5_th_1_Template","ctx_r0","columns","ɵɵlistener","ɵɵrestoreView","_r14","row_r7","ɵɵnextContext","$implicit","ctx_r12","ɵɵresetView","onGetLatestExcel","col_r9","PdcHealthNetworkComponent_ng_template_6_td_1_div_1_Template","PdcHealthNetworkComponent_ng_template_6_td_1_div_2_Template","classContent","PdcHealthNetworkComponent_ng_template_6_td_1_Template","ctx_r1","PdcHealthNetworkComponent","constructor","reportsService","sessionService","displayMessage","rowsPerPage","pageNumber","ngOnDestroy","ngOnInit","loadData","onGetLatest","providerNetwork","isExcel","downloadHealthNetworkPlanPDCReport","networkId","subscribe","result","currentDate","Date","year","getFullYear","month","getMonth","toString","padStart","day","getDate","fileName","substring","saveAsFile","buffer","fileType","data","Blob","type","FileSaver","saveAs","column","cls","sortColumn","sortAscending","onPage","e","s","JSON","stringify","onSort","healthPlans","data1","data2","value1","value2","localeCompare","order","lazyLoadData","event","sortField","undefined","sortOrder","currentCollectionId","currentPermission","providerCollectionID","healthNetworkPlanCodes","getProviderHealthNetworkPlanForPDC","totalRecords","length","param","ɵɵdirectiveInject","ReportsService","SessionService","selectors","decls","vars","consts","template","rf","ctx","$event","PdcHealthNetworkComponent_ng_template_5_Template","PdcHealthNetworkComponent_ng_template_6_Template","PdcHealthNetworkComponent_div_7_Template","import_file_saver","PdcProviderSearchComponent","constructor","sessionService","providerName","providerNPI","providerTaxId","pdcProviderSearchOption","isInternalUser","onProviderFilterSearch","EventEmitter","onSelectionFilterChange","enableReset","UiUtility","isNullUndefinedOrEmpty","trim","disableProviderName","disableProviderNPI","disableProviderTaxId","ngOnInit","isEnterpriseAdmin","isEnterpriseUser","findProviders","reset","emit","selectionType","length","onSelectFilterSearch","event","onReset","ɵɵdirectiveInject","SessionService","selectors","outputs","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵlistener","ɵɵtwoWayListener","$event","i0","ɵɵtwoWayBindingSet","ɵɵelementEnd","ɵɵtext","ɵɵadvance","ɵɵtwoWayProperty","ɵɵpropertyInterpolate","ɵɵproperty","ɵɵelement","ɵɵclassMap","ctx_r6","sortClass","col_r5","field","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵtemplate","PdcProviderComponent_ng_template_7_th_1_div_3_Template","classHeader","ɵɵpropertyInterpolate","width","ɵɵadvance","ɵɵtextInterpolate","header","ɵɵproperty","sort","PdcProviderComponent_ng_template_7_th_1_Template","ctx_r0","columns","col_r10","classContent","row_r8","PdcProviderComponent_ng_template_8_td_1_Template","ctx_r1","ɵɵlistener","ɵɵrestoreView","_r13","ctx_r12","ɵɵnextContext","ɵɵresetView","onDownload","PdcProviderComponent","constructor","reportsService","sessionService","isInternalUser","displayMessage","providers","rowsPerPage","pageNumber","first","displayDownload","providerIds","providerNPIs","searchType","ngOnDestroy","ngOnInit","isEnterpriseAdmin","isEnterpriseUser","collectionName","currentPermission","onProviderSearch","selectionType","providerName","providerNPI","providerTaxId","isExcel","forEach","p","indexOf","calProviderID","push","downloadHealthNetworkPlanPDCReport","subscribe","result","currentDate","Date","year","getFullYear","month","getMonth","toString","padStart","day","getDate","fileName","saveAsFile","buffer","fileType","data","Blob","type","FileSaver","saveAs","column","cls","sortColumn","sortAscending","onPage","e","s","JSON","stringify","onSort","data1","data2","value1","value2","localeCompare","order","onSelectionFilterChange","event","currentCollectionId","providerCollectionID","getPDCReportForProviders","totalRecords","length","seenValues","Set","filter","item","value","has","add","size","param","ɵɵdirectiveInject","ReportsService","SessionService","selectors","decls","vars","consts","template","rf","ctx","$event","ɵɵtwoWayListener","i0","ɵɵtwoWayBindingSet","PdcProviderComponent_ng_template_7_Template","PdcProviderComponent_ng_template_8_Template","PdcProviderComponent_div_9_Template","PdcProviderComponent_div_10_Template","ɵɵtwoWayProperty","ɵɵtext","ɵɵtextInterpolate1","ctx_r1","getTabName","ɵɵelement","ctx_r4","ɵɵelementStart","ɵɵtemplate","ReportsPdcComponent_p_tabPanel_9_ng_template_1_Template","ReportsPdcComponent_p_tabPanel_9_ng_template_2_Template","ɵɵelementEnd","ɵɵproperty","ctx_r3","ReportsPdcComponent","constructor","elementRef","activeindex","tabs","index","id","label","enable","ngOnDestroy","ngOnInit","setPdcReportTabs","canViewTab","currentTab","find","tab","getTabIndex","name","onTabChanged","e","tabview","activeIndex","handleChange","selectedIndex","currentIndex","stopPropagation","tabView","nativeElement","querySelector","UiUtility","SetTabsWidthDynamically","querySelectorAll","forEach","element","currentChild","firstChild","tabName","innerText","tabIndex","trim","newDiv","window","document","createElement","addEventListener","bind","style","cursor","appendChild","remove","ɵɵdirectiveInject","ElementRef","selectors","viewQuery","rf","ctx","ReportsPdcComponent_ng_template_7_Template","ReportsPdcComponent_ng_template_8_Template","ReportsPdcComponent_p_tabPanel_9_Template","ɵɵadvance","ɵɵelement","ɵɵclassMap","ctx_r4","sortClass","col_r3","field","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵtemplate","ReportsRosterProviderComponent_ng_template_5_th_1_div_3_Template","classHeader","ɵɵpropertyInterpolate","width","ɵɵadvance","ɵɵtextInterpolate","header","ɵɵproperty","sort","ReportsRosterProviderComponent_ng_template_5_th_1_Template","ctx_r0","columns","ɵɵtwoWayListener","$event","ɵɵrestoreView","_r12","ctx_r11","ɵɵnextContext","i0","ɵɵtwoWayBindingSet","selectedCalProviderID","ɵɵresetView","ɵɵlistener","provider_r6","$implicit","ctx_r13","onProviderSelected","calProviderID","ɵɵtwoWayProperty","ctx_r9","col_r8","ReportsRosterProviderComponent_ng_template_6_td_1_div_1_Template","ReportsRosterProviderComponent_ng_template_6_td_1_div_2_Template","classContent","ReportsRosterProviderComponent_ng_template_6_td_1_Template","ctx_r1","ReportsRosterProviderComponent","constructor","sessionService","reportsService","selectedprovider","EventEmitter","providers","displayedProviders","rowsPerPage","pageNumber","animationState","ngOnInit","sortColumn","currentPermission","isEnterpriseAdmin","isEnterpriseUser","getProvidersForPCPMemberRoster","providerCollectionID","subscribe","result","onProviderSearch","param","onSort","column","cls","sortAscending","onPage","e","s","JSON","stringify","data1","data2","value1","value2","localeCompare","order","provider","emit","search","providerName","providerId","providerTin","searchProvidersForPCPMemberRoster","slice","UiUtility","isNullUndefinedOrEmpty","filter","p","taxId","toLowerCase","indexOf","trim","name","ɵɵdirectiveInject","SessionService","ReportsService","selectors","outputs","decls","vars","consts","template","rf","ctx","ReportsRosterProviderComponent_ng_template_5_Template","ReportsRosterProviderComponent_ng_template_6_Template","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r3","ctx_r2","ɵɵnextContext","ɵɵresetView","onView","ɵɵtext","ɵɵelementEnd","item_r5","_r7","$implicit","ctx_r6","itemclick","ɵɵadvance","ɵɵtextInterpolate","label","ɵɵtemplate","ReportsRosterMenuComponent_div_2_div_1_Template","ɵɵproperty","ctx_r1","menuItems","ReportsRosterMenuComponent","constructor","itemclicked","EventEmitter","visible","ngOnInit","menuCount","length","item","itemreturn","tag","emit","selectors","inputs","outputs","decls","vars","consts","template","rf","ctx","ReportsRosterMenuComponent_div_1_Template","ReportsRosterMenuComponent_div_2_Template","ReportsRosterMemberDialogComponent","constructor","memberService","onCancel","EventEmitter","display","ngOnInit","caption","member","lastName","firstName","cin","cancelClick","emit","ɵɵdirectiveInject","MemberInfoService","selectors","inputs","outputs","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtwoWayListener","$event","i0","ɵɵtwoWayBindingSet","ɵɵlistener","ɵɵelement","ɵɵelementEnd","ɵɵstyleMap","ɵɵpureFunction0","_c0","ɵɵpropertyInterpolate","ɵɵtwoWayProperty","ɵɵproperty","ɵɵelementStart","ɵɵtext","ɵɵelement","ɵɵelementEnd","ɵɵadvance","ɵɵclassMap","ctx_r1","sortClass","ɵɵlistener","$event","ɵɵrestoreView","_r9","ctx_r8","ɵɵnextContext","ɵɵresetView","itemclick","ɵɵtextInterpolate","row_r7","memberName","cin","rosterEffDate","ɵɵproperty","ctx_r2","menuItems","ctx_r3","successmessage","ctx_r4","errormessage","_r11","ctx_r10","cancelMemberDialog","ctx_r5","selectedMember","_r13","ctx_r12","continueDateDialog","ctx_r14","cancelDateDialog","ReportsRosterMemberComponent","constructor","memberRosterService","memberService","sessionService","document","members","displayMembers","showDialog","showDatePickerDialog","showSuccess","showError","back","EventEmitter","ngOnInit","itemExists","currentPermission","userPermissionCodes","find","x","trim","toLocaleUpperCase","isInternalUser","key","label","icon","getRosterItems","subscribe","rosterItems","selectedrosterItem","onChange","onMemberSearch","search","memberId","filter","toUpperCase","slice","selectedProviderName","selectedProvider","name","initialize","resetComponent","sortColumn","sortAscending","searchCin","searchName","column","cls","onPage","e","s","JSON","stringify","onSort","sort","data1","data2","value1","field","value2","result","localeCompare","order","setProvider","provider","getProviderMemberRoster","calProviderID","rosterTypeID","res","deleteMember","member","rosterItem","resetMessage","onBack","emit","itemx","portalmember","tag","menuItem","item","setTimeout","getMembersById","setSelectMember","relationshipDate","providerIds","push","removeMemberFromProviderRoster","error","ɵɵdirectiveInject","MemberRosterService","MemberInfoService","SessionService","DOCUMENT","selectors","outputs","decls","vars","consts","template","rf","ctx","ɵɵtwoWayListener","i0","ɵɵtwoWayBindingSet","ɵɵtemplate","ReportsRosterMemberComponent_ng_template_18_Template","ReportsRosterMemberComponent_ng_template_19_Template","ReportsRosterMemberComponent_div_21_Template","ReportsRosterMemberComponent_div_22_Template","ReportsRosterMemberComponent_app_reports_roster_member_dialog_23_Template","ReportsRosterMemberComponent_app_choose_date_dialog_24_Template","ɵɵtextInterpolate1","ɵɵtwoWayProperty","ɵɵelementStart","ɵɵlistener","$event","ɵɵrestoreView","_r4","ctx_r3","ɵɵnextContext","ɵɵresetView","onProviderSelected","ɵɵelementEnd","_r7","ctx_r6","onBack","ReportsProviderMemberRosterComponent","constructor","displayProvider","displayMember","val","setTimeout","memberComponent","setProvider","selectors","viewQuery","rf","ctx","ɵɵelement","ɵɵtemplate","ReportsProviderMemberRosterComponent_div_2_Template","ReportsProviderMemberRosterComponent_app_reports_roster_member_4_Template","ɵɵadvance","ɵɵproperty","routes","path","redirectTo","pathMatch","component","ReportsHomeComponent","ReportsPcpMemberRosterComponent","ReportsMemberEligibilityRosterComponent","ReportsPayForValueComponent","ReportsBHPayForValueComponent","ReportsBloodleadScreeningComponent","ReportsPcpAttestationComponent","ReportsDHCSBloodleadScreeningComponent","ReportsPayForValueManualComponent","AttestationHomeComponent","AttestationBloodleadScreeningComponent","AttestationProviderTrainingComponent","AttestationBhAbaReferralsComponent","ReportsAWPComponent","ReportsHIFComponent","ReportsPcpMemberIHAComponent","ReportsBHIComponent","ReportsBHABAReferralsComponent","ReportsPdcComponent","ReportsProviderMemberRosterComponent","ReportsRoutingModule","RouterModule","forChild","routes","ReportsModule","CommonModule","ReportsRoutingModule","AppComponentsModule","ToastModule","TableModule","FormsModule","PanelModule","TooltipModule","DropdownModule","RadioButtonModule","TabViewModule","CheckboxModule","DialogModule","ConfirmDialogModule","FileUploadModule","CalendarModule"],"x_google_ignoreList":[68,83,84]}