Summary Table

Categories Total Count
PII 0
URL 0
DNS 0
EKL 0
IP 0
PORT 0
VsID 0
CF 0
AI 0
VPD 0
PL 0
Other 0

File Content

import { Component, OnInit, Input, OnDestroy } from '@angular/core';
import { FormBuilder, Validators, FormGroup } from '@angular/forms';
import {
SubmissionDetailsModel,
AttachmentModel,
RelatedRFAIModel,
LineItemModel,
UpdateRFAIRequestModel
} from './rfai-submission-details.model';
import { Subscription } from 'rxjs/Subscription';
import {
TableColumnModel,
TableSettings,
PaginationSettings
} from '../../shared/table';
import { RfaiSubmissionDetailsService } from './rfai-submission-details.service';
import { RfaiSearch277Service } from '../rfai-search277/rfai-search277.service';

import { AuthenticationService } from '../../auth/auth.service';

@Component({
selector: 'app-rfai-submission-details',
templateUrl: './rfai-submission-details.component.html',
styleUrls: ['./rfai-submission-details.component.scss']
})
export class RfaiSubmissionDetailsComponent implements OnInit, OnDestroy {
title = '277 RFAI Submission Details';
tabIdx = '0';
dummy = '\u2013\u2013\u2013'; // a dummy string to substitute for uninitialized form entries: &endash; &endash;&endash;
subscription: Subscription = new Subscription();
submissionId = '';
model: SubmissionDetailsModel = new SubmissionDetailsModel();
attachments: AttachmentModel[] = [];
lines: LineItemModel[] = [];
updateRequest: UpdateRFAIRequestModel = new UpdateRFAIRequestModel();
showUpdate = true;
modalClosed = true;
// get tabIdx() {
// console.log('test get tabIdx()');
// return this.modalClosed ? '0' : '-1';
// }
modalError = false;
submissionNote = '';
successMsg = '';
errorMsg = '';
errorStatus = false;
successStatus = false;
viewSubmissionPermissions = '';
disablePrint = true;
disableSave = true;
disableUpdate = true;
loading = true;
rfaiStatusValues = [];
hideRfaiStatusDropDown = true;
// table setup
tableColumns: TableColumnModel[] = [
new TableColumnModel('Submit ID', 'submissionId'),
// new TableColumnModel('PDI / Claim ID', 'claimId'),
new TableColumnModel('Provider Name', 'providerName'),
new TableColumnModel('Provider NPI', 'providerNPI'),
new TableColumnModel('Provider TIN', 'providerTin'),
// new TableColumnModel('Patient Name', 'patientName'),
// new TableColumnModel('Patient ID', 'patientId'),
new TableColumnModel('Patient Control', 'patientControlNumber'),
new TableColumnModel('Medical Record', 'medicalRecordNumber'),
new TableColumnModel('Date Submitted', 'startDate'), // Change to correct data source
new TableColumnModel('Required Response Date', 'endDate') // Change to correct data source
];
tableSettings: TableSettings = new TableSettings();
paginationSettings: PaginationSettings = new PaginationSettings();
relatedRFAIs: RelatedRFAIModel[] = [];
form: FormGroup;
// end of table setup
constructor(
private fb: FormBuilder,
private rfaiSubmissionDetailsService: RfaiSubmissionDetailsService,
private rfaiSearch277Service: RfaiSearch277Service,
private authenticationService: AuthenticationService
) {}

ngOnInit() {
this.getUserData();
this.submissionId = this.getId();
this.getDetails(this.submissionId);
// table Settings
this.tableSettings.pagination = false;
this.paginationSettings = {
currentPage: 1,
pageSize: 10,
totalPages: 1,
totalResults: 2,
sortColumn: 'claimId',
descending: false
};
this.formInit();
}
getUserData() {
const viewSubmissionPermission = this.authenticationService.getDecodedUserInfo()
.permissions.viewSubmission;
if (viewSubmissionPermission) {
this.viewSubmissionPermissions = viewSubmissionPermission;
this.disablePrint = !this.viewSubmissionPermissions['printRfai'];
this.disableSave = !this.viewSubmissionPermissions['saveUpdates'];
this.disableUpdate = !this.viewSubmissionPermissions['updateRfai'];
}
}
formInit() {
this.form = this.fb.group({
responseDate: [
this.model.responseDate,
Validators.pattern(
'(0[1-9]|1[012])[/](0[1-9]|[12][0-9]|3[01])[/](19|20)\\d\\d'
)
],
status: [this.model.rfaiStatus]
});
}
updateTable() {}
getId(): string {
return this.rfaiSearch277Service.getSubmissionId();
}
getDetails(id) {
this.subscription.add(
this.rfaiSubmissionDetailsService.getDetails(id).subscribe(data => {
this.model = data;
this.attachments = this.model.rfaiAttachmentResponse;
this.relatedRFAIs = this.model.rfaiRelatedItemResponse;
this.lines = this.model.rfaiLineItemResponse;
this.loading = false;
})
);
}
saveUpdates() {
if (this.updateRequest.submissionNote) {
this.model.responseDate = this.updateRequest.responseDate;
this.model.rfaiStatus = this.updateRequest.submissionStatus;
this.modalClosed = true;
this.tabIdx = '0';
this.showUpdate = !this.showUpdate;
this.hideRfaiStatusDropDown = true;
this.updateRequest = {
submissionId: +this.submissionId,
submissionStatus: this.model.rfaiStatus,
submissionNote: this.updateRequest.submissionNote,
responseDate: this.model.responseDate
};

this.subscription.add(
this.rfaiSubmissionDetailsService
.updateRfai(this.updateRequest)
.subscribe(data => {
if (data.result) {
this.successMsg = 'Updated RFAI successfully.';
this.successStatus = true;
this.errorStatus = false;
setTimeout(() => {
this.successStatus = false;
}, 8000);
} else {
this.errorStatus = true;
this.successStatus = false;
this.errorMsg = 'An error occured RFAI update.';
setTimeout(() => {
this.errorStatus = false;
}, 8000);
}
})
);
} else {
this.modalError = true;
}
}

print() {
if (this.disablePrint) {
return;
} // disallow here, too
// Well, it's not implemented anyway!
}

update() {
if (this.disableUpdate) {
return;
} // disallow here, too
if (
this.model.rfaiStatus === 'COMPLETE' ||
this.model.rfaiStatus === 'ABANDONED' ||
this.model.rfaiStatus === 'MANUALLY CLOSED' ||
this.model.rfaiStatus === 'ERROR'
) {
this.hideRfaiStatusDropDown = true;
} else {
this.hideRfaiStatusDropDown = false;
this.rfaiStatusValues = ['SUBMITTED', 'MANUALLY CLOSED'];
}
this.updateRequest.submissionStatus = this.model.rfaiStatus;
this.updateRequest.responseDate = this.model.responseDate;
this.showUpdate = !this.showUpdate;
}

onModalOpen() {
this.modalClosed = false;
this.tabIdx = '-1';
}

onModalClose(bool: boolean) {
this.modalClosed = bool;
this.tabIdx = '0';
}

cancelModal() {
this.modalClosed = true;
this.tabIdx = '0';
this.updateRequest = new UpdateRFAIRequestModel();
this.showUpdate = !this.showUpdate;
}
ngOnDestroy() {
this.subscription.unsubscribe();
}
}