{"version":3,"sources":["api.js","app.js","select-state-dir.js","url-title-fltr.js","contact-us/contact-us-ctrl.js","doctors/doctors-ctrl.js","doctors/doctors.js","footer/footer.js","forgot-password/forgot-password-ctrl.js","header/header.js","nav-user/nav-user-dir.js","reset-password/reset-password-ctrl.js","sign-in/sign-in-ctrl.js","sign-up/sign-up-ctrl.js","welcome/welcome-ctrl.js","doctors/additional-practices/additional-practices-ctrl.js","doctors/affirmation-of-supplied-information/affirmation-of-supplied-information-ctrl.js","doctors/authorization-and-release/authorization-and-release-ctrl.js","doctors/credentialing/credentialing-ctrl.js","doctors/credentialing-sections/credentialing-sections-srv.js","doctors/credentialing-sections/section-status-dir.js","doctors/documentation/documentation-ctrl.js","doctors/educational-verification/educational-verification-ctrl.js","doctors/employed-by/employed-by-ctrl.js","doctors/employees/employees-ctrl.js","doctors/ipa/ipa-selection-ctrl.js","doctors/languages/languages-ctrl.js","doctors/liability-insurance/liability-insurance-ctrl.js","doctors/licensing/licensing-ctrl.js","doctors/panel-applications/panel-applications-ctrl.js","doctors/participation-fees/participation-fees-ctrl.js","doctors/partners-and-associates/partners-and-associates-ctrl.js","doctors/personal-information/personal-information-ctrl.js","doctors/practice-information/practice-information-ctrl.js","doctors/professional-affiliations/professional-affiliations-ctrl.js","doctors/professional-questions/professional-questions-ctrl.js","doctors/provider-panels/provider-panels-ctrl.js","doctors/references/references-ctrl.js","doctors/requirements-for-participation/requirements-for-participation-ctrl.js","doctors/single-signature-provider-acknowledgment/single-signature-provider-acknowledgement-ctrl.js","doctors/vcd-provider-agreement/vcd-provider-agreement-ctrl.js","doctors/vision-care-direct/vision-care-direct-ctrl.js","doctors/welcome/welcome-ctrl.js","doctors/work-history/work-history-ctrl.js","fields/date-field/date-field-dir.js","forms/authorize-net-messages/authorize-net-messages-dir.js","forms/authorize-net-payment-button/authorize-net-payment-button-dir.js","forms/electronic-signature/electronic-signature-dir.js","forms/forgot-password/forgot-password-dir.js","forms/my-account/my-account-dir.js","forms/reset-password/reset-password-dir.js","forms/sign-in/sign-in-dir.js","forms/sign-up/sign-up-dir.js","forms/validation/errors-dir.js","forms/doctors/additional-practice/additional-practice-dir.js","forms/doctors/additional-practices/additional-practices-dir.js","forms/doctors/affirmation-of-supplied-information/affirimation-of-supplied-information-dir.js","forms/doctors/authorization-and-release/authorization-and-release-dir.js","forms/doctors/documentation/documentation-dir.js","forms/doctors/educational-verification/educational-verification-dir.js","forms/doctors/employed-by/employed-by-dir.js","forms/doctors/employees/employees-dir.js","forms/doctors/languages/languages-dir.js","forms/doctors/liability-insurance/liability-insurance-dir.js","forms/doctors/licensing/licensing-dir.js","forms/doctors/panel-applications/panel-applications-dir.js","forms/doctors/participation-fees/participation-fees-dir.js","forms/doctors/partners-and-associates/partners-and-associates-dir.js","forms/doctors/personal-information/personal-information-dir.js","forms/doctors/practice-information/practice-information-dir.js","forms/doctors/professional-affiliations/professional-affiliations-dir.js","forms/doctors/professional-questions/professional-questions-dir.js","forms/doctors/provider-panels/provider-panels-dir.js","forms/doctors/question/question-dir.js","forms/doctors/references/references-dir.js","forms/doctors/requirements-for-participation/requirements-for-participation-dir.js","forms/doctors/single-signature-provider-acknowledgment/single-signature-provider-acknowledgment-dir.js","forms/doctors/vcd-provider-agreement/vcd-provider-agreement-dir.js","forms/doctors/vision-care-direct/vision-care-direct-dir.js","forms/doctors/work-history/work-history-dir.js"],"names":["angular","module","config","RestangularProvider","setBaseUrl","setDefaultHeaders","Content-Type","addResponseInterceptor","data","operation","what","url","response","deferred","headers","totalCount","extendModel","model","forEach","field","Date","is_active","makePayment","values","all","customPOST","prepareDate","startRecredentialing","cmd","then","_","extend","isSpokenByDoctor","isSpokenByStaff","is_primary","roles","reduce","role","history","created","factory","$http","$q","$rootScope","Restangular","none","login","admin","doctor","auditor","editor","ipaAdmin","credentials","post","res","user","restangularizeElement","$broadcast","status","reject","Error","statusText","logout","whoAmI","get","requestPasswordReset","email","method","verifyPasswordResetToken","token","resetPassword","newPassword","confirmPassword","password","password_confirm","error","errors","generatePassword","characterSet","size","result","i","charAt","Math","floor","random","length","getRandomPassword","Auth","one","doctor_id","app","$locationProvider","$routeProvider","$httpProvider","defaults","common","Pragma","when","templateUrl","cms","run","$sce","$location","$window","$on","event","current","previous","hasOwnProperty","$$route","path","originalPath","substr","source","trustAsHtml","ga","ipa_admin","location","href","directive","restrict","scope","replace","template","controller","$scope","states","getList","filter","value","toLowerCase","ctrl","this","submit","isWaiting","alerts","msg","type","currentUser","isLoaded","params","page","currentDate","closeAlert","index","splice","form","push","$setUntouched","err","message","CurrentUser","isNavbarCollapsed","e","$watch","displayName","name","first_name","last_name","controllerAs","bindToController","$routeParams","isTokenInvalid","tokenInfo","redirect","slides","image","header","text","link","CurrentDoctor","DoctorCredentialingSections","practicesQueuedForRemoval","section","practices","save","promises","practice","id","patch","remove","saveAndSubmit","bind","saveForLater","ipa_id","ipa","signature","shift","accepted","authorization","getStatusForDoctor","nextSection","findNextSection","submitForReview","submitDoctorForReview","urlTitleFilter","credentialingSectionGroups","credentialingSections","doctorStatus","sectionsGroupedByGroupId","groups","doctor_credentialing_section_group_id","doctorStatusBySectionId","doctor_credentialing_sections","doctor_credentialing_section_id","doctor_credentialing_status","group","map","sections","status_changed","last_approved","doctor_credentialing_status_id","section_id","next","home","withStatusId","afterSectionId","currentStatus","reachedAfterSection","j","FileUploader","latest","uploaded_by_roles","uploaded_by_ipas","documentsGroupedByType","documents","document","doctor_document_type_id","documentTypes","documentType","lastUpload","settings","getEducationalDocument","pop","uploadStatus","educationalDocument","colleagues","colleaguesQueuedForRemoval","colleague","ipas","defaultLanguages","English","Spanish","languages","removedLanguages","languageCollection","otherLanguages","language","sortIndex","isDefaultLanguage","languageName","apply","insurance","removedStateLiceneses","dea","boardCertification","stateLicenses","stateLicense","panels","selectedPanels","panel","customPUT","authorizeNet","$log","lastPayment","complete","balance","transactions","authorizeNetData","registerResponseHandler","registerErrorHandler","authorizeNetError","$apply","obj","transaction","paymentData","copy","doctorTypes","doctorType","readonly","has_different_claims_address","claims_address","claims_city","claims_state","claims_zip","has_hospital_privileges","hospital_name","hospital_address","hospital_phone","offers_telehealth","telehealth_mode_mobile_health","telehealth_mode_real_time","telehealth_mode_remote_patient_monitoring","telehealth_mode_store_and_forward","telehealth_services","mailing_different_from_claims_address","mailing_address","mailing_city","mailing_state","mailing_zip","mailing_phone","mailing_fax","affiliationTypes","affiliations","affiliationsQueuedForRemoval","affiliation","questions","embed","question","answer","references","reference","requirements","sectionId","signatureSlug","workHistory","workHistoryQueuedForRemoval","isEditing","theDate","label","debug","isSecure","protocol","service","handleResponse","warn","handleErrors","aNetResponseHandler","aNetAcceptUIClass","aNetApiLoginId","aNetPublicClientKey","aNetAcceptUiUrl","messages","resultCode","info","opaqueData","callback","elem","attr","tag","createElement","src","async","charset","append","download","isChangingPassword","disableDeletion","removePractice","formId","effectiveDateOpen","toggleEffectiveDateOpen","addPractice","is_accepting_new_patients","indexOf","$emit","_addPracticeCached","_removePracticeCached","uploadableDocuments","refreshUploadableDocuments","uploadPath","uploader","alias","autoUpload","removeAfterUpload","formData","onBeforeUploadItem","alert","onSuccessItem","addColleague","colleague_type_id","removeColleague","addLanguage","removeLanguage","defaultLanguage","liabilityInsurance","addStateLicense","removeStateLicense","setPrimaryLicense","license","selected","months","years","year","getFullYear","singleFeeDescriptions","day","month","pluralFeeDescriptions","fee_frequency_amount","feeFrequencyDescription","fee_frequency_unit","ethnicityOptions","ethnicity","ethnicityOther","types","availableDoctorTypes","refreshAffiliations","groupedAffiliations","affiliation_type_id","dynamic","addAffiliation","newAffiliation","removeAffiliation","showDetails","details_required_on_yes","details_required_on_no","refreshReferencesDocument","doctorid","addHistory","removeHistory"],"mappings":"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","file":"app.js","sourcesContent":["'use strict';\n\nangular.module('vcp.api', [\n 'restangular'\n])\n\n.config(['RestangularProvider', function(RestangularProvider) {\n RestangularProvider.setBaseUrl('/api/v1');\n RestangularProvider.setDefaultHeaders({'Content-Type': 'application/json'});\n\n RestangularProvider.addResponseInterceptor(function(data, operation, what, url, response, deferred) {\n if (data && response.headers('X-Total-Count')) {\n data.totalCount = response.headers('X-Total-Count');\n };\n return data;\n });\n\n RestangularProvider.extendModel('affiliations', function(model) {\n ['created', 'updated', 'member_since'].forEach(function(field) {\n if (model[field]) {\n model[field] = new Date(model[field] * 1000);\n }\n });\n return model;\n });\n\n RestangularProvider.extendModel('doctors', function(model) {\n ['created', 'updated', 'birth_date', 'credentialing_first_approved', 'credentialing_last_approved'].forEach(function(field) {\n if (model[field]) {\n model[field] = new Date(model[field] * 1000);\n }\n });\n\n model.is_active = model.is_active == '1';\n\n model.makePayment = function(values) {\n return model.all('payments').customPOST(values);\n }\n\n return model;\n });\n\n RestangularProvider.extendModel('board-certification', function(model) {\n ['certification_date', 'expiration_date', 'recertification_date'].forEach(function(field) {\n if (model[field]) {\n model[field] = new Date(model[field] * 1000);\n }\n });\n return model;\n });\n\n RestangularProvider.extendModel('documents', function(model) {\n ['created', 'updated', 'verified'].forEach(function(field) {\n if (model[field]) {\n model[field] = new Date(model[field] * 1000);\n }\n });\n return model;\n });\n\n RestangularProvider.extendModel('insurance', function(model) {\n ['expiration_date'].forEach(function(field) {\n if (model[field]) {\n model[field] = new Date(model[field] * 1000);\n }\n });\n return model;\n });\n\n RestangularProvider.extendModel('ipas', function(model) {\n function prepareDate(data) {\n ['next_renewal'].forEach(function(field) {\n if (data[field]) {\n data[field] = new Date(data[field] * 1000);\n }\n });\n return data;\n }\n\n model.startRecredentialing = function() {\n return model.customPOST({\n cmd: 'start-doctor-credentialing'\n }).then(function(data) {\n _.extend(model, prepareDate(data));\n });\n };\n\n return prepareDate(model);\n });\n\n RestangularProvider.extendModel('dea-license', function(model) {\n ['expiration_date'].forEach(function(field) {\n if (model[field]) {\n model[field] = new Date(model[field] * 1000);\n }\n });\n return model;\n });\n\n RestangularProvider.extendModel('languages', function(model) {\n model.isSpokenByDoctor = model.isSpokenByDoctor == '1';\n model.isSpokenByStaff = model.isSpokenByStaff == '1';\n\n return model;\n });\n\n RestangularProvider.extendModel('state-licenses', function(model) {\n ['expiration_date'].forEach(function(field) {\n if (model[field]) {\n model[field] = new Date(model[field] * 1000);\n }\n });\n\n model.is_primary = model.is_primary == '1';\n\n return model;\n });\n\n RestangularProvider.extendModel('signatures', function(model) {\n ['created', 'updated'].forEach(function(field) {\n if (model[field]) {\n model[field] = new Date(model[field] * 1000);\n }\n });\n\n return model;\n });\n\n RestangularProvider.extendModel('transactions', function(model) {\n ['created', 'updated'].forEach(function(field) {\n if (model[field]) {\n model[field] = new Date(model[field] * 1000);\n }\n });\n return model;\n });\n\n RestangularProvider.extendModel('users', function(model) {\n ['created', 'updated', 'last_login'].forEach(function(field) {\n if (model[field]) {\n model[field] = new Date(model[field] * 1000);\n }\n });\n\n model.roles = model.roles || [];\n model.roles = model.roles.reduce(function(roles, role) {\n roles[role] = true;\n return roles;\n }, {});\n\n return model;\n });\n\n RestangularProvider.extendModel('work-history', function(model) {\n ['start_date', 'end_date'].forEach(function(field) {\n if (model[field]) {\n model[field] = new Date(model[field] * 1000);\n }\n });\n\n return model;\n });\n\n RestangularProvider.extendModel('status', function(model) {\n if (model.history) {\n model.history.forEach(function(history) {\n if (history.created) {\n history.created = new Date(history.created * 1000);\n }\n });\n }\n\n return model;\n });\n}])\n\n.factory('Auth', ['$http', '$q', '$rootScope', 'Restangular', function($http, $q, $rootScope, Restangular) {\n var roles = {\n none: null,\n login: 1,\n admin: 2,\n doctor: 3,\n auditor: 4,\n editor: 5,\n ipaAdmin: 6\n };\n\n var login = function(credentials) {\n return $http.post('/api/v1/auth', credentials).then(function(res) {\n var user = Restangular.restangularizeElement(null, res.data, 'users');\n\n $rootScope.$broadcast('auth.login', user);\n\n return user;\n }, function(res) {\n if (res.status == 422) {\n return $q.reject(new Error('Invalid email and/or password.'));\n } else if (res.status == 404) {\n return $q.reject(new Error('Unable to contact the authentication service.'));\n }\n\n return $q.reject(new Error(res.statusText));\n });\n };\n\n var logout = function() {\n return $http.delete('/api/v1/auth').then(function() {\n whoAmI().then(function(user) {\n $rootScope.$broadcast('auth.logout', user);\n })\n });\n };\n\n var whoAmI = function() {\n return $http.get('/api/v1/auth').then(function(res) {\n return Restangular.restangularizeElement(null, res.data, 'users');\n });\n };\n\n var requestPasswordReset = function(email) {\n return $http({\n method: 'POST',\n url: '/api/v1/auth/forgot-password',\n data: {\n email: email\n }\n }).catch(function(res) {\n if (res.status == 422) {\n return $q.reject(new Error('Could not find an account matching the provided email address.'));\n }\n\n return $q.reject(new Error(res.statusText));\n });\n };\n\n var verifyPasswordResetToken = function(token) {\n return $http({\n method: 'GET',\n url: '/api/v1/auth/reset-password/' + token\n }).then(function(res) {\n return res.data;\n }, function(res) {\n if (res.status == 404) {\n return $q.reject(new Error('Invalid reset token.'));\n }\n\n return $q.reject(new Error(res.statusText));\n });\n };\n\n var resetPassword = function(token, newPassword, confirmPassword) {\n return $http({\n method: 'POST',\n url: '/api/v1/auth/reset-password/' + token,\n data: {\n password: newPassword,\n password_confirm: confirmPassword\n }\n }).then(function(res) {\n return res.data;\n }, function(res) {\n if (res.status == 422) {\n var error = new Error('Invalid password.');\n error.errors = res.data.errors;\n return $q.reject(error);\n } else if (res.status == 404) {\n return $q.reject(new Error('Invalid reset token.'));\n }\n\n return $q.reject(new Error(res.statusText));\n });\n };\n\n var generatePassword = function(characterSet, size) {\n var result = \"\";\n\n for (var i = 0; i < size; i++) {\n result += characterSet.charAt(Math.floor(Math.random() * characterSet.length));\n }\n\n return result;\n }\n\n var getRandomPassword = function() {\n return generatePassword(\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\", 8);\n }\n\n return {\n login: login,\n logout: logout,\n whoAmI: whoAmI,\n requestPasswordReset: requestPasswordReset,\n verifyPasswordResetToken: verifyPasswordResetToken,\n resetPassword: resetPassword,\n roles: roles,\n generatePassword: generatePassword,\n getRandomPassword: getRandomPassword\n };\n}])\n\n.factory('CurrentUser', ['Auth', 'Restangular', function(Auth, Restangular) {\n return Auth.whoAmI();\n}])\n\n.factory('CurrentDoctor', ['Auth', 'Restangular', function(Auth, Restangular) {\n return Auth.whoAmI().then(function(user) {\n return Restangular.one('doctors', user.doctor_id).get();\n });\n}]);\n","'use strict';\n\nvar app = angular.module('vcpApp', [\n 'ngRoute',\n 'app.templates',\n 'app.website'\n]);\n\nangular.module('app.website', [\n 'ui.bootstrap',\n 'header',\n 'footer',\n 'welcome.ctrl',\n 'contact-us.ctrl',\n 'forms.my-account.dir',\n 'forms.sign-in.dir',\n 'forms.forgot-password.dir',\n 'forms.reset-password.dir',\n 'doctors'\n]);\n\napp.config(['$locationProvider', '$routeProvider', '$httpProvider', function($locationProvider, $routeProvider, $httpProvider) {\n if (!$httpProvider.defaults.headers.get) {\n $httpProvider.defaults.headers.common = {};\n }\n $httpProvider.defaults.headers.common[\"Cache-Control\"] = \"no-cache\";\n $httpProvider.defaults.headers.common.Pragma = \"no-cache\";\n $httpProvider.defaults.headers.common[\"If-Modified-Since\"] = \"0\";\n\n $routeProvider\n .when('/', {\n templateUrl: '/welcome/welcome.html',\n cms: true\n })\n .when('/about', {\n templateUrl: '/cms/cms.html',\n cms: true\n })\n .when('/contact', {\n templateUrl: '/contact-us/contact-us.html',\n cms: true\n })\n .when('/policies/privacy', {\n templateUrl: '/cms/cms.html',\n cms: true\n })\n .when('/policies/refund', {\n templateUrl: '/cms/cms.html',\n cms: true\n })\n .when('/my-account', {\n templateUrl: '/my-account/my-account.html'\n });\n}])\n\n.run(['$rootScope', '$sce', '$location', '$window', 'Restangular', function($rootScope, $sce, $location, $window, Restangular) {\n $rootScope.$on('$routeChangeStart', function(event, current, previous) {\n $rootScope.cms = null;\n if (current.hasOwnProperty('$$route') && current.$$route.cms) {\n var path = current.$$route.originalPath;\n path = path.substr(1);\n Restangular.one('content').get({ path: path }).then(function(cms) {\n cms.source = $sce.trustAsHtml(cms.source);\n $rootScope.cms = cms;\n });\n }\n });\n $rootScope.$on('$routeChangeSuccess', function() {\n if (ga) {\n ga('send', 'pageview', $location.path());\n }\n });\n $rootScope.$on('auth.logout', function() {\n $location.path('/sign-in');\n });\n $rootScope.$on('auth.login', function(event, user) {\n var roles = user.roles;\n if (roles.admin || roles.ipa_admin || roles.auditor || roles.editor) {\n $window.location.href = '/admin';\n } else if (roles.doctor) {\n $location.path('/doctors/welcome');\n }\n });\n}]);\n","'use strict';\n\nangular.module('select-state.dir', ['restangular'])\n\n.directive('selectState', [function() {\n return {\n restrict: 'E',\n scope: false,\n replace: true,\n template: '',\n controller: ['$scope', 'Restangular', function ($scope, Restangular) {\n $scope.states = [];\n Restangular.all('states').getList().then(function(states) {\n $scope.states = states;\n });\n }]\n };\n}]);\n","'use strict';\n\nangular.module('url-title.fltr', [])\n\n.filter('urlTitle', [function() {\n return function(value) {\n return value.replace(/\\s/g, '-').toLowerCase();\n };\n}]);\n","'use strict';\n\nangular.module('contact-us.ctrl', ['vcp.api'])\n\n.controller('ContactUsCtrl', ['Restangular', function(Restangular) {\n var ctrl = this;\n\n ctrl.submit = function() {\n ctrl.isWaiting = true;\n Restangular.one('contact').customPOST(ctrl.values).then(function(res) {\n ctrl.alerts = [{\n\t\t msg: 'Your message was sent.',\n\t\t type: 'success'\n\t }];\n\t ctrl.values = {};\n }, function(res) {\n ctrl.errors = res.data.errors;\n }).finally(function() {\n ctrl.isWaiting = false;\n });\n };\n}]);\n","'use strict';\n\nangular.module('doctors.ctrl', ['vcp.api'])\n\n.controller('DoctorsCtrl', ['$window', 'Auth', function($location, Auth) {\n var ctrl = this;\n\n Auth.whoAmI().then(function(currentUser) {\n ctrl.currentUser = currentUser;\n if (currentUser.roles.doctor) {\n $location.path('/#/doctors/welcome');\n }\n ctrl.isLoaded = true;\n });\n}])\n\n.config(['$locationProvider', '$routeProvider', function($locationProvider, $routeProvider) {\n $routeProvider\n .when('/doctors', {\n templateUrl: '/doctors/doctors.html',\n cms: true\n })\n .when('/doctors/welcome', {\n templateUrl: '/doctors/welcome/welcome.html',\n cms: true\n })\n .when('/doctors/:page', {\n templateUrl: function(params) {\n return '/doctors/' + params.page + '/' + params.page + '.html';\n }\n });\n}]);\n","angular.module('doctors', [\n 'doctors.ctrl',\n 'forms.sign-in.dir',\n 'forms.sign-up.dir',\n 'doctors.welcome.ctrl',\n 'doctors.credentialing.ctrl',\n 'doctors.ipa-selection.ctrl',\n 'doctors.additional-practices.ctrl',\n 'doctors.affirmation-of-supplied-information.ctrl',\n 'doctors.authorization-and-release.ctrl',\n 'doctors.documentation.ctrl',\n 'doctors.educational-verification.ctrl',\n 'doctors.employed-by.ctrl',\n 'doctors.employees.ctrl',\n 'doctors.languages.ctrl',\n 'doctors.liability-insurance.ctrl',\n 'doctors.licensing.ctrl',\n 'doctors.panel-applications.ctrl',\n 'doctors.participation-fees.ctrl',\n 'doctors.partners-and-associates.ctrl',\n 'doctors.personal-information.ctrl',\n 'doctors.practice-information.ctrl',\n 'doctors.professional-affiliations.ctrl',\n 'doctors.professional-questions.ctrl',\n 'doctors.provider-panels.ctrl',\n 'doctors.references.ctrl',\n 'doctors.requirements-for-participation.ctrl',\n 'doctors.single-signature-provider-acknowledgment.ctrl',\n 'doctors.vision-care-direct.ctrl',\n 'doctors.vcd-provider-agreement.ctrl',\n 'doctors.work-history.ctrl'\n]);\n","'use strict';\n\nangular.module('footer', [])\n\n.controller('FooterCtrl', [function() {\n var ctrl = this;\n ctrl.currentDate = new Date();\n}]);\n","'use strict';\n\nangular.module('forgot-password.ctrl', ['vcp.api'])\n\n.controller('ForgotPasswordCtrl', ['Auth', function(Auth) {\n var ctrl = this;\n\n ctrl.alerts = [];\n\n ctrl.closeAlert = function(index) {\n ctrl.alerts.splice(index, 1);\n };\n\n ctrl.submit = function(form) {\n ctrl.isWaiting = true;\n ctrl.alerts = [];\n Auth.requestPasswordReset(ctrl.values.email).then(function() {\n \t ctrl.alerts.push({\n \t type: 'success',\n \t\t msg: 'Password reset instructions sent to: ' + ctrl.values.email\n \t });\n \t ctrl.values = {};\n if (form) {\n form.$setUntouched();\n }\n }, function(err) {\n if (err) {\n ctrl.alerts.push({\n type: 'danger',\n msg: err.message\n });\n }\n }).finally(function() {\n ctrl.isWaiting = false;\n });\n };\n}])\n\n.config(['$locationProvider', '$routeProvider', function($locationProvider, $routeProvider) {\n $routeProvider\n .when('/forgot-password', {\n templateUrl: '/forgot-password/forgot-password.html'\n });\n}]);\n","'use strict';\n\nangular.module('header', ['vcp.api', 'nav-user.dir'])\n\n.controller('HeaderCtrl', ['$scope', 'CurrentUser', function($scope, CurrentUser) {\n var ctrl = this;\n\n ctrl.isNavbarCollapsed = true;\n\n CurrentUser.then(function(currentUser) {\n ctrl.currentUser = currentUser;\n ctrl.isLoaded = true;\n });\n\n $scope.$on('auth.login', function(e, user) {\n ctrl.currentUser = user;\n });\n\n $scope.$on('auth.logout', function(e, user) {\n ctrl.currentUser = user;\n });\n}]);\n","'use strict';\n\nangular.module('nav-user.dir', ['vcp.api'])\n\n.directive('navUser', [function() {\n return {\n restrict: 'E',\n scope: {\n user: '='\n },\n replace: true,\n templateUrl: '/nav-user/nav-user.html',\n controller: ['$scope', 'Auth', function($scope, Auth) {\n var ctrl = this;\n\n ctrl.logout = function() {\n Auth.logout();\n };\n\n $scope.$watch(function() {\n return ctrl.user;\n }, function() {\n if (!ctrl.user) {\n return;\n }\n if (ctrl.user.roles.admin || ctrl.user.roles.ipa_admin) {\n ctrl.displayName = ctrl.user.name || ctrl.user.email;\n } else if (ctrl.user.roles.doctor) {\n ctrl.displayName = ctrl.user.first_name + ' ' + ctrl.user.last_name;\n }\n });\n }],\n controllerAs: 'navUser',\n bindToController: true\n };\n}]);\n","'use strict';\n\nangular.module('reset-password.ctrl', ['vcp.api'])\n\n.controller('ResetPasswordCtrl', ['$scope', '$routeParams', 'Auth', function($scope, $routeParams, Auth) {\n var ctrl = this;\n\n ctrl.isTokenInvalid = false;\n\n Auth.verifyPasswordResetToken($routeParams.token).then(function(tokenInfo) {\n ctrl.tokenInfo = tokenInfo;\n }, function() {\n ctrl.isTokenInvalid = true;\n }).finally(function() {\n ctrl.isLoaded = true;\n });\n\n $scope.$on('forms.reset-password.onDidResetPassword', function(event, password) {\n Auth.login({\n email: ctrl.tokenInfo.email,\n password: password\n }).then(Auth.redirect);\n });\n}])\n\n.config(['$locationProvider', '$routeProvider', function($locationProvider, $routeProvider) {\n $routeProvider\n .when('/reset-password/:token', {\n templateUrl: '/reset-password/reset-password.html'\n });\n}]);\n","'use strict';\n\nangular.module('sign-in.ctrl', ['vcp.api'])\n\n.controller('SignInCtrl', ['Auth', function(Auth) {\n var ctrl = this;\n\n ctrl.isWaiting = false;\n ctrl.alerts = [];\n\n ctrl.closeAlert = function(index) {\n ctrl.alerts.splice(index, 1);\n };\n\n ctrl.submit = function() {\n ctrl.isWaiting = true;\n ctrl.alerts = [];\n Auth.login(ctrl.values).then(Auth.redirect, function(err) {\n if (err) {\n ctrl.alerts.push({\n type: 'danger',\n msg: err.message\n });\n }\n }).finally(function() {\n ctrl.isWaiting = false;\n });\n };\n}])\n\n.config(['$locationProvider', '$routeProvider', function($locationProvider, $routeProvider) {\n $routeProvider\n .when('/sign-in', {\n templateUrl: '/sign-in/sign-in.html'\n });\n}]);\n","'use strict';\n\nangular.module('sign-up.ctrl', ['vcp.api'])\n\n.controller('SignUpCtrl', ['$window', 'Auth', 'Restangular', function($window, Auth, Restangular) {\n var ctrl = this;\n\n ctrl.isWaiting = false;\n\n ctrl.submit = function() {\n ctrl.isWaiting = true;\n Restangular.all('doctors').post(ctrl.values).then(function(res) {\n return Auth.login(ctrl.values).then(function(res) {\n $window.location = '/#/doctors/welcome';\n });\n }, function(res) {\n ctrl.errors = res.data.errors;\n }).finally(function() {\n ctrl.isWaiting = false;\n });\n };\n}]);\n","'use strict';\n\nangular.module('welcome.ctrl', [])\n\n.controller('WelcomeCtrl', ['$scope', function() {\n var ctrl = this;\n\n ctrl.slides = [{\n image: '/img/slides/scope.jpg',\n header: 'Keeping to a standard',\n text: 'We are a precision fit.',\n link: '#/about'\n }, {\n image: '/img/slides/glasses.jpg',\n header: 'The Right Fit',\n text: 'Helping to build trust with your patients.',\n link: '#/about'\n }];\n}])\n\n.config(['$locationProvider', '$routeProvider', function($locationProvider, $routeProvider) {\n $routeProvider\n .when('/', {\n templateUrl: '/welcome/welcome.html',\n cms: true\n });\n}]);\n","'use strict';\n\nangular.module('doctors.additional-practices.ctrl', ['forms.doctors.additional-practices.dir'])\n\n.controller('DoctorAdditionalPracticesCtrl', ['$q', '$scope', 'CurrentDoctor', 'Restangular', 'DoctorCredentialingSections', function($q, $scope, CurrentDoctor, Restangular, DoctorCredentialingSections) {\n var ctrl = this;\n\n ctrl.practicesQueuedForRemoval = [];\n\n Restangular.one('doctor-credentialing-sections', 23).get().then(function(section) {\n ctrl.section = section;\n });\n\n CurrentDoctor.then(function(doctor) {\n ctrl.doctor = doctor;\n return $q.all([\n doctor.one('status', 23).get(),\n doctor.all('additional-practices').getList()\n ]);\n }).then(function(data) {\n ctrl.status = data[0];\n ctrl.practices = data[1];\n ctrl.isLoaded = true;\n });\n\n ctrl.save = function() {\n ctrl.errors = null;\n var promises = [];\n\n ctrl.practices.forEach(function(practice) {\n promises.push(practice.id ? practice.patch() : ctrl.practices.post(practice));\n });\n\n ctrl.practicesQueuedForRemoval.forEach(function(practice) {\n promises.push(practice.remove());\n });\n\n return $q.all(promises).catch(function(res) {\n return $q.reject(res.data.errors);\n });\n };\n\n $scope.$on('forms.doctors.additional-practices.didRemovePractice', function(e, practice) {\n if (!practice.id) return;\n ctrl.practicesQueuedForRemoval.push(practice);\n });\n\n ctrl.saveAndSubmit = DoctorCredentialingSections.saveAndSubmit.bind(this);\n ctrl.saveForLater = DoctorCredentialingSections.saveForLater.bind(this);\n}]);\n","'use strict';\n\nangular.module('doctors.affirmation-of-supplied-information.ctrl', ['forms.doctors.affirmation-of-supplied-information.dir'])\n\n.controller('DoctorAffirmationOfSuppliedInformationCtrl', ['$q', 'DoctorCredentialingSections', 'CurrentDoctor', 'Restangular', function($q, DoctorCredentialingSections, CurrentDoctor, Restangular) {\n var ctrl = this;\n\n Restangular.one('doctor-credentialing-sections', 18).get().then(function(section) {\n ctrl.section = section;\n });\n\n CurrentDoctor.then(function(doctor) {\n ctrl.doctor = doctor;\n return $q.all([\n doctor.one('status', 18).get(),\n Restangular.one('ipas', doctor.ipa_id).get(),\n doctor.getList('signatures', { type: 'affirmation' })\n ]);\n }).then(function(data) {\n ctrl.status = data[0];\n ctrl.ipa = data[1];\n ctrl.signature = data[2].shift() || {};\n ctrl.isLoaded = true;\n });\n\n ctrl.save = function() {\n ctrl.errors = null;\n return $q.all([\n ctrl.doctor.all('signatures').post({\n type: 'affirmation',\n accepted: ctrl.signature.accepted,\n authorization: ctrl.signature.authorization\n })\n ]).catch(function(res) {\n return $q.reject(res.data.errors);\n });\n };\n\n ctrl.saveAndSubmit = DoctorCredentialingSections.saveAndSubmit.bind(this);\n ctrl.saveForLater = DoctorCredentialingSections.saveForLater.bind(this);\n}]);\n","'use strict';\n\nangular.module('doctors.authorization-and-release.ctrl', ['forms.doctors.authorization-and-release.dir'])\n\n.controller('DoctorAuthorizationAndReleaseCtrl', ['$q', 'DoctorCredentialingSections', 'CurrentDoctor', 'Restangular', function($q, DoctorCredentialingSections, CurrentDoctor, Restangular) {\n var ctrl = this;\n\n Restangular.one('doctor-credentialing-sections', 17).get().then(function(section) {\n ctrl.section = section;\n });\n\n CurrentDoctor.then(function(doctor) {\n ctrl.doctor = doctor;\n return $q.all([\n doctor.one('status', 17).get(),\n Restangular.one('ipas', doctor.ipa_id).get(),\n doctor.getList('signatures', { type: 'release' })\n ]);\n }).then(function(data) {\n ctrl.status = data[0];\n ctrl.ipa = data[1];\n ctrl.signature = data[2].shift() || {};\n ctrl.isLoaded = true;\n });\n\n ctrl.save = function() {\n ctrl.errors = null;\n return $q.all([\n ctrl.doctor.all('signatures').post({\n type: 'release',\n accepted: ctrl.signature.accepted,\n authorization: ctrl.signature.authorization\n })\n ]).catch(function(res) {\n return $q.reject(res.data.errors);\n });\n };\n\n ctrl.saveAndSubmit = DoctorCredentialingSections.saveAndSubmit.bind(this);\n ctrl.saveForLater = DoctorCredentialingSections.saveForLater.bind(this);\n}]);\n","'use strict';\n\nangular.module('doctors.credentialing.ctrl', ['doctor-credentialing-sections.srv'])\n\n.controller('DoctorCredentialingCtrl', ['$q', 'CurrentDoctor', 'DoctorCredentialingSections', 'Restangular', function($q, CurrentDoctor, DoctorCredentialingSections, Restangular) {\n var ctrl = this;\n\n CurrentDoctor.then(function(doctor) {\n ctrl.doctor = doctor;\n return $q.all([\n DoctorCredentialingSections.getStatusForDoctor(doctor),\n Restangular.one('ipas', ctrl.doctor.ipa_id).get()\n ]);\n }).then(function(data) {\n ctrl.status = data[0];\n ctrl.ipa = data[1];\n ctrl.nextSection = DoctorCredentialingSections.findNextSection(ctrl.status, 4);\n ctrl.isLoaded = true;\n });\n\n ctrl.submitForReview = function() {\n if (ctrl.isWaiting) {\n return;\n }\n\n ctrl.isWaiting = true;\n\n DoctorCredentialingSections.submitDoctorForReview(ctrl.doctor).then(function() {\n return DoctorCredentialingSections.getStatusForDoctor(ctrl.doctor);\n }).then(function(status) {\n ctrl.status = status;\n }).finally(function() {\n ctrl.isWaiting = false;\n });\n };\n}]);\n","'use strict';\n\nangular.module('doctor-credentialing-sections.srv', ['url-title.fltr'])\n\n.factory('DoctorCredentialingSections', ['$q', '$location', 'Restangular', 'urlTitleFilter', function($q, $location, Restangular, urlTitleFilter) {\n var getStatusForDoctor = function(doctor) {\n return $q.all([\n Restangular.all('doctor-credentialing-section-groups').getList(),\n doctor.all('doctor-credentialing-sections').getList(),\n doctor.one('status').get()\n ]).then(function(data) {\n var credentialingSectionGroups = data[0];\n var credentialingSections = data[1];\n var doctorStatus = data[2];\n\n var sectionsGroupedByGroupId = credentialingSections.reduce(function(groups, section) {\n if (!groups[section.doctor_credentialing_section_group_id]) {\n groups[section.doctor_credentialing_section_group_id] = [];\n }\n groups[section.doctor_credentialing_section_group_id].push(section);\n return groups;\n }, {});\n\n var doctorStatusBySectionId = doctorStatus.doctor_credentialing_sections.reduce(function(status, section) {\n status[section.doctor_credentialing_section_id] = section.doctor_credentialing_status;\n return status;\n }, {});\n\n var groups = credentialingSectionGroups.filter(function(group) {\n return sectionsGroupedByGroupId[group.id] != null;\n }).map(function(group) {\n group.sections = sectionsGroupedByGroupId[group.id].map(function(section) {\n section.status = doctorStatusBySectionId[section.id];\n return section;\n });\n\n return group;\n });\n\n return {\n current: doctorStatus.doctor_credentialing_status,\n status_changed: doctorStatus.status_changed,\n last_approved: doctorStatus.last_approved,\n groups: groups\n };\n });\n };\n\n var submitDoctorForReview = function(doctor) {\n return doctor.one('status').get().then(function(status) {\n var promises = [];\n status.doctor_credentialing_sections.filter(function(section) {\n return section.doctor_credentialing_status.id != 1;\n }).forEach(function(section) {\n promises.push(doctor.one('status').post(section.doctor_credentialing_section_id, {\n doctor_credentialing_status_id: 2\n }));\n });\n return $q.all(promises);\n });\n };\n\n var saveAndSubmit = function() {\n var ctrl = this;\n ctrl.isWaiting = true;\n ctrl.save().then(function() {\n return ctrl.status.post(ctrl.status.section_id, {\n doctor_credentialing_status_id: 3\n }).catch(function(res) {\n return $q.reject(res.data.errors);\n });\n }, function(errors) {\n return ctrl.status.get().then(function(status) {\n return $q.reject(angular.extend(errors, status.errors || {}));\n });\n }).then(function() {\n next(ctrl.doctor, 4, ctrl.status.section_id);\n }).catch(function(errors) {\n ctrl.errors = errors;\n }).finally(function() {\n ctrl.isWaiting = false;\n });\n };\n\n var saveForLater = function() {\n var ctrl = this;\n ctrl.isWaiting = true;\n ctrl.save().then(function() {\n home();\n }, function(errors) {\n ctrl.errors = errors;\n }).finally(function() {\n ctrl.isWaiting = false;\n });\n };\n\n var home = function() {\n $location.path('/doctors/credentialing');\n };\n\n var next = function(doctor, withStatusId, afterSectionId) {\n getStatusForDoctor(doctor).then(function(status) {\n var nextSection = findNextSection(status, withStatusId, afterSectionId);\n\n if (nextSection) {\n $location.path('/doctors/' + urlTitleFilter(nextSection.name));\n } else {\n home();\n }\n });\n };\n\n var findNextSection = function(currentStatus, withStatusId, afterSectionId) {\n var reachedAfterSection = afterSectionId ? false : true;\n var nextSection;\n\n for (var i = 0; i < currentStatus.groups.length; i++) {\n for (var j = 0; j < currentStatus.groups[i].sections.length; j++) {\n var section = currentStatus.groups[i].sections[j];\n if (reachedAfterSection) {\n if (section.status.id === withStatusId) {\n nextSection = section;\n break;\n }\n } else {\n reachedAfterSection = section.id == afterSectionId;\n }\n }\n\n if (nextSection) {\n break;\n }\n }\n\n return nextSection;\n };\n\n return {\n getStatusForDoctor: getStatusForDoctor,\n submitDoctorForReview: submitDoctorForReview,\n home: home,\n next: next,\n findNextSection: findNextSection,\n saveForLater: saveForLater,\n saveAndSubmit: saveAndSubmit\n };\n}]);\n","'use strict';\n\nangular.module('section-status.dir', [])\n\n.directive('sectionStatus', [function() {\n return {\n restrict: 'E',\n scope: {\n status: '='\n },\n replace: true,\n templateUrl: '/doctors/credentialing-sections/section-status.html'\n };\n}]);\n","'use strict';\n\nangular.module('doctors.documentation.ctrl', ['forms.doctors.documentation.dir'])\n\n.controller('DoctorDocumentationCtrl', ['$q', 'FileUploader', 'DoctorCredentialingSections', 'CurrentDoctor', 'Restangular', function($q, FileUploader, DoctorCredentialingSections, CurrentDoctor, Restangular) {\n var ctrl = this;\n\n Restangular.one('doctor-credentialing-sections', 7).get().then(function(section) {\n ctrl.section = section;\n });\n\n CurrentDoctor.then(function(doctor) {\n ctrl.doctor = doctor;\n return $q.all([\n doctor.one('status', 7).get(),\n doctor.getList('documents', { latest: true }),\n Restangular.all('doctor-document-types').getList({ uploaded_by_roles: 3, uploaded_by_ipas: doctor.ipa_id }),\n Restangular.one('settings').get(),\n Restangular.one('ipas', ctrl.doctor.ipa_id).get()\n ]);\n }).then(function(data) {\n ctrl.status = data[0];\n\n var documentsGroupedByType = data[1].reduce(function(documents, document) {\n documents[document.doctor_document_type_id] = document;\n return documents;\n }, {});\n\n ctrl.documentTypes = data[2].map(function(documentType) {\n documentType.lastUpload = documentsGroupedByType[documentType.id];\n return documentType;\n });\n\n ctrl.settings = data[3];\n ctrl.ipa = data[4];\n ctrl.isLoaded = true;\n });\n\n ctrl.save = function() {\n ctrl.errors = null;\n var promises = [];\n\n return $q.all(promises).catch(function(res) {\n return $q.reject(res.data.errors);\n });\n };\n\n ctrl.saveAndSubmit = DoctorCredentialingSections.saveAndSubmit.bind(this);\n ctrl.saveForLater = DoctorCredentialingSections.saveForLater.bind(this);\n}]);\n","'use strict';\n\nangular.module('doctors.educational-verification.ctrl', ['forms.doctors.educational-verification.dir'])\n\n.controller('DoctorEducationalVerificationCtrl', ['$scope', '$q', 'DoctorCredentialingSections', 'CurrentDoctor', 'Restangular', function($scope, $q, DoctorCredentialingSections, CurrentDoctor, Restangular) {\n var ctrl = this;\n\n Restangular.one('doctor-credentialing-sections', 20).get().then(function(section) {\n ctrl.section = section;\n });\n\n CurrentDoctor.then(function(doctor) {\n ctrl.doctor = doctor;\n return $q.all([\n doctor.one('status', 20).get(),\n Restangular.one('ipas', doctor.ipa_id).get(),\n getEducationalDocument()\n ]);\n }).then(function(data) {\n ctrl.status = data[0];\n ctrl.ipa = data[1];\n ctrl.document = data[2];\n ctrl.isLoaded = true;\n });\n\n var getEducationalDocument = function() {\n return ctrl.doctor.getList('documents', { latest: true, doctor_document_type_id: 11 }).then(function(documents) {\n return documents.pop();\n });\n };\n\n ctrl.save = function() {\n ctrl.errors = null;\n var promises = [];\n\n return $q.all(promises).catch(function(res) {\n return $q.reject(res.data.errors);\n });\n };\n\n $scope.$on('forms.doctors.educational-verification.willUploadDocument', function(e) {\n ctrl.uploadStatus = null;\n });\n\n $scope.$on('forms.doctors.educational-verification.didUploadDocument', function(e) {\n ctrl.errors = null;\n ctrl.uploadStatus = {\n msg: 'Upload completed successfully!',\n type: 'success'\n };\n getEducationalDocument().then(function(educationalDocument) {\n ctrl.document = educationalDocument;\n });\n });\n\n ctrl.saveAndSubmit = DoctorCredentialingSections.saveAndSubmit.bind(this);\n ctrl.saveForLater = DoctorCredentialingSections.saveForLater.bind(this);\n}]);\n","'use strict';\n\nangular.module('doctors.employed-by.ctrl', ['forms.doctors.employed-by.dir'])\n\n.controller('DoctorEmployedByCtrl', ['$q', '$scope', 'DoctorCredentialingSections', 'CurrentDoctor', 'Restangular', function($q, $scope, DoctorCredentialingSections, CurrentDoctor, Restangular) {\n var ctrl = this;\n\n ctrl.colleagues = [];\n ctrl.colleaguesQueuedForRemoval = [];\n\n Restangular.one('doctor-credentialing-sections', 10).get().then(function(section) {\n ctrl.section = section;\n });\n\n CurrentDoctor.then(function(doctor) {\n ctrl.doctor = doctor;\n return $q.all([\n doctor.one('status', 10).get(),\n doctor.getList('colleagues', { type: 'employer' })\n ]);\n }).then(function(data) {\n ctrl.status = data[0];\n ctrl.colleagues = data[1];\n ctrl.isLoaded = true;\n });\n\n ctrl.save = function() {\n ctrl.errors = null;\n var promises = [];\n\n ctrl.colleagues.forEach(function(colleague) {\n promises.push(colleague.id ? colleague.patch() : ctrl.colleagues.post(colleague));\n });\n\n ctrl.colleaguesQueuedForRemoval.forEach(function(colleague) {\n if (!colleague.id) return;\n promises.push(colleague.remove());\n });\n\n return $q.all(promises).catch(function(res) {\n return $q.reject(res.data.errors);\n });\n };\n\n $scope.$on('forms.doctors.employed-by.didRemoveColleague', function(e, colleague) {\n ctrl.colleaguesQueuedForRemoval.push(colleague);\n });\n\n ctrl.saveAndSubmit = DoctorCredentialingSections.saveAndSubmit.bind(this);\n ctrl.saveForLater = DoctorCredentialingSections.saveForLater.bind(this);\n}]);\n","'use strict';\n\nangular.module('doctors.employees.ctrl', ['forms.doctors.employees.dir'])\n\n.controller('DoctorEmployeesCtrl', ['$q', '$scope', 'DoctorCredentialingSections', 'CurrentDoctor', 'Restangular', function($q, $scope, DoctorCredentialingSections, CurrentDoctor, Restangular) {\n var ctrl = this;\n\n ctrl.colleagues = [];\n ctrl.colleaguesQueuedForRemoval = [];\n\n Restangular.one('doctor-credentialing-sections', 11).get().then(function(section) {\n ctrl.section = section;\n });\n\n CurrentDoctor.then(function(doctor) {\n ctrl.doctor = doctor;\n return $q.all([\n doctor.one('status', 11).get(),\n doctor.getList('colleagues', { type: 'employee' })\n ]);\n }).then(function(data) {\n ctrl.status = data[0];\n ctrl.colleagues = data[1];\n ctrl.isLoaded = true;\n });\n\n ctrl.save = function() {\n ctrl.errors = null;\n var promises = [];\n\n ctrl.colleagues.forEach(function(colleague) {\n promises.push(colleague.id ? colleague.patch() : ctrl.colleagues.post(colleague));\n });\n\n ctrl.colleaguesQueuedForRemoval.forEach(function(colleague) {\n if (!colleague.id) return;\n promises.push(colleague.remove());\n });\n\n return $q.all(promises).catch(function(res) {\n return $q.reject(res.data.errors);\n });\n };\n\n $scope.$on('forms.doctors.employees.didRemoveColleague', function(e, colleague) {\n ctrl.colleaguesQueuedForRemoval.push(colleague);\n });\n\n ctrl.saveAndSubmit = DoctorCredentialingSections.saveAndSubmit.bind(this);\n ctrl.saveForLater = DoctorCredentialingSections.saveForLater.bind(this);\n}]);\n","'use strict';\n\nangular.module('doctors.ipa-selection.ctrl', ['vcp.api'])\n\n.controller('DoctorIPASelectionCtrl', ['$window', '$q', 'Auth', 'CurrentDoctor', 'Restangular', function($window, $q, Auth, CurrentDoctor, Restangular) {\n var ctrl = this;\n\n $q.all([\n CurrentDoctor,\n Restangular.all('ipas').getList()\n ]).then(function(data) {\n ctrl.doctor = data[0];\n ctrl.ipas = data[1];\n ctrl.isLoaded = true;\n });\n\n ctrl.submit = function() {\n if (ctrl.isWaiting) {\n return;\n };\n\n ctrl.isWaiting = true;\n\n ctrl.doctor.patch().then(function() {\n $window.location = '/#/doctors/credentialing';\n }).finally(function() {\n ctrl.isWaiting = false;\n });\n };\n}]);\n","'use strict';\n\nangular.module('doctors.languages.ctrl', ['forms.doctors.languages.dir'])\n\n.controller('DoctorLanguagesCtrl', ['$q', '$scope', 'DoctorCredentialingSections', 'CurrentDoctor', 'Restangular', function($q, $scope, DoctorCredentialingSections, CurrentDoctor, Restangular) {\n var ctrl = this;\n\n // language: sortIndex\n var defaultLanguages = {\n 'English': 0,\n 'Spanish': 1\n };\n ctrl.languages = [];\n ctrl.removedLanguages = [];\n\n Restangular.one('doctor-credentialing-sections', 22).get().then(function(section) {\n ctrl.section = section;\n });\n\n CurrentDoctor.then(function(doctor) {\n ctrl.doctor = doctor;\n return $q.all([\n doctor.one('status', 22).get(),\n doctor.all('languages').getList()\n ]);\n }).then(function(data) {\n ctrl.status = data[0];\n\n var languageCollection = data[1];\n var languages = [];\n var otherLanguages = [];\n\n languageCollection.forEach(function(language) {\n if (language.name in defaultLanguages) {\n var sortIndex = defaultLanguages[language.name];\n language.isDefaultLanguage = true;\n languages[sortIndex] = language;\n } else {\n otherLanguages.push(language);\n }\n });\n\n angular.forEach(defaultLanguages, function(sortIndex, languageName) {\n if (!languages[sortIndex]) {\n languages[sortIndex] = {\n name: languageName,\n isDefaultLanguage: true\n };\n }\n });\n\n languageCollection.splice(0, languageCollection.length);\n languageCollection.push.apply(languageCollection, languages);\n languageCollection.push.apply(languageCollection, otherLanguages);\n ctrl.languages = languageCollection;\n\n ctrl.isLoaded = true;\n });\n\n ctrl.save = function () {\n ctrl.errors = null;\n\n var promises = [];\n\n ctrl.languages.forEach(function(language) {\n promises.push(language.id ? language.patch() : ctrl.languages.post(language));\n });\n\n ctrl.removedLanguages.forEach(function(language) {\n if (!language.id) return;\n promises.push(language.remove());\n });\n\n return $q.all(promises).catch(function(res) {\n return $q.reject(res.data.errors);\n });\n };\n\n $scope.$on('forms.doctors.languages.didRemoveLanguage', function(e, language) {\n ctrl.removedLanguages.push(language);\n });\n\n ctrl.saveAndSubmit = DoctorCredentialingSections.saveAndSubmit.bind(this);\n ctrl.saveForLater = DoctorCredentialingSections.saveForLater.bind(this);\n}]);\n","'use strict';\n\nangular.module('doctors.liability-insurance.ctrl', ['forms.doctors.liability-insurance.dir'])\n\n.controller('DoctorLiabilityInsuranceCtrl', ['$q', 'DoctorCredentialingSections', 'CurrentDoctor', 'Restangular', function($q, DoctorCredentialingSections, CurrentDoctor, Restangular) {\n var ctrl = this;\n\n Restangular.one('doctor-credentialing-sections', 3).get().then(function(section) {\n ctrl.section = section;\n });\n\n CurrentDoctor.then(function(doctor) {\n ctrl.doctor = doctor;\n return $q.all([\n doctor.one('status', 3).get(),\n doctor.one('insurance').get()\n ]);\n }).then(function(data) {\n ctrl.status = data[0];\n ctrl.insurance = data[1];\n ctrl.isLoaded = true;\n });\n\n ctrl.save = function() {\n ctrl.errors = null;\n return ctrl.insurance.patch().catch(function(res) {\n return $q.reject(res.data.errors);\n });\n };\n\n ctrl.saveAndSubmit = DoctorCredentialingSections.saveAndSubmit.bind(this);\n ctrl.saveForLater = DoctorCredentialingSections.saveForLater.bind(this);\n}]);\n","'use strict';\n\nangular.module('doctors.licensing.ctrl', ['forms.doctors.licensing.dir'])\n\n.controller('DoctorLicensingCtrl', ['$q', '$scope', 'Restangular', 'DoctorCredentialingSections', 'CurrentDoctor', function($q, $scope, Restangular, DoctorCredentialingSections, CurrentDoctor) {\n var ctrl = this;\n\n ctrl.removedStateLiceneses = [];\n\n Restangular.one('doctor-credentialing-sections', 2).get().then(function(section) {\n ctrl.section = section;\n });\n\n CurrentDoctor.then(function(doctor) {\n ctrl.doctor = doctor;\n return $q.all([\n ctrl.doctor.one('status', 2).get(),\n ctrl.doctor.one('dea-license').get(),\n ctrl.doctor.one('board-certification').get(),\n ctrl.doctor.all('state-licenses').getList()\n ]).then(function(data) {\n ctrl.status = data[0];\n ctrl.dea = data[1];\n ctrl.boardCertification = data[2];\n ctrl.stateLicenses = data[3];\n ctrl.isLoaded = true;\n });\n }).finally(function() {\n ctrl.isLoaded = true;\n });\n\n ctrl.save = function() {\n ctrl.errors = null;\n\n var promises = [\n ctrl.dea.patch(),\n ctrl.boardCertification.patch()\n ];\n\n ctrl.stateLicenses.forEach(function(stateLicense) {\n promises.push(stateLicense.id ? stateLicense.patch() : ctrl.stateLicenses.post(stateLicense));\n });\n\n ctrl.removedStateLiceneses.forEach(function(stateLicense) {\n if (!stateLicense.id) return;\n promises.push(stateLicense.remove());\n });\n\n return $q.all(promises).catch(function(res) {\n return $q.reject(res.data.errors);\n });\n };\n\n $scope.$on('forms.doctors.licensing.didRemoveStateLicense', function(e, stateLicense) {\n ctrl.removedStateLiceneses.push(stateLicense);\n });\n\n ctrl.saveAndSubmit = DoctorCredentialingSections.saveAndSubmit.bind(this);\n ctrl.saveForLater = DoctorCredentialingSections.saveForLater.bind(this);\n}]);\n","'use strict';\n\nangular.module('doctors.panel-applications.ctrl', ['forms.doctors.panel-applications.dir'])\n\n.controller('DoctorPanelApplicationsCtrl', ['$q', 'DoctorCredentialingSections', 'CurrentDoctor', 'Restangular', function($q, DoctorCredentialingSections, CurrentDoctor, Restangular) {\n var ctrl = this;\n\n ctrl.panels = [];\n ctrl.selectedPanels = [];\n\n Restangular.one('doctor-credentialing-sections', 13).get().then(function(section) {\n ctrl.section = section;\n });\n\n CurrentDoctor.then(function(doctor) {\n ctrl.doctor = doctor;\n return $q.all([\n Restangular.one('ipas', doctor.ipa_id).getList('panels'),\n doctor.getList('panels'),\n doctor.one('status', 13).get()\n ]);\n }).then(function(data) {\n ctrl.panels = data[0];\n ctrl.selectedPanels = data[1].map(function(panel) {\n return panel.id;\n });\n ctrl.status = data[2];\n ctrl.isLoaded = true;\n });\n\n ctrl.save = function() {\n ctrl.errors = null;\n return $q.all([\n ctrl.doctor.all('panels').customPUT(ctrl.selectedPanels)\n ]).catch(function(res) {\n return $q.reject(res.data.errors);\n });\n };\n\n ctrl.saveAndSubmit = DoctorCredentialingSections.saveAndSubmit.bind(this);\n ctrl.saveForLater = DoctorCredentialingSections.saveForLater.bind(this);\n}]);\n","'use strict';\n\nangular.module('doctors.participation-fees.ctrl', ['forms.authorize-net-payment-button.dir', 'forms.authorize-net-messages.dir'])\n\n.controller('DoctorParticipationFeesCtrl', ['$q', 'CurrentDoctor', 'DoctorCredentialingSections', 'Restangular',\n 'authorizeNet', '$scope', '$log', function($q, CurrentDoctor, DoctorCredentialingSections, Restangular, authorizeNet, $scope, $log) {\n var ctrl = this;\n\n ctrl.errors = [];\n\n ctrl.lastPayment = false;\n\n Restangular.one('doctor-credentialing-sections', 19).get().then(function(section) {\n ctrl.section = section;\n });\n\n CurrentDoctor.then(function(doctor) {\n ctrl.isLoaded = true;\n ctrl.doctor = doctor;\n $q.all([\n ctrl.doctor.one('status', 19).get(),\n ctrl.doctor.one('payments').get(),\n ctrl.doctor.getList('transactions', { complete: false }),\n Restangular.one('ipas', doctor.ipa_id).get()\n ]).then(function(data) {\n ctrl.status = data[0];\n ctrl.balance = data[1].balance;\n ctrl.transactions = data[2];\n ctrl.ipa = data[3];\n ctrl.isLoaded = true;\n });\n });\n\n ctrl.submit = function(authorizeNetData) {\n if (ctrl.balance < 0) {\n ctrl.makePayment(authorizeNetData);\n } else {\n ctrl.saveAndSubmit();\n }\n };\n authorizeNet.registerResponseHandler(function(authorizeNetData){\n ctrl.submit(authorizeNetData);\n });\n\n authorizeNet.registerErrorHandler(function (authorizeNetError){\n $scope.$apply(function(){\n $log.error(authorizeNetError);\n // convert authorizeNetError format into array of error messages\n ctrl.errors = authorizeNetError.message.map(function(obj){ return obj[\"text\"]; });;\n });\n });\n\n ctrl.makePayment = function(authorizeNetData) {\n if (ctrl.isWaiting) return;\n ctrl.errors = null;\n ctrl.isWaiting = true;\n ctrl.doctor.makePayment(authorizeNetData)\n .then(function(transaction) {\n transaction = Restangular.restangularizeElement(null, transaction, 'transactions')\n ctrl.transactions.push(transaction);\n return ctrl.doctor.one('payments').get();\n })\n .then(function(paymentData) {\n ctrl.lastPayment = -ctrl.balance;\n ctrl.balance = paymentData.balance;\n }, function(res) {\n // handle both the \"res.data\" format from server, and \"res.errors\" from 3rd party service\n var copy = (res.data && res.data.errors && res.data.errors.message) || (res.errors && res.errors.message);\n ctrl.errors = [copy];\n })\n .finally(function() {\n ctrl.isWaiting = false;\n });\n };\n\n ctrl.save = function() {\n ctrl.errors = null;\n return $q.all([]).catch(function(res) {\n return $q.reject(res.data.errors);\n });\n };\n\n ctrl.saveAndSubmit = DoctorCredentialingSections.saveAndSubmit.bind(this);\n ctrl.saveForLater = DoctorCredentialingSections.saveForLater.bind(this);\n}]);\n","'use strict';\n\nangular.module('doctors.partners-and-associates.ctrl', ['forms.doctors.partners-and-associates.dir'])\n\n.controller('DoctorPartnerAndAssociatesCtrl', ['$q', '$scope', 'DoctorCredentialingSections', 'CurrentDoctor', 'Restangular', function($q, $scope, DoctorCredentialingSections, CurrentDoctor, Restangular) {\n var ctrl = this;\n\n ctrl.colleagues = [];\n ctrl.colleaguesQueuedForRemoval = [];\n\n Restangular.one('doctor-credentialing-sections', 9).get().then(function(section) {\n ctrl.section = section;\n });\n\n CurrentDoctor.then(function(doctor) {\n ctrl.doctor = doctor;\n return $q.all([\n doctor.one('status', 9).get(),\n doctor.getList('colleagues', { type: 'partner' })\n ]);\n }).then(function(data) {\n ctrl.status = data[0];\n ctrl.colleagues = data[1];\n ctrl.isLoaded = true;\n });\n\n ctrl.save = function() {\n ctrl.errors = null;\n var promises = [];\n\n ctrl.colleagues.forEach(function(colleague) {\n promises.push(colleague.id ? colleague.patch() : ctrl.colleagues.post(colleague));\n });\n\n ctrl.colleaguesQueuedForRemoval.forEach(function(colleague) {\n if (!colleague.id) return;\n promises.push(colleague.remove());\n });\n\n return $q.all(promises).catch(function(res) {\n return $q.reject(res.data.errors);\n });\n };\n\n $scope.$on('forms.doctors.partners-and-associates.didRemoveColleague', function(e, colleague) {\n ctrl.colleaguesQueuedForRemoval.push(colleague);\n });\n\n ctrl.saveAndSubmit = DoctorCredentialingSections.saveAndSubmit.bind(this);\n ctrl.saveForLater = DoctorCredentialingSections.saveForLater.bind(this);\n}]);\n","'use strict';\n\nangular.module('doctors.personal-information.ctrl', ['forms.doctors.personal-information.dir', 'section-status.dir'])\n\n.controller('DoctorPersonalInformationCtrl', ['$q', 'Restangular', 'DoctorCredentialingSections', 'CurrentDoctor', function($q, Restangular, DoctorCredentialingSections, CurrentDoctor) {\n var ctrl = this;\n\n Restangular.one('doctor-credentialing-sections', 1).get().then(function(section) {\n ctrl.section = section;\n });\n\n CurrentDoctor.then(function(doctor) {\n ctrl.isLoaded = false;\n ctrl.doctor = doctor;\n $q.all([\n ctrl.doctor.one('status', 1).get(),\n ctrl.doctor.getList('types')\n ]).then(function(data) {\n ctrl.status = data[0];\n ctrl.doctorTypes = data[1].map(function(doctorType) {\n return doctorType.id;\n });\n ctrl.isLoaded = true;\n });\n });\n\n ctrl.save = function() {\n ctrl.errors = null;\n return $q.all([\n ctrl.doctor.patch(),\n ctrl.doctor.one('types').post(null, ctrl.doctorTypes)\n ]).catch(function(res) {\n return $q.reject(res.data.errors);\n });\n };\n\n ctrl.saveAndSubmit = DoctorCredentialingSections.saveAndSubmit.bind(this);\n ctrl.saveForLater = DoctorCredentialingSections.saveForLater.bind(this);\n}]);\n","'use strict';\n\nangular.module('doctors.practice-information.ctrl', ['forms.doctors.practice-information.dir'])\n\n.controller('DoctorPracticeInformationCtrl', ['$q', 'CurrentDoctor', 'Restangular', 'DoctorCredentialingSections', function($q, CurrentDoctor, Restangular, DoctorCredentialingSections) {\n var ctrl = this;\n\n Restangular.one('doctor-credentialing-sections', 8).get().then(function(section) {\n ctrl.section = section;\n });\n\n CurrentDoctor.then(function(doctor) {\n ctrl.doctor = doctor;\n ctrl.readonly = false;\n return $q.all([\n doctor.one('status', 8).get(),\n doctor.one('practice').get()\n ]);\n }).then(function(data) {\n ctrl.status = data[0];\n ctrl.practice = data[1];\n\n ctrl.isLoaded = true;\n });\n\n ctrl.save = function() {\n ctrl.errors = null;\n\n if (!ctrl.practice.has_different_claims_address) {\n ctrl.practice.claims_address = '';\n ctrl.practice.claims_city = '';\n ctrl.practice.claims_state = '';\n ctrl.practice.claims_zip = '';\n }\n\n if (!ctrl.practice.has_hospital_privileges) {\n ctrl.practice.hospital_name = '';\n ctrl.practice.hospital_address = '';\n ctrl.practice.hospital_phone = '';\n }\n\n if (!ctrl.practice.offers_telehealth) {\n ctrl.practice.telehealth_mode_mobile_health = false;\n ctrl.practice.telehealth_mode_real_time = false;\n ctrl.practice.telehealth_mode_remote_patient_monitoring = false;\n ctrl.practice.telehealth_mode_store_and_forward = false;\n ctrl.practice.telehealth_services = '';\n }\n\n if (!ctrl.practice.mailing_different_from_claims_address) {\n ctrl.practice.mailing_address = '';\n ctrl.practice.mailing_city = '';\n ctrl.practice.mailing_state = '';\n ctrl.practice.mailing_zip = '';\n ctrl.practice.mailing_phone = '';\n ctrl.practice.mailing_fax = '';\n }\n\n return $q.all([\n ctrl.practice.patch()\n ]).catch(function(res) {\n return $q.reject(res.data.errors);\n });\n };\n\n ctrl.saveAndSubmit = DoctorCredentialingSections.saveAndSubmit.bind(this);\n ctrl.saveForLater = DoctorCredentialingSections.saveForLater.bind(this);\n}]);\n","'use strict';\n\nangular.module('doctors.professional-affiliations.ctrl', ['forms.doctors.professional-affiliations.dir'])\n\n.controller('DoctorProfessionalAffiliationsCtrl', ['$q', '$scope', 'DoctorCredentialingSections', 'CurrentDoctor', 'Restangular', function($q, $scope, DoctorCredentialingSections, CurrentDoctor, Restangular) {\n var ctrl = this;\n\n ctrl.affiliationTypes = [];\n ctrl.affiliations = [];\n ctrl.affiliationsQueuedForRemoval = [];\n\n Restangular.one('doctor-credentialing-sections', 12).get().then(function(section) {\n ctrl.section = section;\n });\n\n CurrentDoctor.then(function(doctor) {\n ctrl.doctor = doctor;\n return $q.all([\n doctor.one('status', 12).get(),\n Restangular.one('ipas', doctor.ipa_id).all('affiliation-types').getList(),\n doctor.all('affiliations').getList()\n ]);\n }).then(function(data) {\n ctrl.status = data[0];\n ctrl.affiliationTypes = data[1];\n ctrl.affiliations = data[2];\n ctrl.isLoaded = true;\n });\n\n ctrl.save = function() {\n ctrl.errors = null;\n var promises = [];\n\n ctrl.affiliations.forEach(function(affiliation) {\n promises.push(affiliation.id ? affiliation.patch() : ctrl.affiliations.post(affiliation));\n });\n\n ctrl.affiliationsQueuedForRemoval.forEach(function(affiliation) {\n promises.push(affiliation.remove());\n });\n\n return $q.all(promises).catch(function(res) {\n return $q.reject(res.data.errors);\n });\n };\n\n $scope.$on('forms.doctors.professional-affiliations.didRemoveAffiliation', function(e, affiliation) {\n if (!affiliation.id) {\n return;\n };\n ctrl.affiliationsQueuedForRemoval.push(affiliation);\n });\n\n ctrl.saveAndSubmit = DoctorCredentialingSections.saveAndSubmit.bind(this);\n ctrl.saveForLater = DoctorCredentialingSections.saveForLater.bind(this);\n}]);\n","'use strict';\n\nangular.module('doctors.professional-questions.ctrl', ['forms.doctors.professional-questions.dir'])\n\n.controller('DoctorProfessionalQuestionsCtrl', ['$q', 'DoctorCredentialingSections', 'CurrentDoctor', 'Restangular', function($q, DoctorCredentialingSections, CurrentDoctor, Restangular) {\n var ctrl = this;\n\n ctrl.questions = [];\n\n Restangular.one('doctor-credentialing-sections', 5).get().then(function(section) {\n ctrl.section = section;\n });\n\n CurrentDoctor.then(function(doctor) {\n ctrl.doctor = doctor;\n return $q.all([\n doctor.one('status', 5).get(),\n doctor.getList('questions', { type: 'professional', embed: 'answer' }),\n doctor.getList('signatures', { type: 'professional-questions' })\n ]);\n }).then(function(data) {\n ctrl.status = data[0];\n ctrl.questions = data[1];\n ctrl.signature = data[2].shift() || {};\n ctrl.isLoaded = true;\n });\n\n ctrl.save = function() {\n ctrl.errors = null;\n\n var promises = [\n ctrl.doctor.all('signatures').post({\n type: 'professional-questions',\n accepted: ctrl.signature.accepted,\n authorization: ctrl.signature.authorization\n })\n ];\n\n ctrl.questions.forEach(function(question) {\n if (!question.answer.response) {\n return;\n }\n promises.push(question.one('answer').patch(question.answer));\n });\n\n return $q.all(promises).catch(function(res) {\n return $q.reject(res.data.errors);\n });\n };\n\n ctrl.saveAndSubmit = DoctorCredentialingSections.saveAndSubmit.bind(this);\n ctrl.saveForLater = DoctorCredentialingSections.saveForLater.bind(this);\n}]);\n","'use strict';\n\nangular.module('doctors.provider-panels.ctrl', ['forms.doctors.provider-panels.dir'])\n\n.controller('DoctorProviderPanelsCtrl', ['$q', 'DoctorCredentialingSections', 'CurrentDoctor', 'Restangular', function($q, DoctorCredentialingSections, CurrentDoctor, Restangular) {\n var ctrl = this;\n\n ctrl.panels = [];\n ctrl.selectedPanels = [];\n\n Restangular.one('doctor-credentialing-sections', 15).get().then(function(section) {\n ctrl.section = section;\n });\n\n CurrentDoctor.then(function(doctor) {\n ctrl.doctor = doctor;\n return $q.all([\n Restangular.all('providers').getList(),\n doctor.getList('providers'),\n doctor.one('status', 15).get()\n ]);\n }).then(function(data) {\n ctrl.panels = data[0];\n ctrl.selectedPanels = data[1].map(function(panel) {\n return panel.id;\n });\n ctrl.status = data[2];\n ctrl.isLoaded = true;\n });\n\n ctrl.save = function() {\n ctrl.errors = null;\n return $q.all([\n ctrl.doctor.all('providers').customPUT(ctrl.selectedPanels)\n ]).catch(function(res) {\n return $q.reject(res.data.errors);\n });\n };\n\n ctrl.saveAndSubmit = DoctorCredentialingSections.saveAndSubmit.bind(this);\n ctrl.saveForLater = DoctorCredentialingSections.saveForLater.bind(this);\n}]);\n","'use strict';\n\nangular.module('doctors.references.ctrl', ['vcp.api', 'forms.doctors.references.dir'])\n\n.controller('DoctorReferencesCtrl', ['$q', 'DoctorCredentialingSections', 'CurrentDoctor', 'Restangular', function($q, DoctorCredentialingSections, CurrentDoctor, Restangular) {\n var ctrl = this;\n\n Restangular.one('doctor-credentialing-sections', 6).get().then(function(section) {\n ctrl.section = section;\n });\n\n CurrentDoctor.then(function(doctor) {\n ctrl.doctor = doctor;\n return $q.all([\n doctor.one('status', 6).get(),\n doctor.getList('references')\n ]);\n }).then(function(data) {\n ctrl.status = data[0];\n ctrl.references = data[1];\n\n while (ctrl.references.length < 2) {\n ctrl.references.push({});\n }\n\n ctrl.isLoaded = true;\n });\n\n ctrl.save = function() {\n ctrl.errors = null;\n var promises = [];\n\n ctrl.references.forEach(function(reference) {\n promises.push(reference.id ? reference.patch() : ctrl.references.post(reference));\n });\n\n return $q.all(promises).catch(function(res) {\n return $q.reject(res.data.errors);\n });\n };\n\n ctrl.saveAndSubmit = DoctorCredentialingSections.saveAndSubmit.bind(this);\n ctrl.saveForLater = DoctorCredentialingSections.saveForLater.bind(this);\n}]);\n","'use strict';\n\nangular.module('doctors.requirements-for-participation.ctrl', ['forms.doctors.requirements-for-participation.dir'])\n\n.controller('DoctorRequirementsForParticipationCtrl', ['$q', '$sce', 'DoctorCredentialingSections', 'CurrentDoctor', 'Restangular', function($q, $sce, DoctorCredentialingSections, CurrentDoctor, Restangular) {\n var ctrl = this;\n\n ctrl.requirements = '';\n\n Restangular.one('doctor-credentialing-sections', 16).get().then(function(section) {\n ctrl.section = section;\n });\n\n CurrentDoctor.then(function(doctor) {\n ctrl.doctor = doctor;\n return $q.all([\n doctor.one('status', 16).get(),\n doctor.getList('signatures', { type: 'requirements' }),\n Restangular.one('ipas', doctor.ipa_id).one('requirements-for-participation').get(),\n Restangular.one('ipas', doctor.ipa_id).get()\n ]);\n }).then(function(data) {\n ctrl.status = data[0];\n ctrl.signature = data[1].shift() || {};\n ctrl.requirements = $sce.trustAsHtml(data[2]);\n ctrl.ipa = data[3];\n ctrl.isLoaded = true;\n });\n\n ctrl.save = function() {\n ctrl.errors = null;\n return $q.all([\n ctrl.doctor.all('signatures').post({\n type: 'requirements',\n accepted: ctrl.signature.accepted,\n authorization: ctrl.signature.authorization\n })\n ]).catch(function(res) {\n return $q.reject(res.data.errors);\n });\n };\n\n ctrl.saveAndSubmit = DoctorCredentialingSections.saveAndSubmit.bind(this);\n ctrl.saveForLater = DoctorCredentialingSections.saveForLater.bind(this);\n}]);\n","'use strict';\n\nangular.module('doctors.single-signature-provider-acknowledgment.ctrl', ['forms.doctors.single-signature-provider-acknowledgment.dir'])\n\n.controller('DoctorSingleSignatureProviderAcknowledgementCtrl', ['$q', 'DoctorCredentialingSections', 'CurrentDoctor', 'Restangular', function($q, DoctorCredentialingSections, CurrentDoctor, Restangular) {\n var ctrl = this;\n\n Restangular.one('doctor-credentialing-sections', 21).get().then(function(section) {\n ctrl.section = section;\n });\n\n CurrentDoctor.then(function(doctor) {\n ctrl.doctor = doctor;\n return $q.all([\n doctor.one('status', 21).get(),\n Restangular.one('ipas', doctor.ipa_id).get(),\n doctor.getList('signatures', { type: 'single-signature-provider-acknowledgment' })\n ]);\n }).then(function(data) {\n ctrl.status = data[0];\n ctrl.ipa = data[1];\n ctrl.signature = data[2].shift() || {};\n ctrl.isLoaded = true;\n });\n\n ctrl.save = function() {\n ctrl.errors = null;\n return $q.all([\n ctrl.doctor.all('signatures').post({\n type: 'single-signature-provider-acknowledgment',\n accepted: ctrl.signature.accepted,\n authorization: ctrl.signature.authorization\n })\n ]).catch(function(res) {\n return $q.reject(res.data.errors);\n });\n };\n\n ctrl.saveAndSubmit = DoctorCredentialingSections.saveAndSubmit.bind(this);\n ctrl.saveForLater = DoctorCredentialingSections.saveForLater.bind(this);\n}]);\n","'use strict';\n\nangular.module('doctors.vcd-provider-agreement.ctrl', ['forms.doctors.vcd-provider-agreement.dir'])\n\n.controller('DoctorVcdProviderAgreementCtrl', ['$q', 'DoctorCredentialingSections', 'CurrentDoctor', 'Restangular', function($q, DoctorCredentialingSections, CurrentDoctor, Restangular) {\n var ctrl = this;\n\n var sectionId = 24; // section id for vcd-provider-agreement is twenty-four\n var signatureSlug = 'vcd-provider-agreement'; // slug for signature type is 'vcd-provider-agreement'\n\n Restangular.one('doctor-credentialing-sections', 24).get().then(function(section) {\n ctrl.section = section;\n });\n\n CurrentDoctor.then(function(doctor) {\n ctrl.doctor = doctor;\n return $q.all([\n doctor.one('status', sectionId).get(),\n doctor.getList('signatures', { type: signatureSlug })\n ]);\n }).then(function(data) {\n ctrl.status = data[0];\n ctrl.signature = data[1].shift() || {};\n ctrl.panel = 4; // magic number for VCD panel\n ctrl.isLoaded = true;\n });\n\n ctrl.save = function() {\n ctrl.errors = null;\n return $q.all([\n ctrl.doctor.all('signatures').post({\n type: signatureSlug,\n accepted: ctrl.signature.accepted,\n authorization: ctrl.signature.authorization\n })\n ]).catch(function(res) {\n return $q.reject(res.data.errors);\n });\n };\n\n ctrl.saveAndSubmit = DoctorCredentialingSections.saveAndSubmit.bind(this);\n ctrl.saveForLater = DoctorCredentialingSections.saveForLater.bind(this);\n}]);\n","'use strict';\n\nangular.module('doctors.vision-care-direct.ctrl', ['forms.doctors.vision-care-direct.dir'])\n\n.controller('DoctorVisionCareDirectCtrl', ['$q', 'DoctorCredentialingSections', 'CurrentDoctor', 'Restangular', function($q, DoctorCredentialingSections, CurrentDoctor, Restangular) {\n var ctrl = this;\n\n ctrl.questions = [];\n\n Restangular.one('doctor-credentialing-sections', 14).get().then(function(section) {\n ctrl.section = section;\n });\n\n CurrentDoctor.then(function(doctor) {\n ctrl.doctor = doctor;\n return $q.all([\n doctor.one('status', 14).get(),\n doctor.getList('questions', { type: 'vcd', embed: 'answer' })\n ]);\n }).then(function(data) {\n ctrl.status = data[0];\n ctrl.questions = data[1];\n ctrl.isLoaded = true;\n });\n\n ctrl.save = function () {\n ctrl.errors = null;\n\n var promises = [];\n\n ctrl.questions.forEach(function(question) {\n if (!question.answer.response) {\n return;\n }\n promises.push(question.one('answer').patch(question.answer));\n });\n\n return $q.all(promises).catch(function(res) {\n return $q.reject(res.data.errors);\n });\n };\n\n ctrl.saveAndSubmit = DoctorCredentialingSections.saveAndSubmit.bind(this);\n ctrl.saveForLater = DoctorCredentialingSections.saveForLater.bind(this);\n}]);\n","'use strict';\n\nangular.module('doctors.welcome.ctrl', ['vcp.api'])\n\n.controller('DoctorWelcomeCtrl', ['Auth', 'CurrentDoctor', 'Restangular', function(Auth, CurrentDoctor, Restangular) {\n var ctrl = this;\n\n CurrentDoctor.then(function(doctor) {\n ctrl.doctor = doctor;\n if (doctor.ipa_id) {\n return Restangular.one('ipas', ctrl.doctor.ipa_id).get().then(function(ipa) {\n ctrl.ipa = ipa;\n });\n }\n }).then(function() {\n ctrl.isLoaded = true;\n });\n}]);\n","'use strict';\n\nangular.module('doctors.work-history.ctrl', ['forms.doctors.work-history.dir'])\n\n.controller('DoctorWorkHistoryCtrl', ['$q', '$scope', 'DoctorCredentialingSections', 'CurrentDoctor', 'Restangular', function($q, $scope, DoctorCredentialingSections, CurrentDoctor, Restangular) {\n var ctrl = this;\n\n ctrl.workHistory = [];\n ctrl.workHistoryQueuedForRemoval = [];\n\n Restangular.one('doctor-credentialing-sections', 4).get().then(function(section) {\n ctrl.section = section;\n });\n\n CurrentDoctor.then(function(doctor) {\n ctrl.doctor = doctor;\n return $q.all([\n doctor.one('status', 4).get(),\n doctor.getList('work-history')\n ]);\n }).then(function(data) {\n ctrl.status = data[0];\n ctrl.workHistory = data[1];\n ctrl.isLoaded = true;\n });\n\n ctrl.save = function() {\n ctrl.errors = null;\n var promises = [];\n\n ctrl.workHistory.forEach(function(history) {\n promises.push(history.id ? history.patch() : ctrl.workHistory.post(history));\n });\n\n ctrl.workHistoryQueuedForRemoval.forEach(function(history) {\n promises.push(history.remove());\n });\n\n return $q.all(promises).then(function(res) {\n ctrl.isEditing = false;\n }, function(res) {\n ctrl.errors = res.data.errors;\n }).finally(function() {\n ctrl.isWaiting = false;\n });\n };\n\n $scope.$on('forms.doctors.work-history.didRemoveWorkHistory', function(e, workHistory) {\n if (!workHistory.id) return;\n ctrl.workHistoryQueuedForRemoval.push(workHistory);\n });\n\n ctrl.saveAndSubmit = DoctorCredentialingSections.saveAndSubmit.bind(this);\n ctrl.saveForLater = DoctorCredentialingSections.saveForLater.bind(this);\n}]);\n","'use strict';\n\nangular.module('fields.date-field.date-field.dir', [])\n\n.directive('fieldsDateField', [function() {\n return {\n restrict: 'E',\n scope: {\n theDate: \"=\",\n label: \"=\"\n },\n replace: true,\n templateUrl: '/fields/date-field/date-field.html',\n controller: [function() {}],\n controllerAs: 'ctrl',\n bindToController: true\n };\n}]);\n","'use strict';\n\nangular.module('forms.authorize-net-messages.dir', [])\n\n.directive('formAuthorizeNetMessages', ['$location', function($location) {\n return {\n restrict: 'E',\n scope: {\n errors: '='\n },\n templateUrl: '/forms/authorize-net-messages/authorize-net-messages.html',\n controller: ['$scope', '$log', function($scope, $log) {\n var ctrl = this;\n $log.debug(\"running form-authorize-net-messages\");\n ctrl.isSecure = $location.protocol() === 'https';\n }],\n controllerAs: 'ctrl',\n bindToController: true\n };\n}]);\n","'use strict';\n\nangular.module('forms.authorize-net-payment-button.dir', [])\n .factory(\"authorizeNet\", [\"$window\", \"$log\", function($window, $log){\n var service = this;\n\n service.handleResponse = function(){ $log.warn(\"handleResponse has not been set!\"); };\n service.handleErrors = function(){ $log.warn(\"handleErrors has not been set!\"); };\n\n var aNetResponseHandler = \"authorizeNetResponseHandler\";\n var aNetAcceptUIClass = \"AcceptUI\"; // this value *must* be AcceptUI for the AuthorizeNet AcceptUI code to function properly.\n\n // Test environment specific. TODO update to something that will allow these to be injected at compile time.\n\n var aNetApiLoginId = \"843gQC6E6y2v\";\n var aNetPublicClientKey = \"4TdH7V2QVJK6n8BddV9k4Mr9b5ShGULu76GKTmTQ2Fnv9UHzw2gY6dgws5F2Mk93\";\n var aNetAcceptUiUrl = \"https://js.authorize.net/v3/AcceptUI.js\";\n\n $window[aNetResponseHandler] = function(response) {\n if (response.messages.resultCode === \"Error\") {\n $log.info(\"aNetErrorHandler called. Triggering the handleErrors callback!\");\n service.handleErrors(response.messages);\n } else {\n $log.info(\"aNetResponseHandler called. Triggering the handleResponse callback\");\n service.handleResponse(response.opaqueData);\n }\n };\n\n return {\n \"aNetResponseHandler\": aNetResponseHandler,\n \"aNetAcceptUIClass\": aNetAcceptUIClass,\n \"aNetApiLoginId\": aNetApiLoginId,\n \"aNetPublicClientKey\": aNetPublicClientKey,\n \"aNetAcceptUiUrl\": aNetAcceptUiUrl,\n \"registerResponseHandler\": function(callback){ service.handleResponse = callback; },\n \"registerErrorHandler\": function(callback){ service.handleErrors = callback; },\n };\n }])\n.directive('formAuthorizeNetPaymentButton', ['$location', '$log', 'authorizeNet', function($location, $log, authorizeNet) {\n return {\n restrict: 'E',\n scope: {},\n link: {\n post: function (scope, elem, attr){\n // load and run the authorize.net code after the element is created\n var tag = document.createElement(\"script\");\n tag.src = authorizeNet[\"aNetAcceptUiUrl\"];\n tag.type = 'text/javascript';\n tag.async = true;\n tag.charset = 'utf-8';\n elem.append(tag);\n }\n },\n replace: true,\n templateUrl: '/forms/authorize-net-payment-button/authorize-net-payment-button.html',\n controller: ['$scope', 'Restangular', 'authorizeNet', function($scope, Restangular, authorizeNet) {\n var ctrl = this;\n\n $scope.aNetAcceptUIClass = authorizeNet[\"aNetAcceptUIClass\"];\n $scope.aNetResponseHandler = authorizeNet[\"aNetResponseHandler\"]; // why not a direct reference?\n $scope.aNetPublicClientKey = authorizeNet[\"aNetPublicClientKey\"];\n $scope.aNetApiLoginId = authorizeNet[\"aNetApiLoginId\"];\n\n }],\n controllerAs: 'ctrl',\n bindToController: true\n };\n}]);\n","'use strict';\n\nangular.module('forms.electronic-signature', [])\n\n.directive('electronicSignature', [function() {\n return {\n restrict: 'E',\n scope: {\n download: '=',\n errors: '=',\n signature: '=ngModel',\n text: '@'\n },\n replace: true,\n templateUrl: '/forms/electronic-signature/electronic-signature.html',\n controller: ['$scope', function ($scope) {\n }]\n };\n}]);\n","'use strict';\n\nangular.module('forms.forgot-password.dir', ['forgot-password.ctrl'])\n\n.directive('formForgotPassword', [function() {\n return {\n restrict: 'E',\n scope: false,\n replace: true,\n templateUrl: '/forms/forgot-password/forgot-password.html',\n controller: 'ForgotPasswordCtrl',\n controllerAs: 'forgotPasswordCtrl',\n bindToController: true\n };\n}]);\n","'use strict';\n\nangular.module('forms.my-account.dir', [])\n\n.directive('formMyAccount', [function() {\n return {\n restrict: 'E',\n scope: false,\n replace: true,\n templateUrl: '/forms/my-account/my-account.html',\n controller: ['Auth', function(Auth) {\n var ctrl = this;\n\n Auth.whoAmI().then(function(user) {\n ctrl.user = user;\n ctrl.isLoaded = true;\n });\n\n ctrl.submit = function() {\n if (ctrl.isWaiting) {\n return;\n }\n\n ctrl.isWaiting = true;\n ctrl.alerts = null;\n ctrl.errors = null;\n\n ctrl.user.patch().then(function(user) {\n ctrl.user = user;\n ctrl.isChangingPassword = false;\n ctrl.alerts = [{\n type: 'success',\n message: 'Account information has been saved.'\n }];\n }, function(res) {\n ctrl.errors = res.data.errors;\n ctrl.alerts = [{\n type: 'danger',\n message: 'Please check your account information.'\n }];\n }).finally(function() {\n ctrl.isWaiting = false;\n });\n };\n }],\n controllerAs: 'myAccountCtrl',\n bindToController: true\n };\n}]);\n","'use strict';\n\nangular.module('forms.reset-password.dir', ['reset-password.ctrl'])\n\n.directive('formResetPassword', [function() {\n return {\n restrict: 'E',\n scope: {\n token: '='\n },\n replace: true,\n templateUrl: '/forms/reset-password/reset-password.html',\n controller: ['$rootScope', 'Auth', function($rootScope, Auth) {\n var ctrl = this;\n\n ctrl.alerts = [];\n ctrl.closeAlert = function(index) {\n ctrl.alerts.splice(index, 1);\n };\n\n ctrl.submit = function(form) {\n ctrl.isWaiting = true;\n ctrl.alerts = [];\n Auth.resetPassword(ctrl.token, ctrl.values.password, ctrl.values.password_confirm).then(function() {\n $rootScope.$broadcast('forms.reset-password.onDidResetPassword', ctrl.values.password);\n }, function(err) {\n if (err) {\n ctrl.alerts.push({\n type: 'danger',\n msg: err.message\n });\n ctrl.errors = err.errors;\n }\n }).finally(function() {\n ctrl.isWaiting = false;\n });\n };\n }],\n controllerAs: 'resetPasswordCtrl',\n bindToController: true\n };\n}]);\n","'use strict';\n\nangular.module('forms.sign-in.dir', ['sign-in.ctrl'])\n\n.directive('formSignIn', [function() {\n return {\n restrict: 'E',\n scope: false,\n replace: true,\n templateUrl: '/forms/sign-in/sign-in.html',\n controller: 'SignInCtrl',\n controllerAs: 'signInCtrl',\n bindToController: true\n };\n}]);\n","'use strict';\n\nangular.module('forms.sign-up.dir', ['sign-up.ctrl'])\n\n.directive('formSignUp', [function() {\n return {\n restrict: 'E',\n scope: false,\n replace: true,\n templateUrl: '/forms/sign-up/sign-up.html',\n controller: 'SignUpCtrl',\n controllerAs: 'signUpCtrl',\n bindToController: true\n };\n}]);\n","'use strict';\n\nangular.module('forms.validation.errors.dir', [])\n\n.directive('formsValidationErrors', [function() {\n return {\n restrict: 'E',\n scope: {\n errors: '='\n },\n replace: true,\n templateUrl: '/forms/validation/errors.html',\n controller: [function() {\n var ctrl = this;\n }],\n controllerAs: 'ctrl',\n bindToController: true\n };\n}]);\n","'use strict';\n\nangular.module('forms.doctors.additional-practice.dir', [])\n\n.directive('formDoctorAdditionalPractice', [function() {\n return {\n restrict: 'E',\n scope: {\n readonly: '=',\n practice: '=',\n errors: '=',\n disableDeletion: '=',\n removePractice: '&',\n formId: '@'\n },\n replace: true,\n templateUrl: '/forms/doctors/additional-practice/additional-practice.html',\n controller: ['$scope', function($scope) {\n var ctrl = this;\n ctrl.effectiveDateOpen = false;\n\n ctrl.toggleEffectiveDateOpen = function(){ ctrl.effectiveDateOpen = !ctrl.effectiveDateOpen; };\n }],\n controllerAs: 'ctrl',\n bindToController: true\n };\n}]);\n","'use strict';\n\nangular.module('forms.doctors.additional-practices.dir', ['forms.doctors.additional-practice.dir'])\n\n.directive('formDoctorAdditionalPractices', [function() {\n return {\n restrict: 'E',\n scope: {\n readonly: '=',\n practices: '=',\n errors: '=',\n disableDeletion: '='\n },\n replace: true,\n templateUrl: '/forms/doctors/additional-practices/additional-practices.html',\n controller: ['$scope', function($scope) {\n var ctrl = this;\n\n ctrl.addPractice = function() {\n ctrl.practices.push({\n is_accepting_new_patients: \"1\",\n offers_telehealth: \"0\",\n has_different_claims_address: \"0\",\n mailing_different_from_claims_address: \"0\"\n });\n };\n\n ctrl.removePractice = function(practice) {\n ctrl.practices.splice(ctrl.practices.indexOf(practice), 1);\n $scope.$emit('forms.doctors.additional-practices.didRemovePractice', practice);\n };\n\n if(ctrl.readonly){\n ctrl._addPracticeCached = ctrl.addPractice;\n ctrl.addPractice = function() { null; }\n\n ctrl._removePracticeCached = ctrl.removePractice;\n ctrl.removePractice = function() { null; }\n }\n }],\n controllerAs: 'ctrl',\n bindToController: true\n };\n}]);\n","'use strict';\n\nangular.module('forms.doctors.affirmation-of-supplied-information.dir', [])\n\n.directive('formDoctorAffirmationOfSuppliedInformation', [function() {\n return {\n restrict: 'E',\n scope: {\n doctor: '=',\n ipa: '=',\n signature: '=',\n errors: '='\n },\n replace: true,\n templateUrl: '/forms/doctors/affirmation-of-supplied-information/affirmation-of-supplied-information.html',\n controller: [function() {}],\n controllerAs: 'ctrl',\n bindToController: true\n };\n}]);\n","'use strict';\n\nangular.module('forms.doctors.authorization-and-release.dir', [])\n\n.directive('formDoctorAuthorizationAndRelease', [function() {\n return {\n restrict: 'E',\n scope: {\n ipa: '=',\n signature: '=',\n errors: '='\n },\n replace: true,\n templateUrl: '/forms/doctors/authorization-and-release/authorization-and-release.html',\n controller: [function() {}],\n controllerAs: 'ctrl',\n bindToController: true\n };\n}]);\n","'use strict';\n\nangular.module('forms.doctors.documentation.dir', ['angularFileUpload'])\n\n.directive('formDoctorDocumentation', [function() {\n return {\n restrict: 'E',\n scope: {\n doctor: '=',\n documentTypes: '=',\n errors: '='\n },\n replace: true,\n templateUrl: '/forms/doctors/documentation/documentation.html',\n controller: ['$scope', 'FileUploader', function($scope, FileUploader) {\n var ctrl = this;\n ctrl.uploadableDocuments = [];\n\n ctrl.refreshUploadableDocuments = function() {\n if (!ctrl.documentTypes || !ctrl.doctor) {\n return;\n }\n\n ctrl.uploadableDocuments = ctrl.documentTypes.map(function(documentType) {\n var uploadPath = '/api/v1/doctors/' + ctrl.doctor.id + '/documents';\n if (documentType.uploader) {\n documentType.uploader.url = uploadPath;\n return;\n }\n\n documentType.uploader = new FileUploader({\n url: uploadPath,\n alias: 'document',\n autoUpload: true,\n removeAfterUpload: true,\n formData: [{ 'doctor_document_type_id': documentType.id }]\n });\n\n documentType.uploader.onBeforeUploadItem = function() {\n documentType.alert = {\n msg: 'Uploading',\n type: 'warning'\n };\n };\n\n documentType.uploader.onSuccessItem = function() {\n documentType.alert = {\n msg: 'Upload Complete',\n type: 'success'\n };\n };\n });\n };\n\n $scope.$watch(function() {\n return ctrl.doctor;\n }, ctrl.refreshUploadableDocuments);\n\n $scope.$watch(function() {\n return ctrl.documentTypes;\n }, ctrl.refreshUploadableDocuments);\n }],\n controllerAs: 'ctrl',\n bindToController: true\n };\n}]);\n","'use strict';\n\nangular.module('forms.doctors.educational-verification.dir', ['angularFileUpload'])\n\n.directive('formDoctorEducationalVerification', [function() {\n return {\n restrict: 'E',\n scope: {\n doctor: '=',\n errors: '='\n },\n replace: true,\n templateUrl: '/forms/doctors/educational-verification/educational-verification.html',\n controller: ['$rootScope', '$scope', 'FileUploader', function($rootScope, $scope, FileUploader) {\n var ctrl = this;\n\n ctrl.uploader = new FileUploader({\n alias: 'document',\n autoUpload: true,\n removeAfterUpload: true,\n formData: [{ 'doctor_document_type_id': 11 }]\n });\n\n ctrl.uploader.onBeforeUploadItem = function() {\n $scope.$emit('forms.doctors.educational-verification.willUploadDocument');\n };\n\n ctrl.uploader.onSuccessItem = function() {\n ctrl.errors = null;\n ctrl.uploadStatus = {\n msg: 'Upload completed successfully!',\n type: 'success'\n };\n $scope.$emit('forms.doctors.educational-verification.didUploadDocument');\n };\n\n $scope.$watch(function() {\n return ctrl.doctor;\n }, function() {\n if (ctrl.doctor) {\n ctrl.uploader.url = '/api/v1/doctors/' + ctrl.doctor.id + '/documents';\n } else {\n ctrl.uploader.url = '/';\n }\n })\n }],\n controllerAs: 'ctrl',\n bindToController: true\n };\n}]);\n","'use strict';\n\nangular.module('forms.doctors.employed-by.dir', [])\n\n.directive('formDoctorEmployedBy', [function() {\n return {\n restrict: 'E',\n scope: {\n colleagues: '=',\n errors: '='\n },\n replace: true,\n templateUrl: '/forms/doctors/employed-by/employed-by.html',\n controller: ['$scope', function($scope) {\n var ctrl = this;\n\n ctrl.addColleague = function() {\n ctrl.colleagues.push({\n colleague_type_id: 2\n });\n };\n\n ctrl.removeColleague = function(colleague) {\n ctrl.colleagues.splice(ctrl.colleagues.indexOf(colleague), 1);\n $scope.$emit('forms.doctors.employed-by.didRemoveColleague', colleague);\n };\n }],\n controllerAs: 'ctrl',\n bindToController: true\n };\n}]);\n","'use strict';\n\nangular.module('forms.doctors.employees.dir', [])\n\n.directive('formDoctorEmployees', [function() {\n return {\n restrict: 'E',\n scope: {\n colleagues: '=',\n errors: '='\n },\n replace: true,\n templateUrl: '/forms/doctors/employees/employees.html',\n controller: ['$scope', function($scope) {\n var ctrl = this;\n\n ctrl.addColleague = function() {\n ctrl.colleagues.push({\n colleague_type_id: 3\n });\n };\n\n ctrl.removeColleague = function(colleague) {\n ctrl.colleagues.splice(ctrl.colleagues.indexOf(colleague), 1);\n $scope.$emit('forms.doctors.employees.didRemoveColleague', colleague);\n };\n }],\n controllerAs: 'ctrl',\n bindToController: true\n };\n}]);\n","'use strict';\n\nangular.module('forms.doctors.languages.dir', [])\n\n.directive('formDoctorLanguages', [function() {\n return {\n restrict: 'E',\n scope: {\n languages: '=',\n errors: '='\n },\n replace: true,\n templateUrl: '/forms/doctors/languages/languages.html',\n controller: ['$scope', function($scope) {\n var ctrl = this;\n\n ctrl.addLanguage = function() {\n ctrl.languages.push({});\n };\n\n ctrl.removeLanguage = function(language) {\n if (language.defaultLanguage) return;\n\n ctrl.languages.splice(ctrl.languages.indexOf(language), 1);\n\n $scope.$emit('forms.doctors.languages.didRemoveLanguage', language);\n };\n }],\n controllerAs: 'ctrl',\n bindToController: true\n };\n}]);\n","'use strict';\n\nangular.module('forms.doctors.liability-insurance.dir', ['select-state.dir', 'ng-currency'])\n\n.directive('formDoctorLiabilityInsurance', [function() {\n return {\n restrict: 'E',\n scope: {\n liabilityInsurance: '=',\n errors: '='\n },\n replace: true,\n templateUrl: '/forms/doctors/liability-insurance/liability-insurance.html',\n controller: [function() {}],\n controllerAs: 'ctrl',\n bindToController: true\n };\n}]);\n","'use strict';\n\nangular.module('forms.doctors.licensing.dir', ['select-state.dir'])\n\n.directive('formDoctorLicensing', [function() {\n return {\n restrict: 'E',\n scope: {\n doctor: '=',\n dea: '=',\n boardCertification: '=',\n stateLicenses: '=',\n errors: '='\n },\n replace: true,\n templateUrl: '/forms/doctors/licensing/licensing.html',\n controller: ['$scope', function($scope) {\n var ctrl = this;\n\n ctrl.addStateLicense = function() {\n ctrl.stateLicenses.push({});\n };\n\n ctrl.removeStateLicense = function(stateLicense) {\n ctrl.stateLicenses.splice(ctrl.stateLicenses.indexOf(stateLicense), 1);\n\n if (stateLicense.is_primary && ctrl.stateLicenses.length == 1) {\n ctrl.stateLicenses[0].is_primary = true;\n }\n\n $scope.$emit('forms.doctors.licensing.didRemoveStateLicense', stateLicense);\n };\n\n ctrl.setPrimaryLicense = function(license) {\n ctrl.stateLicenses.forEach(function(license) {\n license.is_primary = false;\n });\n license.is_primary = true;\n };\n }],\n controllerAs: 'ctrl',\n bindToController: true\n };\n}]);\n","'use strict';\n\nangular.module('forms.doctors.panel-applications.dir', ['checklist-model'])\n\n.directive('formDoctorPanelApplications', [function() {\n return {\n restrict: 'E',\n scope: {\n panels: '=',\n selected: '=',\n errors: '='\n },\n replace: true,\n templateUrl: '/forms/doctors/panel-applications/panel-applications.html',\n controller: [function() {}],\n controllerAs: 'ctrl',\n bindToController: true\n };\n}]);\n","'use strict';\n\nangular.module('forms.doctors.participation-fees.dir', [])\n\n.directive('formDoctorParticipationFees', ['$location', function($location) {\n return {\n restrict: 'E',\n scope: {\n ipa: '=',\n balance: '=',\n values: '=',\n errors: '='\n },\n replace: true,\n templateUrl: '/forms/doctors/participation-fees/participation-fees.html',\n controller: ['$scope', 'Restangular', function($scope, Restangular) {\n var ctrl = this;\n\n ctrl.isSecure = $location.protocol() === 'https';\n\n ctrl.months = [\n { name: '01 Jan', value: '01' },\n { name: '02 Feb', value: '02' },\n { name: '03 Mar', value: '03' },\n { name: '04 Apr', value: '04' },\n { name: '05 May', value: '05' },\n { name: '06 Jun', value: '06' },\n { name: '07 Jul', value: '07' },\n { name: '08 Aug', value: '08' },\n { name: '09 Sep', value: '09' },\n { name: '10 Oct', value: '10' },\n { name: '11 Nov', value: '11' },\n { name: '12 Dec', value: '12' }\n ];\n\n var years = [];\n for (var year = new Date().getFullYear(); years.length <= 10; year++) {\n years.push(year);\n }\n ctrl.years = years;\n\n var singleFeeDescriptions = {\n day: 'daily',\n month: 'monthly',\n year: 'yearly'\n };\n\n var pluralFeeDescriptions = {\n day: 'days',\n month: 'months',\n year: 'years'\n };\n\n $scope.$watch(function() { return ctrl.ipa; }, function() {\n if (!ctrl.ipa) {\n ctrl.feeFrequencyDescription = '';\n return;\n }\n\n if (ctrl.ipa.fee_frequency_amount == 1) {\n ctrl.feeFrequencyDescription = singleFeeDescriptions[ctrl.ipa.fee_frequency_unit] + ' fee';\n } else {\n ctrl.feeFrequencyDescription = 'fee every ' + ctrl.ipa.fee_frequency_amount + ' ' + pluralFeeDescriptions[ctrl.ipa.fee_frequency_unit];\n }\n });\n\n Restangular.one('settings').get().then(function(settings) {\n ctrl.settings = settings;\n });\n }],\n controllerAs: 'ctrl',\n bindToController: true\n };\n}]);\n","'use strict';\n\nangular.module('forms.doctors.partners-and-associates.dir', [])\n\n.directive('formDoctorPartnersAndAssociates', [function() {\n return {\n restrict: 'E',\n scope: {\n colleagues: '=',\n errors: '='\n },\n replace: true,\n templateUrl: '/forms/doctors/partners-and-associates/partners-and-associates.html',\n controller: ['$scope', function($scope) {\n var ctrl = this;\n\n ctrl.addColleague = function() {\n ctrl.colleagues.push({\n colleague_type_id: 1\n });\n };\n\n ctrl.removeColleague = function(colleague) {\n ctrl.colleagues.splice(ctrl.colleagues.indexOf(colleague), 1);\n $scope.$emit('forms.doctors.partners-and-associates.didRemoveColleague', colleague);\n };\n }],\n controllerAs: 'ctrl',\n bindToController: true\n };\n}]);\n","'use strict';\n\nangular.module('forms.doctors.personal-information.dir', ['vcp.api', 'select-state.dir', 'checklist-model'])\n\n.directive('formDoctorPersonalInformation', ['Restangular', function(Restangular) {\n return {\n restrict: 'E',\n scope: {\n doctor: '=',\n doctorTypes: '=',\n errors: '='\n },\n replace: true,\n templateUrl: '/forms/doctors/personal-information/personal-information.html',\n controller: ['$scope', function($scope) {\n var ctrl = this;\n\n ctrl.ethnicityOptions = [\n 'Caucasian',\n 'Hispanic',\n 'African American'\n ];\n\n $scope.$watch(function() { return ctrl.doctor; }, function() {\n if (!ctrl.doctor) return;\n\n if (ctrl.ethnicityOptions.indexOf(ctrl.doctor.ethnicity) !== -1) {\n ctrl.ethnicity = ctrl.doctor.ethnicity;\n } else {\n ctrl.ethnicity = 'Other';\n ctrl.ethnicityOther = ctrl.doctor.ethnicity;\n }\n });\n\n $scope.$watch(function() { return ctrl.ethnicityOther; }, function() {\n if (!ctrl.doctor) return;\n\n if (ctrl.ethnicity == 'Other') {\n ctrl.doctor.ethnicity = ctrl.ethnicityOther;\n }\n });\n\n $scope.$watch(function() { return ctrl.ethnicity; }, function() {\n if (!ctrl.doctor) return;\n\n if (ctrl.ethnicity == 'Other') {\n ctrl.doctor.ethnicity = ctrl.ethnicityOther;\n } else {\n ctrl.doctor.ethnicity = ctrl.ethnicity;\n }\n });\n }],\n link: function(scope) {\n Restangular.all('doctor-types').getList().then(function(types) {\n scope.availableDoctorTypes = types;\n });\n },\n controllerAs: 'ctrl',\n bindToController: true\n };\n}]);\n","'use strict';\n\nangular.module('forms.doctors.practice-information.dir', [\n 'fields.date-field.date-field.dir',\n 'forms.validation.errors.dir'\n])\n\n.directive('formDoctorPracticeInformation', [function() {\n return {\n restrict: 'E',\n scope: {\n practice: '=',\n errors: '=',\n readonly: '=',\n formId: '='\n },\n replace: true,\n templateUrl: '/forms/doctors/practice-information/practice-information.html',\n controller: [function() {}],\n controllerAs: 'ctrl',\n bindToController: true\n };\n}]);\n","'use strict';\n\nangular.module('forms.doctors.professional-affiliations.dir', [])\n\n.directive('formDoctorProfessionalAffiliations', [function() {\n return {\n restrict: 'E',\n scope: {\n affiliations: '=',\n affiliationTypes: '=',\n errors: '='\n },\n replace: true,\n templateUrl: '/forms/doctors/professional-affiliations/professional-affiliations.html',\n controller: ['$scope', function($scope) {\n var ctrl = this;\n\n ctrl.addAffiliation = function(type) {\n var newAffiliation = {\n affiliation_type_id: type.id\n };\n ctrl.affiliations.push(newAffiliation);\n ctrl.groupedAffiliations[type.id].push(newAffiliation);\n };\n\n ctrl.removeAffiliation = function(type, affiliation) {\n ctrl.affiliations.splice(ctrl.affiliations.indexOf(affiliation), 1);\n ctrl.groupedAffiliations[type.id].splice(ctrl.groupedAffiliations[type.id].indexOf(affiliation), 1);\n $scope.$emit('forms.doctors.professional-affiliations.didRemoveAffiliation', affiliation);\n };\n\n $scope.$watch(function () { return ctrl.affiliations; }, refreshAffiliations);\n $scope.$watch(function () { return ctrl.affiliationTypes; }, refreshAffiliations);\n\n function refreshAffiliations() {\n if (!ctrl.affiliations || !ctrl.affiliationTypes) return;\n\n ctrl.groupedAffiliations = ctrl.affiliations.reduce(function(affiliations, affiliation) {\n if (!affiliations[affiliation.affiliation_type_id]) {\n affiliations[affiliation.affiliation_type_id] = [];\n }\n affiliations[affiliation.affiliation_type_id].push(affiliation);\n return affiliations;\n }, {});\n\n ctrl.affiliationTypes.forEach(function(type) {\n if (!ctrl.groupedAffiliations[type.id]) {\n ctrl.groupedAffiliations[type.id] = [];\n if (!type.dynamic) {\n ctrl.addAffiliation(type);\n }\n }\n });\n }\n }],\n controllerAs: 'ctrl',\n bindToController: true\n };\n}]);\n","'use strict';\n\nangular.module('forms.doctors.professional-questions.dir', ['forms.doctors.question.dir', 'forms.electronic-signature'])\n\n.directive('formDoctorProfessionalQuestions', [function() {\n return {\n restrict: 'E',\n scope: {\n doctor: '=',\n questions: '=',\n signature: '=',\n errors: '='\n },\n replace: true,\n templateUrl: '/forms/doctors/professional-questions/professional-questions.html',\n controller: [function() {}],\n controllerAs: 'ctrl',\n bindToController: true\n };\n}]);\n","'use strict';\n\nangular.module('forms.doctors.provider-panels.dir', ['checklist-model'])\n\n.directive('formDoctorProviderPanels', [function() {\n return {\n restrict: 'E',\n scope: {\n panels: '=',\n selected: '=',\n errors: '='\n },\n replace: true,\n templateUrl: '/forms/doctors/provider-panels/provider-panels.html',\n controller: [function() {}],\n controllerAs: 'ctrl',\n bindToController: true\n };\n}]);\n","'use strict';\n\nangular.module('forms.doctors.question.dir', [])\n\n.directive('doctorQuestion', [function() {\n return {\n restrict: 'E',\n scope: {\n question: '=',\n answer: '=ngModel',\n errors: '='\n },\n replace: true,\n templateUrl: '/forms/doctors/question/question.html',\n controller: ['$scope', function ($scope) {\n $scope.showDetails = false;\n $scope.$watch('answer.response', function() {\n if ($scope.answer.response == 'Y') {\n $scope.showDetails = !!$scope.question.details_required_on_yes;\n } else if($scope.answer.response == 'N') {\n $scope.showDetails = !!$scope.question.details_required_on_no;\n }\n });\n }]\n };\n}]);\n","'use strict';\n\nangular.module('forms.doctors.references.dir', ['angularFileUpload'])\n\n.directive('formDoctorReferences', [function() {\n return {\n restrict: 'E',\n scope: {\n doctor: '=',\n references: '=',\n errors: '='\n },\n replace: true,\n templateUrl: '/forms/doctors/references/references.html',\n controller: ['$scope', 'FileUploader', function($scope, FileUploader) {\n var ctrl = this;\n\n ctrl.uploadStatus = null;\n\n ctrl.uploader = new FileUploader({\n alias: 'document',\n autoUpload: true,\n removeAfterUpload: true,\n formData: [{ 'doctor_document_type_id': 10 }]\n });\n\n ctrl.uploader.onBeforeUploadItem = function() {\n ctrl.uploadStatus = null;\n };\n\n ctrl.uploader.onSuccessItem = function() {\n ctrl.uploadStatus = {\n msg: 'Upload completed successfully!',\n type: 'success'\n };\n refreshReferencesDocument();\n };\n\n $scope.$watch(function() { return ctrl.doctor }, function() {\n if (!ctrl.doctor) return;\n ctrl.uploader.url = '/api/v1/doctors/' + ctrl.doctor.id + '/documents';\n refreshReferencesDocument();\n });\n\n function refreshReferencesDocument() {\n if (!ctrl.doctor) return;\n return ctrl.doctor.all('documents').getList({ latest: true, doctor_document_type_id: 10 }).then(function(documents) {\n ctrl.document = documents.pop();\n });\n }\n }],\n controllerAs: 'ctrl',\n bindToController: true\n };\n}]);\n","'use strict';\n\nangular.module('forms.doctors.requirements-for-participation.dir', [])\n\n.directive('formDoctorRequirementsForParticipation', [function() {\n return {\n restrict: 'E',\n scope: {\n ipa: '=',\n requirements: '=',\n signature: '=',\n errors: '='\n },\n replace: true,\n templateUrl: '/forms/doctors/requirements-for-participation/requirements-for-participation.html',\n controller: [function() {}],\n controllerAs: 'ctrl',\n bindToController: true\n };\n}]);\n","'use strict';\n\nangular.module('forms.doctors.single-signature-provider-acknowledgment.dir', [])\n\n.directive('formDoctorSingleSignatureProviderAcknowledgment', [function() {\n return {\n restrict: 'E',\n scope: {\n doctor: '=',\n ipa: '=',\n signature: '=',\n errors: '='\n },\n replace: true,\n templateUrl: '/forms/doctors/single-signature-provider-acknowledgment/single-signature-provider-acknowledgment.html',\n controller: [function() {}],\n controllerAs: 'ctrl',\n bindToController: true\n };\n}]);\n","'use strict';\n\nangular.module('forms.doctors.vcd-provider-agreement.dir', [])\n\n.directive('formDoctorVcdProviderAgreement', [function() {\n return {\n restrict: 'E',\n scope: {\n doctorid: '=',\n panel: '=',\n signature: '=',\n errors: '='\n },\n replace: true,\n templateUrl: '/forms/doctors/vcd-provider-agreement/vcd-provider-agreement.html',\n controller: [function() {}],\n controllerAs: 'ctrl',\n bindToController: true\n };\n}]);\n","'use strict';\n\nangular.module('forms.doctors.vision-care-direct.dir', [])\n\n.directive('formDoctorVisionCareDirect', [function() {\n return {\n restrict: 'E',\n scope: {\n questions: '=',\n errors: '='\n },\n replace: true,\n templateUrl: '/forms/doctors/vision-care-direct/vision-care-direct.html',\n controller: [function() {}],\n controllerAs: 'ctrl',\n bindToController: true\n };\n}]);\n","'use strict';\n\nangular.module('forms.doctors.work-history.dir', [])\n\n.directive('formDoctorWorkHistory', [function() {\n return {\n restrict: 'E',\n scope: {\n workHistory: '=',\n errors: '='\n },\n replace: true,\n templateUrl: '/forms/doctors/work-history/work-history.html',\n controller: ['$scope', function($scope) {\n var ctrl = this;\n\n ctrl.addHistory = function() {\n ctrl.workHistory.push({});\n };\n\n ctrl.removeHistory = function(history) {\n ctrl.workHistory.splice(ctrl.workHistory.indexOf(history), 1);\n $scope.$emit('forms.doctors.work-history.didRemoveWorkHistory', history);\n };\n }],\n controllerAs: 'ctrl',\n bindToController: true\n };\n}]);\n"]}