(function(){"use strict";var n=angular.module(clientConstants.appName,["ngAnimate","ngRoute","ngResource","ngMessages","ngSanitize","common","datatables","ui.bootstrap","angularSpinner","ui.select"]).config(["$animateProvider",function(n){n.classNameFilter(/!no-animate/)}]),t;n.run(["$http","$route","$rootScope","$q","routeOverlord",function(n,t,i,r,u){u.setRoutingHandlers()}]);t=angular.module(clientConstants.uaAppName,["ngAnimate","ngRoute","ngResource","ngMessages","ngSanitize","common","datatables","ui.bootstrap","angularSpinner","ui.select"])})(),function(){"use strict";var t=angular.module(clientConstants.appName),n;t.factory("responseAuthFailHandler",["$q","$window",function(n,t){return{responseError:function(i){switch(i.status){case 403:t.location="/StaticContent/NotAuthorizedClient";break;case 500:t.location="/StaticContent/ServerError"}return n.reject(i)}}}]);n=angular.module(clientConstants.uaAppName);n.factory("responseAuthFailHandler",["$q","$window",function(n,t){return{responseError:function(i){switch(i.status){case 403:t.location="/StaticContent/NotAuthorizedClient";break;case 500:t.location="/StaticContent/ServerError"}return n.reject(i)}}}])}(),function(){"use strict";var t=angular.module(clientConstants.appName),n={docTitle:"BQA - ",events:{controllerActivateSuccess:"controller.activateSuccess",stopSpinner:"stopSpinner"}},i;t.value("config",n);t.config(["commonConfigProvider","$httpProvider",function(t,i){t.config.controllerActivateSuccessEvent=n.events.controllerActivateSuccess;t.config.stopSpinnerEvent=n.events.stopSpinner;i.defaults.headers.common["X-Requested-With"]="XMLHttpRequest";i.interceptors.push("responseAuthFailHandler");i.defaults.headers.common["X-RequestVerificationToken"]=angular.element('input[name="__RequestVerificationToken"]').val()}]);i=angular.module(clientConstants.uaAppName);i.config(["$httpProvider",function(n){n.defaults.headers.common["X-Requested-With"]="XMLHttpRequest";n.interceptors.push("responseAuthFailHandler");n.defaults.headers.common["X-RequestVerificationToken"]=angular.element('input[name="__RequestVerificationToken"]').val()}])}(),function(){"use strict";function i(n,t,i){function r(t,i){return n.when(t,i),n}t.forEach(function(n){r(n.url,n.config)});n.otherwise({redirectTo:"/"});i.html5Mode(!0)}function r(){var t=[{url:"/",config:{templateUrl:n+"/Home.html",title:"Home",settings:{nav:1},controller:"HomeController"}},{url:"/contact",config:{title:"Contact",templateUrl:n+"/Contact.html",settings:{nav:2},controller:"ContactController"}},{url:"/surgeonsummary",config:{title:"Surgeons Summary",templateUrl:n+"/SurgeonSummary.html",settings:{nav:3},controller:"SurgeonSummaryController"}},{url:"/patients/:id?/:hqpi?",config:{title:"My Patients",templateUrl:n+"/Patients.html",settings:{nav:5},controller:"PatientsController"}},{url:"/minimumdataset",config:{title:"MinimumDataSet",templateUrl:n+"/MinimumDataSet.html",settings:{nav:6},controller:"MinimumDataSetController"}},{url:"/myuserdetails",config:{title:"My User Details",templateUrl:n+"/MyUserDetails.html",settings:{nav:7},controller:"MyUserDetailsController"}},{url:"/datamanagersummary",config:{title:"Data Manager Summary",templateUrl:n+"/DataManagerSummary.html",settings:{nav:10},controller:"DataManagerSummaryController"}},{url:"/patientsmalldataset",config:{title:"Patient - Small DataSet",templateUrl:n+"/PatientSmallDataSet.html",settings:{nav:11},controller:"PatientSmallDataSetController"}},{url:"/reports",config:{title:"Reports",templateUrl:n+"/Reports.html",settings:{nav:12},controller:"ReportsController"}},{url:"/patientfulldataset",config:{title:"Patient - Full DataSet",templateUrl:n+"/PatientFullDataSet.html",settings:{nav:13},controller:"PatientFullDataSetController"}},{url:"/hospitals",config:{title:"My Hospitals",templateUrl:n+"/Hospitals.html",settings:{nav:14},controller:"HospitalsController"}},{url:"/hqpisurgeonsummary",config:{title:"HQPI Surgeon Summary",templateUrl:n+"/HqpiSurgeonSummary.html",settings:{nav:16},controller:"HqpiSurgeonSummaryController"}}],i=[{url:"/admin/useradmin",config:{title:"User Admin",templateUrl:n+"/UserAdmin.html",settings:{nav:8},controller:"UserAdminController"}},{url:"/admin/datamanageradmin",config:{title:"Data Manager Admin",templateUrl:n+"/DataManagerAdmin.html",settings:{nav:9},controller:"DataManagerAdminController"}},{url:"/admin/hospitaladmin",config:{title:"Hospital Admin",templateUrl:n+"/HospitalAdmin.html",settings:{nav:15},controller:"HospitalAdminController"}}];return t.concat(i)}var t=angular.module(clientConstants.appName),n="Scripts/app/templates";t.constant("routes",r());t.config(["$routeProvider","routes","$locationProvider",i])}(),function(){"use strict";function t(n,t,i,r,u,f,e){function a(t,i){return n.all(t).then(function(){var n={controllerId:i};h(r.config.controllerActivateSuccessEvent,n)})}function h(){return t.$broadcast.apply(t,arguments)}function v(n,t,r,u,f){f=+f||300;r||(r="filtered"+t[0].toUpperCase()+t.substr(1).toLowerCase(),u=t+"Filter");var e=function(){n[r]=n[t].filter(function(t){return n[u](t)})};return function(){var n;return function(t){n&&(i.cancel(n),n=null);t||!f?e():n=i(e,f)}}()}function y(n,t,r,u){r=r||1e3;o[n]&&(i.cancel(o[n]),o[n]=undefined);u?t():o[n]=i(t,r)}function p(n,t,i){t.forEach(function(t){n.get(t)||i.getTemplate(t).then(function(i){n.put(t,i.data)})})}function w(n,t){var i=[],r;for(n.$invalid&&angular.forEach(n.$error,function(n){angular.forEach(n,function(n){angular.forEach(n,function(n){var t,r;if(n!=null&&n.$setTouched!=null&&n.$invalid&&(n.$setTouched(),t=s(n),bqa.existy(t)))for(r=0;r<t.length;r++)$.inArray(t[r],i)===-1&&i.push(t[r])})})}),l(i,t),r=0;r<i.length;r++)c(i[r]);return i.length===0}function b(n){return n.$invalid?(angular.forEach(n.$error,function(n){angular.forEach(n,function(n){n.$setTouched()})}),!1):!0}function k(n){var i=s(n),t;if(bqa.existy(i))for(t=0;t<i.length;t++)u.error(i[t])}function c(n){u.error(n)}function s(n){return f.getFieldValidationRules(n)}function l(n,t){if(bqa.existy(n)&&bqa.existy(t)){var i=Object.keys(t);bqa.existy(i)&&i.forEach(function(i){t[i].Errors&&t[i].Errors.length>0&&t[i].Errors.forEach(function(t){var i=t[clientConstants.errorMessage];$.inArray(i,n)===-1&&n.push(i)})})}}function d(n){return n==="Not"?'<a href="/UserAccount/Login" target="_self">Not Logged In<\/a>':"Logged in as <strong>"+n+"<\/strong>"}function g(n){var t="",i='<p> <i class="fa fa-times-circle" ><\/i>&nbsp;',r="<\/p>",u;return n.errorMessages?t=i+n.errorMessage+r:(u=Object.keys(n),u.forEach(function(u){n[u].Errors&&n[u].Errors.length>0&&(t+=i+n[u].Errors[0][clientConstants.errorMessage]+r)})),e.trustAsHtml(t)}var o={};return{$broadcast:h,$q:n,$timeout:i,activateController:a,alertsService:u,createSearchThrottle:v,debouncedThrottle:y,displayUser:d,lightUpInvalidForm:w,prefetchTemplates:p,lightUpInvalidModelForm:b,validationRulesService:f,displayFieldValidationError:k,displayValidationError:c,getFieldValidationRules:s,getDataErrors:l,getErrorsAsHtml:g}}var n=angular.module("common",[]);n.provider("commonConfig",function(){this.config={};this.$get=function(){return{config:this.config}}});n.factory("common",["$q","$rootScope","$timeout","commonConfig","alertsService","validationRulesService","$sce",t])}(),function(){"use strict";var n=angular.module(clientConstants.appName);n.filter("bqaFractionToPercentage",function(){return function(n){return Math.round(n*100).toString()+"%"}});n.filter("bqaFailFilter",function(){return function(n,t){var i=parseFloat(t.threshold)/100;return t.thresholdValue<i?'<span class="red-error">'+n+"<\/span>":n}});n.filter("bqaNullToNotCalculated",function(){return function(n){return bqa.existy(n)?n:"N/C#"}});n.filter("bqaReceptorsValueTypes",function(){return function(n){for(var i=[],t=0;t<n.length;t++)i.push(n[t].id);return i}});n.filter("bqaMomentFormat",function(){return function(n,t){if(n){var i=moment(n,clientConstants.dateFormats.inFormat).format(t);return i===clientConstants.momentInvalid?"":i}return""}});n.filter("bqaMomentStringFormat",function(){return function(n,t){if(n){var i=moment(n,clientConstants.dateFormats.outFormat).format(t);return i===clientConstants.momentInvalid?"":i}return""}});n.filter("bqaSurgeryType",function(){return function(n){return n===99?"Axilla":"Breast"}});n.filter("bqaAxillaSurgeryTypeCheck",function(){return function(n,t){return t.surgeryType===99?t.breastSurgeryLookupAxilla.axillaType:n}});n.filter("bqaMomentFromDotNet",function(){return function(n){return moment(n).toDate()}});n.filter("intToSymbol",function(){return function(n){switch(n){case 0:return'<i class="fa fa-times-circle text-danger"><\/i>';case 1:return'<i class="fa fa-check-circle text-success"><\/i>';default:return"&nbsp;"}}});n.filter("boolToSymbol",function(){return function(n){switch(n){case!0:return'<span><i class="fa fa-check-circle text-success"><\/i><\/span>';case!1:return'<span><i class="fa fa-times-circle text-danger"><\/i><\/span>';default:return'<span><i class="fa fa-square-o"><\/i><\/span>'}}});n.filter("idOrSearchFilter",function(){return function(n,t){var i=[];return angular.isArray(n)?n.forEach(function(n){for(var u,o,f=!1,e=Object.keys(t),r=0;r<e.length;r++)if(u=e[r],o=t[u].toLowerCase(),n[u].toString().toLowerCase().indexOf(o)!==-1){f=!0;break}f&&i.push(n)}):i=n,i}})}(),function(){"use strict";function n(){return window.alerts}angular.module(clientConstants.appName).factory("alertsService",[n])}(),function(){"use strict";function t(t){var i=function(n){return t.post("/DataManagerData/AddDataManager",JSON.stringify(n))},r=function(n){return t.post("/SurgeonData/AddSurgeon",JSON.stringify(n))},u=function(n){return t.post("/HospitalData/AddHospital",JSON.stringify(n))},f=function(n){return t.post("/PatientData/DeletePatient",{patientId:n})},e=function(n){return t.post("/HospitalData/UpdateHospital",JSON.stringify(n))},o=function(n){return t.post("/HospitalData/GetHospitalForAdmin",{id:n})},s=function(){return{name:"State",type:"select",value:"",values:[{key:"ACT",value:"ACT"},{key:"NSW",value:"NSW"},{key:"NT",value:"NT"},{key:"NZ",value:"NZ"},{key:"QLD",value:"QLD"},{key:"SA",value:"SA"},{key:"TAS",value:"TAS"},{key:"VIC",value:"VIC"},{key:"WA",value:"WA"}]}},h=function(){return t.post("/DataManagerData/GetDataManagerDataForCreateAndUpdates")},c=function(n){return t.post("/DataManagerData/GetDataManager",{id:n})},l=function(){return t.post("/DataManagerData/GetDataManagersList")},a=function(n,i,r){return t.post("/PatientData/GetEpisodesOfPatient",{patientId:n,startDate:i,endDate:r})},v=function(n,i){return t.post("/PatientData/DeletePatientEpisode",{episodeId:n,patientId:i})},y=function(){return t.post("/DataManagerData/GetHospitalsSelectList")},p=function(n,i,r){return t.post("/PatientData/GetFullDataSet",{breastDataId:n,patientId:i,surgeonId:r})},w=function(n,i,r){return t.post("/PatientData/GetMinimumDataSet",{breastDataId:n,patientId:i,surgeonId:r})},b=function(n){return t.get(n)},k=function(){return t.post("/UserAccount/UserPersonalDetails/GetModelToUpdate")},d=function(n,i,r){return t.post("/PatientData/CheckForPotentialPatientDuplicates",{dobChecker:{name:n,dob:i,surgeonId:r}})},g=function(n,i,r,u){return n?bqa.existy(i)&&i==="y"?t.post("/PatientData/GetPatientListHqpi",{id:n,startDate:r,endDate:u}):t.post("/PatientData/GetPatientList",{id:n,startDate:r,endDate:u}):t.post("/PatientData/GetPatientList",{id:null,startDate:r,endDate:u})},nt=function(){return t.post("/HospitalData/GetMyHospitals")},tt=function(n){return t.post("/HospitalData/ToggleMyHospital",{id:n})},it=function(){return t.post("/HospitalData/GetHospitalsForAdmin")},rt=function(){return t.post("/DataManagerData/GetSummaryForDataManager")},ut=function(n,i){return t.post("/SurgeonData/GetSurgeonSummaryThresholds",{dateFrom:n,dateTo:i})},ft=function(n,i){return t.post("/SurgeonData/GetHpqiSurgeonSummaryThresholds",{dateFrom:n,dateTo:i})},et=function(){return t.post("/SurgeonData/GetSurgicalSummaries")},ot=function(n){return t.post("/SurgeonData/GetSurgeon",{id:n})},st=function(){return t.post("/SurgeonData/GetSurgeonId")},ht=function(){return t.post("/SurgeonData/GetSurgeonsList")},ct=function(){return t.get("/DataManagerData/GetSurgeonsSelectList")},lt=function(){return t.post("/SurgeonData/GetSurgeonTitles")},at=function(n){return t.post("/LogClientErrors/LogError",JSON.stringify(n))},vt=function(n){return t.post("/PatientData/UpdatePatientMinimum",n)},yt=function(n){return t.post("/PatientData/UpdatePatientFull",n)},pt=function(n){return t.post("/UserAccount/UserPersonalDetails/SetBqaUserDetails",n)},wt=function(n){return t.post("/UserAccount/UserPersonalDetails/SetSurgeonUserDetails",n)},bt=function(n){return t.post("/DataManagerData/UpdateDataManager",JSON.stringify(n))},kt=function(n){return t.post("/SurgeonData/UpdateSurgeon",JSON.stringify(n))},dt=function(){return t.post("/ReportsData/GetReportsList")};return{addDataManager:i,addSurgeon:r,deletePatient:f,getDataForDataManager:h,getDataManager:c,getDataManagersList:l,getEpisodesOfPatient:a,deletePatientEpisode:v,getHospitalsSelectList:y,getFullDataSetData:p,getMinimumDataSetData:w,getMyDetailsModel:k,getPotentialDuplicatePatients:d,getTemplate:b,getPatientsList:g,getSummaryForDataManager:rt,getSurgeon:ot,getSurgeonId:st,getSurgeonsList:ht,getSurgeonsSelectList:ct,getSurgeonTitles:lt,getSurgicalSummaries:et,logError:at,prime:n,saveFulldataSet:yt,saveMinimumdataSet:vt,setUpdatedBqaUserDetails:pt,setUpdatesSurgeonUserDetails:wt,updateDataManager:bt,updateSurgeon:kt,getReportsList:dt,getMyHospitals:nt,toggleMyHospital:tt,getHospitalsForAdmin:it,getHospitalForAdmin:o,getStatesSelectList:s,addHospital:u,updateHospital:e,getSurgeonSummaryThresholds:ut,getHpqiSurgeonSummaryThresholds:ft}}var n;angular.module(clientConstants.appName).factory("dataContext",["$http","common",t]);n=function(){}}(),function(){"use strict";function n(n){var t=function(t){return n.post("/UserAccount/Admin/AddClaim",t)},i=function(){return n.post("/UserAccount/Admin/GetAddClaimsViewData")},r=function(t){return n.post("/UserAccount/Admin/GetClaimsForUser",{userId:t})},u=function(t){return n.get(t)};return{addClaim:t,getAddClaimsViewData:i,getClaimsForUser:r,getTemplate:u}}angular.module(clientConstants.uaAppName).factory("dataContextUserAdmin",["$http",n])}(),function(){"use strict";function n(){function n(n,t,i,r){this.name=n;this.dob=t;this.userIsDataManager=i;this.userIsSurgeonOnly=r}function t(){return{dob:this.dob,name:this.name,userIsDataManager:this.userIsDataManager,userIsSurgeonOnly:this.userIsSurgeonOnly}}function i(){this.name=null;this.dob=null;this.userIsDataManager=null;this.userIsSurgeonOnly=null}return{clearData:i,getNewPatientDetails:t,setNewPatientDetails:n}}angular.module(clientConstants.appName).factory("patientDataService",[n])}(),function(){"use strict";function t(t,i,r,u,f){function o(){h();s()}function s(){i.$on("$routeChangeError",function(i,u,f,o){if(!e){e=!0;var s="Error routing: "+(u&&u.name)+". "+(o.msg||"");r.warn("msg: "+s+", current:"+u+", service:"+n);t.path("/")}})}function h(){i.$on("$routeChangeSuccess",function(n,t){e=!1;var r=u.docTitle+" "+(t.title||"");i.title=r;f.alertsService.clearAlerts()})}var e=!1;return{setRoutingHandlers:o}}var n="routeOverlord";angular.module(clientConstants.appName).factory(n,["$location","$rootScope","$log","config","common",t])}(),function(){"use strict";function r(){function u(n,t,i){t.invasiveInsitu||r(i,"Invasive/Insitu missing");t.referralSource||r(i,"Referral source missing");t.bilateralSync||r(i,"Bilateral synchronous missing");t.menopausalStatus||r(i,"Menopausal status missing");l(n)||r(i,"At least 1 Treatment Refusal is needed")}function h(n){for(var s,u,h,r,f,c=n.editModel.breastData,e=!1,o=[],t=0;t<n.deletedBreastSurgeries.length;t++)s=_.find(c.episode.breastSurgeries,function(i){return n.deletedBreastSurgeries[t]===i.id}),u=angular.copy(s),u.trackingState=clientConstants.trackingState.deleted,o.push(u);if(h=angular.copy(n.surgeriesForDisplay),r=bqa.concatArrays(h,o),r&&r.length>0)for(t=0;t<r.length;t++)if(f=r[t],f.trackingState!==clientConstants.trackingState.deleted&&f.surgeryType===i){e=!0;break}return e}function c(n){var e=n.editModel.breastData,t=e.episode.breastSurgeries,u=!1,r,f;if(t&&t.length>0)for(r=0;r<t.length;r++)if(f=t[r],f.surgeryType===i){u=!0;break}return u}function f(t){var i=t.editModel.breastData,r=!1;return i.invasiveInsitu==n&&parseInt(i.invasiveTumourSize)===0&&(r=!0),r}function r(n,t){n.indexOf(t)===-1&&n.push(t)}function l(n){return n.refusalsMulti.selected.length>0}var e=function(i){var e=i.editModel.breastData,o=[],h,s;return u(i,e,o),h=f(i),s=c(i),bqa.existy(e.radiotherapy)||r(o,"Radiotherapy adjuvant missing"),bqa.existy(e.tamoxifen)||r(o,"SERMs adjuvant missing"),bqa.existy(e.aromInhib)||r(o,"Aromatase inhibitor adjuvant missing"),e.invasiveInsitu==n?(i.surgeryPickersDisabled||bqa.existy(e.invasiveTumourSize)&&e.invasiveTumourSize!==""||r(o,"Tumour size is missing"),i.surgeryPickersDisabled||bqa.existy(e.invasiveTumourType)||r(o,"Tumour type is missing"),i.surgeryPickersDisabled||e.vascularLymphInvasion||r(o,"Vascular/Lymphatic invasion is missing"),i.surgeryPickersDisabled||bqa.existy(e.invasiveHistoGrade)||r(o,"Histological grade of tumour is missing"),bqa.existy(e.axillaNodesPositive)&&e.axillaNodesPositive!==""||r(o,"Positive axillary nodes missing"),bqa.existy(e.axillaNodesExamined)&&e.axillaNodesExamined!==""||r(o,"Axilla nodes examined missing"),i.surgeryPickersDisabled||s||h||bqa.existy(e.invasiveMarginVerticalSize)&&e.invasiveMarginVerticalSize!==""||bqa.existy(e.invasiveMarginCircumSize)&&e.invasiveMarginCircumSize!==""||r(o,"At least 1 invasive margin size is needed."),bqa.existy(e.chemotherapy)||r(o,"Chemotherapy adjuvant missing"),bqa.existy(e.immunoTx)||r(o,"Herceptin adjuvant missing"),bqa.existy(e.ovarianAblation)||r(o,"Ovarian ablation adjuvant missing"),(!bqa.existy(e.heR2)||e.heR2&&e.heR2==3)&&r(o,'HER2 receptor is missing or entered as "Not Known"'),(!bqa.existy(e.progesteroneReceptors)||e.progesteroneReceptors&&e.progesteroneReceptors==3)&&r(o,'Progesterone receptor is missing or entered as "Not Known"'),(!bqa.existy(e.oestrogenReceptors)||e.oestrogenReceptors&&e.oestrogenReceptors==3)&&r(o,'Oestrogen receptor is missing or entered as "Not Known"'),bqa.existy(e.radiotherapyNeoAdj)||r(o,"Radiotherapy neo-adjuvant missing"),bqa.existy(e.tamoxifenNeoAdj)||r(o,"SERMs neo-adjuvant missing"),bqa.existy(e.aromInhibNeoAdj)||r(o,"Aromatase inhibitor neo-adjuvant missing"),bqa.existy(e.chemotherapyNeoAdj)||r(o,"Chemotherapy neo-adjuvant missing"),bqa.existy(e.ovarianAblationNeoAdj)||r(o,"Ovarian ablation neo-adjuvant missing"),bqa.existy(e.immunoTxNeoAdj)||r(o,"Herceptin neo-adjuvant missing")):e.invasiveInsitu==t&&((i.surgeryPickersDisabled||bqa.existy(e.insituTumourSize))&&e.insituTumourSize!==""||r(o,"Tumour size is missing"),i.surgeryPickersDisabled||bqa.existy(e.insituHistoGrade)||r(o,"Histological grade of tumour is missing"),i.surgeryPickersDisabled||bqa.existy(e.necrosisPresent)||r(o,"Necrosis is missing"),bqa.existy(e.axillaNodesPositive)&&e.axillaNodesPositive!==""||r(o,"Positive axillary nodes missing"),bqa.existy(e.axillaNodesExamined)&&e.axillaNodesExamined!==""||r(o,"Axilla nodes examined missing"),i.surgeryPickersDisabled||s||bqa.existy(e.insituMarginVerticalSize)&&e.insituMarginVerticalSize!==""||bqa.existy(e.insituMarginCircumSize)&&e.insituMarginCircumSize!==""||r(o,"At least 1 insitu margin size is needed.")),i.surgeryPickersDisabled||i.openBiopsyDate||i.cleDate||i.reExcisionDate||i.totalMastectomyDate||i.reconstructionDate||i.otherDate||i.abbiDate||r(o,"Breast surgery data missing"),i.axSurgeryPickersDisabled||i.sentinelNodeDate||i.level1Date||i.level2Date||i.level3Date||i.unknownDate||r(o,"Axillary surgery dates missing"),_.sortBy(o,function(n){return n})},o=function(i){var e=i.editModel.breastData,o=[],s,c;return u(i,e,o),s=h(i),c=f(i),bqa.existy(e.radiotherapy)||r(o,"Radiotherapy adjuvant missing"),bqa.existy(e.tamoxifen)||r(o,"SERMs adjuvant missing"),bqa.existy(e.aromInhib)||r(o,"Aromatase inhibitor adjuvant missing"),e.invasiveInsitu==n?(i.noSurgeryMeta.noSurgeryChecked||bqa.existy(e.invasiveTumourSize)&&e.invasiveTumourSize!==""||r(o,"Tumour size is missing"),i.noSurgeryMeta.noSurgeryChecked||bqa.existy(e.invasiveTumourType)||r(o,"Tumour type is missing"),i.noSurgeryMeta.noSurgeryChecked||e.vascularLymphInvasion||r(o,"Vascular/Lymphatic invasion is missing"),i.noSurgeryMeta.noSurgeryChecked||bqa.existy(e.invasiveHistoGrade)||r(o,"Histological grade of tumour is missing"),bqa.existy(e.axillaNodesExamined)&&e.axillaNodesExamined!==""||r(o,"Axilla nodes examined missing"),bqa.existy(e.axillaNodesPositive)&&e.axillaNodesPositive!==""||r(o,"Positive axillary nodes missing"),(!bqa.existy(e.heR2)||e.heR2&&e.heR2==3)&&r(o,'HER2 receptor is missing or entered as "Not Known"'),(!bqa.existy(e.progesteroneReceptors)||e.progesteroneReceptors&&e.progesteroneReceptors==3)&&r(o,'Progesterone receptor is missing or entered as "Not Known"'),(!bqa.existy(e.oestrogenReceptors)||e.oestrogenReceptors&&e.oestrogenReceptors==3)&&r(o,'Oestrogen receptor is missing or entered as "Not Known"'),i.noSurgeryMeta.noSurgeryChecked||s||c||bqa.existy(e.invasiveMarginVerticalSize)&&e.invasiveMarginVerticalSize!==""||bqa.existy(e.invasiveMarginCircumSize)&&e.invasiveMarginCircumSize!==""||r(o,"At least 1 invasive margin size is needed."),bqa.existy(e.chemotherapy)||r(o,"Chemotherapy adjuvant missing"),bqa.existy(e.immunoTx)||r(o,"Herceptin adjuvant missing"),bqa.existy(e.ovarianAblation)||r(o,"Ovarian ablation adjuvant missing"),bqa.existy(e.radiotherapyNeoAdj)||r(o,"Radiotherapy neo-adjuvant missing"),bqa.existy(e.tamoxifenNeoAdj)||r(o,"SERMs neo-adjuvant missing"),bqa.existy(e.aromInhibNeoAdj)||r(o,"Aromatase inhibitor neo-adjuvant missing"),bqa.existy(e.chemotherapyNeoAdj)||r(o,"Chemotherapy neo-adjuvant missing"),bqa.existy(e.ovarianAblationNeoAdj)||r(o,"Ovarian ablation neo-adjuvant missing"),bqa.existy(e.immunoTxNeoAdj)||r(o,"Herceptin neo-adjuvant missing")):e.invasiveInsitu==t&&((i.noSurgeryMeta.noSurgeryChecked||bqa.existy(e.insituTumourSize))&&e.insituTumourSize!==""||r(o,"Tumour size is missing"),i.noSurgeryMeta.noSurgeryChecked||bqa.existy(e.insituHistoGrade)||r(o,"Histological grade of tumour is missing"),i.noSurgeryMeta.noSurgeryChecked||bqa.existy(e.necrosisPresent)||r(o,"Necrosis is missing"),bqa.existy(e.axillaNodesExamined)&&e.axillaNodesExamined!==""||r(o,"Axilla nodes examined missing"),bqa.existy(e.axillaNodesPositive)&&e.axillaNodesPositive!==""||r(o,"Positive axillary nodes missing"),i.noSurgeryMeta.noSurgeryChecked||s||bqa.existy(e.insituMarginVerticalSize)&&e.insituMarginVerticalSize!==""||bqa.existy(e.insituMarginCircumSize)&&e.insituMarginCircumSize!==""||r(o,"At least 1 insitu margin size is needed.")),i.noSurgeryMeta.noSurgeryChecked||i.atLeastOneSurgeryOnEp()||r(o,"Breast surgery data missing"),i.noSurgeryMeta.noAuxSurgeryChecked||i.atLeastOneAxSurgeryOnEp()||r(o,"Axillary surgery dates missing"),_.sortBy(o,function(n){return n})},s=function(n,t,i){t=t||"";var r=i?moment(i).format("-DDMMYYYY"):"",u=_.map(n,function(n){return'<p class="comp-rules"><i class="fa fa-chevron-circle-right"><\/i>&nbsp;'+n+"<\/p>"});return'<p>The following fields were not filled in for the previous record and hence the record will be marked incomplete.<\/p><div class="panel panel-primary"><div class="panel-heading"><div class="panel-title">Patient Detail: '+t.toUpperCase()+r+'<\/div><\/div><div class="panel-body">'+u.join("")+"<\/div><\/div>"};return{getSmallDataSetCompletenessFields:e,getFullDataSetCompletenessFields:o,formatCompletenessFieldsMessage:s}}var n=1,t=2,i=4;angular.module(clientConstants.appName).factory("completenessRulesService",[r])}(),function(){"use strict";function n(){var n=[{fieldName:"name",rules:[{name:"required",message:"Name is required",addToHelpBlock:!1},{name:"minlength",message:"Length of name must be 2 or 3 characters",addToHelpBlock:!0},{name:"maxlength",message:"Length of name must be 2 or 3 characters",addToHelpBlock:!0}]},{fieldName:"dob",rules:[{name:"required",message:"Date of birth is required",addToHelpBlock:!0},{name:"bqDateRange",message:"Date of birth is not valid",addToHelpBlock:!0},{name:"date",message:"Please enter a valid date of birth",addToHelpBlock:!1}]},{fieldName:"gender",rules:[{name:"required",message:"A gender must be specified",addToHelpBlock:!0}]},{fieldName:"indigenousStatus",alternateFieldNames:["indigenousRadio"],rules:[{name:"required",message:"Indigenous Status is required",addToHelpBlock:!1}]},{fieldName:"postcode",rules:[{name:"required",message:"Postcode is required",addToHelpBlock:!1},{name:"maxlength",message:"Postcode must be a 4 digit integer",addToHelpBlock:!0},{name:"minlength",message:"Postcode must be a 4 digit integer",addToHelpBlock:!0}]},{fieldName:"privatePublic",rules:[{name:"required",message:"Private / public is a required field",addToHelpBlock:!1}]},{fieldName:"clinicReference",rules:[{name:"required",message:"Clinic Reference is a required field",addToHelpBlock:!1}]},{fieldName:"surgeon",rules:[{name:"required",message:"Surgeon is required",addToHelpBlock:!1}]},{fieldName:"gestationalStatus",rules:[{name:"valid",message:'Gestational status must be null if menopausal status is "Male" or "Post"',addToHelpBlock:!0}]},{fieldName:"hospitalClinic",rules:[{name:"required",message:"Hospital / Clinic is a required field",addToHelpBlock:!1}]},{fieldName:"insituTumourSize",rules:[{name:"bqMax",message:"Insitu tumour size must be a positive integer not greater than 250",addToHelpBlock:!0},{name:"bqMin",message:"Insitu tumour size must be a positive integer not greater than 250",addToHelpBlock:!0}]},{fieldName:"insituMarginCircumSize",rules:[{name:"bqMax",message:"Insitu circum margin size must be a positive integer not greater than 100",addToHelpBlock:!0}]},{fieldName:"insituPanelInsituMarginCircumSize",rules:[{name:"bqMax",message:"Insitu circum margin size must be a positive integer not greater than 100",addToHelpBlock:!0}]},{fieldName:"invasivePanelInsituMarginCircumSize",rules:[{name:"bqMax",message:"Insitu circum margin size must be a positive integer not greater than 100",addToHelpBlock:!0}]},{fieldName:"insituMarginVerticalSize",rules:[{name:"bqMax",message:"Insitu vertical margin size must be a positive integer not greater than 100",addToHelpBlock:!0}]},{fieldName:"insituPanelInsituMarginVerticalSize",rules:[{name:"bqMax",message:"Insitu vertical margin size must be a positive integer not greater than 100",addToHelpBlock:!0}]},{fieldName:"invasivePanelInsituMarginVerticalSize",rules:[{name:"bqMax",message:"Insitu vertical margin size must be a positive integer not greater than 100",addToHelpBlock:!0}]},{fieldName:"axillaNodesExamined",rules:[{name:"bqMax",message:"Number of nodes examined must be a positive integer not greater than 40",addToHelpBlock:!0}]},{fieldName:"axillaNodesPositive",rules:[{name:"bqCompareMax",message:"Number of positive nodes must be a positive integer not greater than the number of nodes examined",addToHelpBlock:!0}]},{fieldName:"invasiveTumourSize",rules:[{name:"bqMax",message:"Invasive tumour size must be a positive integer not greater than 250",addToHelpBlock:!0}]},{fieldName:"totalLesionExtent",rules:[{name:"bqMax",message:"Total Extent of Lesion value must be a positive integer not greater than 250",addToHelpBlock:!0}]},{fieldName:"invasiveMarginCircumSize",rules:[{name:"bqMax",message:"Invasive Circum Margin must be a positive integer not greater than 100",addToHelpBlock:!0}]},{fieldName:"invasiveMarginVerticalSize",rules:[{name:"bqMax",message:"Invasive Vertical Margin size must be a positive integer not greater than 100",addToHelpBlock:!0}]},{fieldName:"addFollowupDate",rules:[{name:"required",message:"Add follow up date is required",addToHelpBlock:!0},{name:"futureDate",message:"Follow up date cannot be a future date",addToHelpBlock:!0},{name:"date",message:"Please enter a valid follow up date",addToHelpBlock:!1}]},{fieldName:"diagnosisDate",rules:[{name:"required",message:"Diagnosis date is required",addToHelpBlock:!1},{name:"requiredDate",message:"Diagnosis date is required",addToHelpBlock:!1},{name:"bqDateRange",message:"Diagnosis date is not valid",addToHelpBlock:!1},{name:"date",message:"Please enter a valid diagnosis date",addToHelpBlock:!1}]},{fieldName:"brCareNurse",rules:[{name:"required",message:"Breast Care Nurse is required",addToHelpBlock:!0}]},{fieldName:"mdTrev",rules:[{name:"required",message:"Multi Disciplinary Treatment is required",addToHelpBlock:!0}]}],i=function(i){for(var r=0;r<n.length;r++)if(t(n[r],i))return n[r].rules;return null},r=function(i){for(var f,e,r=[],u=0;u<n.length;u++)if(t(n[u],i.$name))for(f in i.$error)i.$error.hasOwnProperty(f)&&(e=_.find(n[u].rules,function(n){return n.name===f}),bqa.existy(e)?r.push(e.message):f==="required"&&r.push(i.$name+" is required"));return r.length>0?r:null},t=function(n,t){return n.fieldName===t||bqa.existy(n.alternateFieldNames)&&$.inArray(t,n.alternateFieldNames)!==-1};return{getValidationRules:i,getFieldValidationRules:r}}angular.module(clientConstants.appName).factory("validationRulesService",[n])}(),function(){"use strict";function n(){function n(){return{endDate:this.endDate,startDate:this.startDate}}function t(n,t){this.endDate=t;this.startDate=n}return{getDaterange:n,setDaterange:t}}angular.module(clientConstants.appName).factory("summaryDaterangeService",[n])}(),function(){function f(n){return{restrict:"A",require:"^form",link:u(n)}}var n=angular.module(clientConstants.appName),t=function(n){var t=n.querySelector("input, textarea, select"),r=t.getAttribute("type"),u=t.getAttribute("name"),i;return r!=="checkbox"&&r!=="radio"&&t.classList.add("form-control"),i=n.querySelector("label"),bqa.existy(i)&&i.classList.add("control-label"),n.classList.add("form-group"),u},i=function(n,t,i,r,u){var f=n.$name+"."+i,e="<div class='help-block' ng-messages='"+f+".$error' ng-if='"+f+".$invalid && "+f+".$touched'><div ng-messages-include='/Scripts/app/templates/messages/messages.html'><\/div><\/div>";t.append(r(e)(u))},r=function(n,t){return function(){if(t&&n[t])return n[t].$invalid}},u=function(n){return function(u,f,e,o){var s=t(f[0]);i(o,f,s,n,u);u.$watch(r(o,s))}};n.directive("bqFormInput",["$compile",f])}(),function(){function e(n,t){return{restrict:"A",require:"^form",link:f(n,t)}}var n=angular.module(clientConstants.appName),t=function(n){var t=n.querySelector("input, textarea, select"),r=t.getAttribute("type"),u=t.getAttribute("name"),i;return r!=="checkbox"&&r!=="radio"&&t.classList.add("form-control"),i=n.querySelector("label"),bqa.existy(i)&&i.classList.add("control-label"),n.classList.add("form-group"),u},i=function(n,t,i,u,f,e){var o=n.$name+"."+i,s="<div class='help-block' ng-messages='"+o+".$error' ng-if='"+o+".$invalid && "+o+".$touched'>"+r(i,e)+"<div ng-messages-include='/Scripts/app/templates/messages/messages.html'><\/div><\/div>";t.append(u(s)(f))},r=function(n,t){var r=t.getValidationRules(n),u="",i;if(bqa.existy(r))for(i=0;i<r.length;i++)r[i].addToHelpBlock&&(u+="<div ng-message='"+r[i].name+"'>"+r[i].message+"<\/div>");return u},u=function(n,t){return function(){if(t&&n[t])return n[t].$invalid}},f=function(n,r){return function(f,e,o,s){var h=t(e[0]);i(s,e,h,n,f,r);f.$watch(u(s,h))}};n.directive("bqFormInputVal",["$compile","validationRulesService",e])}(),function(){function t(){return{restrict:"A",require:"ngModel",link:function(n,t,r,u){n.$watch(r.bqMax,function(){u.$setViewValue(u.$viewValue)});var f=function(t){var f=n.$eval(r.bqMax)||Infinity;return!i(t)&&t>f?u.$setValidity("bqMax",!1):u.$setValidity("bqMax",!0),t};u.$parsers.push(f);u.$formatters.push(f)}}}function i(n){return angular.isUndefined(n)||n===""||n===null||n!==n}var n=angular.module(clientConstants.appName);n.directive("bqMax",t)}(),function(){function t(){return{restrict:"A",require:"ngModel",link:function(n,t,r,u){n.$watch(r.bqMin,function(){u.$setViewValue(u.$viewValue)});var f=function(t){var f=n.$eval(r.bqMin)||0;return!i(t)&&t<f?u.$setValidity("bqMin",!1):u.$setValidity("bqMin",!0),t};u.$parsers.push(f);u.$formatters.push(f)}}}function i(n){return angular.isUndefined(n)||n===""||n===null||n!==n}var n=angular.module(clientConstants.appName);n.directive("bqMin",t)}(),function(){function t(){return{require:"ngModel",link:function(n,t,i,r){function u(n){if(n){var t=n.replace(/[^0-9]/g,"");return t!==n&&(r.$setViewValue(t),r.$render()),t}return""}r.$parsers.push(u)}}}var n=angular.module(clientConstants.appName);n.directive("bqNumbersOnly",t)}(),function(){var n=angular.module(clientConstants.appName),t=function(){return{require:"ngModel",scope:{otherModelValue:"=bqCompareMax"},link:function(n,t,i,r){r.$validators.bqCompareMax=function(t){return Number(t)<=Number(n.otherModelValue)};n.$watch("otherModelValue",function(){r.$validate()})}}};n.directive("bqCompareMax",t)}(),function(){var n=angular.module(clientConstants.appName),t=function(){return{require:"ngModel",scope:{otherModelValue:"=bqCompareTo"},link:function(n,t,i,r){r.$validators.bqCompareTo=function(t){return t==n.otherModelValue};n.$watch("otherModelValue",function(){r.$validate()})}}};n.directive("bqCompareTo",t)}(),function(){var n=angular.module(clientConstants.appName),t=function(){return{require:"ngModel",link:function(n,t,i,r){var u=n[i.startDate],f=n[i.endDate];r.$validators.bqDateRange=function(n){if(!bqa.existy(n))return!0;var t=moment(n);return t.isBetween(u,f,null,"[]")}}}};n.directive("bqDateRange",t)}(),function(){var n=angular.module(clientConstants.appName),t=[clientConstants.validate.futureDate,clientConstants.validate.pastDate],i=function(){return{require:"ngModel",restrict:"A",link:function(n,i,r,u){var f=n[r.startDate],e=n[r.endDate],o=dateHelpers.isDateTooEarlyChecker(u),s=dateHelpers.isDateFutureDateChecker(u);u.$validators.bqSurgeryDate=function(n){if(bqa.existy(n)){var i=moment(n);return s(i,e)&&o(i,f)}return dateHelpers.setValidatorsTrue(t,u),!0}}}};n.directive("bqSurgeryDate",i)}(),function(){var n=angular.module(clientConstants.appName),t=[clientConstants.validate.futureDate,clientConstants.validate.pastDate],i=function(){return{require:"ngModel",restrict:"A",link:function(n,i,r,u){var f=n[r.startDate],e=n[r.endDate],o=dateHelpers.isDateTooEarlyChecker(u),s=dateHelpers.isDateFutureDateChecker(u);u.$validators.bqNewSurgeryDate=function(i){var a=r.index,h,c,l;return bqa.existy(i)?(h=moment(i),c=s(h,e)&&o(h,f),c&&(l=n.newProcedures[a],l&&(l.date=i)),c):(dateHelpers.setValidatorsTrue(t,u),!0)}}}};n.directive("bqNewSurgeryDate",i)}(),function(){var n=angular.module(clientConstants.appName),t=[clientConstants.validate.futureDate,clientConstants.validate.pastDate],i=function(){return{require:"ngModel",restrict:"A",link:function(n,i,r,u){var f=n[r.startDate],e=n[r.endDate],o=dateHelpers.isDateTooEarlyChecker(u),s=dateHelpers.isDateFutureDateChecker(u);u.$validators.bqSurgeryDischargeDate=function(i){var a=r.index,c,l,h;return bqa.existy(i)?(c=moment(i),l=s(c,e)&&o(c,f),l&&(h=n.newProcedures[a],h&&(h.dischargeDate=i)),l):(h=n.newProcedures[a],h&&h.dischargeDate&&(h.dischargeDate=undefined),dateHelpers.setValidatorsTrue(t,u),!0)}}}};n.directive("bqSurgeryDischargeDate",i)}(),function(){var n=angular.module(clientConstants.appName),t=function(){return{require:"ngModel",link:function(n,t,i,r){var u=n[i.startDate],f=n[i.endDate];r.$validators.bqDiagDateFullDs=function(t){if(t){r.$error.requiredDate&&delete r.$error.requiredDate;r.$setValidity(clientConstants.validate.requiredDate,!0);var e=moment(t),i=e.isBetween(u,f,null,"[]");return r.$setValidity(clientConstants.validate.dateRange,i),i}return r.$error.requiredDate=!0,r.$setValidity(clientConstants.validate.requiredDate,!1),bqa.existy(n.editModel.breastData)?n.editModel.breastData.diagnosisDate=null:(n.editModel.breastData={},n.editModel.breastData.diagnosisDate=null),r.$setValidity(clientConstants.validate.dateRange,!0),!1}}}};n.directive("bqDiagDateFullDs",t)}(),function(){function r(n){return{restrict:"A",link:i(n)}}var n=angular.module(clientConstants.appName),t=function(n){var i=n.querySelectorAll("td"),f="col-xs-1",r,t,u;if(bqa.existy(i)&&i.length>0)for(r=0;r<i.length;r++)i[r].classList.add(f),n.classList.add("text-center");else if(t=n.querySelectorAll("th"),bqa.existy(t)&&t.length>0)for(u=0;u<t.length;u++)t[u].classList.add(f),n.classList.add("text-left");return name},i=function(){return function(n,i){return t(i[0]),!0}};n.directive("bqTablerowGrid",["$compile",r])}(),function(){"use strict";function i(i,r,u,f,e,o){function h(){r.spinneractive||f.spin(clientConstants.spinners.viewPaneSpinner)}function l(i){u.log("BQA loaded!",null,!0);e.activateController([],n).then(function(){t&&(f.stop(clientConstants.spinners.viewPaneSpinner),t=!1);i.showSplash=!1;u.log("Shell Activated")})}function a(){r.busyMessage=clientConstants.spinners.busyMessage;r.isBusy=!0;r.spinneractive=!1;r.spinnerOptions={radius:42,rotate:0,scale:1,shadow:!0,lines:13,length:28,width:14,speed:1,corners:1,trail:60,opacity:.25,color:clientConstants.spinners.colour};i.$on(clientConstants.spinners.spin,function(){r.spinneractive=!0});i.$on(clientConstants.spinners.stop,function(){r.spinneractive=!1})}function c(){f.stop(clientConstants.spinners.viewPaneSpinner)}var s=o.events;r.showSplash=!0;a();h();l(r);i.$on("$routeChangeStart",function(){h()});i.$on(s.controllerActivateSuccess,function(t,i){i.controllerId!==n&&r.spinneractive&&c()});i.$on(s.stopSpinner,function(){c()})}var n="ShellController",t=!0;angular.module(clientConstants.appName).controller(n,["$rootScope","$scope","$log","usSpinnerService","common","config",i])}(),function(){"use strict";function f(f,e,o,s,h,c,l,a){function b(n){o.activateController([nt(),g(),tt(n)],i).then(function(){if(f.mode===clientConstants.crudMode.edit)f.editModel.dataManager=f.dataManagerFromServer,f.dataManagerAccessManager=p(f.dataManagerFromServer);else{var n=v();f.dataManagerAccessManager.inputs[0].dataManagerInput.dataSource=n.newSurgeonsList.results;f.dataManagerAccessManager.inputs[0].hospitalInput.dataSource=n.newHospitalsList.results}ht(clientConstants.spinners.dataManagerSpinner)})}function k(n){(f.inProgress=!0,n.preventDefault(),f.editModel.email=f.editModel.dataManager.username,f.editModel.dataManager.dataManagerSurgeons=w(f.dataManagerAccessManager),f.editModel.dataManager.trackingState=clientConstants.trackingState.added,y(f.addDataManagerForm))&&c.addDataManager(f.editModel).then(function(n){f.operationSucceeded=!0;f.dataManagerFromServer=n.data.dataManager;f.editModel.dataManager=f.dataManagerFromServer;f.dataManagerAccessManager=p(f.dataManagerFromServer);f.message=u+r+"<\/p>";f.mode=clientConstants.crudMode.edit},function(n){f.operationSucceeded=!1;var t=n.data;f.message=o.getErrorsAsHtml(t);y(f.addDataManagerForm)}).then(function(){f.inProgress=!1;f.operationDone=!0})}function d(n){if(f.operationDone=!1,f.inProgress=!0,f.message="",n.preventDefault(),!y(f.addDataManagerForm)){f.operationDone=!0;f.inProgress=!1;return}f.editModel.email=f.editModel.dataManager.username;f.editModel.dataManager.dataManagerSurgeons=w(f.dataManagerAccessManager);f.editModel.dataManager.trackingState=clientConstants.trackingState.modified;c.updateDataManager(f.editModel).then(function(n){f.operationSucceeded=!0;f.dataManagerFromServer=n.data.dataManager;f.editModel.dataManager=f.dataManagerFromServer;f.dataManagerAccessManager=p(f.dataManagerFromServer);f.message=u+r+"<\/p>"},function(n){f.operationSucceeded=!1;var t=n.data;f.message=o.getErrorsAsHtml(t);y(f.addDataManagerForm)}).then(function(){f.inProgress=!1;f.operationDone=!0})}function g(){return c.getHospitalsSelectList().then(function(n){f.hospitalsSelectList=n.data},function(n){o.alertsService.error(n.data.errorMessage)})}function nt(){return c.getSurgeonsSelectList().then(function(n){f.surgeonsSelectList=n.data},function(n){o.alertsService.error(n.data.errorMessage)})}function tt(n){return c.getDataManager(n).then(function(n){f.dataManagerFromServer=n.data.dataManager},function(n){o.alertsService.error(n.data.errorMessage)})}function it(){f.operationDone=!1;h.dismiss("cancel")}function rt(){f.operationDone=!1;h.close()}function ut(){if(f.mode===clientConstants.crudMode.edit)return null;var i=[{dataManagerSurgeonId:-1,dataManagerInput:{dataSource:[],name:t,selectedSurgeon:undefined},hospitalInput:{dataSource:[],name:n,selectedHospital:undefined},trackingState:clientConstants.trackingState.added}];return{count:1,inputs:i,deletedInputs:[]}}function ft(n){n.preventDefault();var t=f.dataManagerAccessManager,i=v();t.count++;t.inputs.push({dataManagerInput:{dataSource:i.newSurgeonsList.results,name:"surgeonId["+t.count+"]",selectedSurgeon:undefined},hospitalInput:{dataSource:i.newHospitalsList.results,name:"hospitalId["+t.count+"]",selectedHospital:undefined},trackingState:clientConstants.trackingState.added})}function et(i,r,u){var e,u,o;i.preventDefault();e=f.dataManagerAccessManager;u=e.inputs.indexOf(r);u>=0&&e.inputs.splice(u,1);r.trackingState===clientConstants.trackingState.modified&&(r.trackingState=clientConstants.trackingState.deleted,e.deletedInputs.push(r));e.count--;e.count<1&&(e.inputs=[],o=v(),e.inputs.push({dataManagerInput:{dataSource:o.newSurgeonsList.results,name:t,selectedSurgeon:undefined},hospitalInput:{dataSource:o.newHospitalsList.results,name:n,selectedHospital:undefined},trackingState:clientConstants.trackingState.added}),e.count=1)}function ot(n,t){n.editModel={};n.editModel.dataManager={};n.mode=t?clientConstants.crudMode.edit:clientConstants.crudMode.add;n.dataManagerAccessManager=ut();n.editModel.dataManager.activeUser=!0;n.cancel=it;n.add=k;n.edit=d;n.close=rt;n.addDataManagerGroup=ft;n.removeDataManagerGroup=et;n.operationSucceeded=!1;n.message=""}function w(n){var t=[],i=n.inputs.length;try{angular.forEach(n.inputs,function(n){n.dataManagerInput.selectedSurgeon&&t.push({surgeonId:n.dataManagerInput.selectedSurgeon.surgeonId,hospitalId:n.hospitalInput.selectedHospital.hospitalId,trackingState:n.trackingState,id:n.dataManagerSurgeonId,dataManagerId:n.dataManagerId})});angular.forEach(n.deletedInputs,function(n){n.dataManagerInput.selectedSurgeon&&t.push({surgeonId:n.dataManagerInput.selectedSurgeon.surgeonId,hospitalId:n.hospitalInput.selectedHospital.hospitalId,trackingState:n.trackingState,id:n.dataManagerSurgeonId,dataManagerId:n.dataManagerId})})}catch(r){}return t}function p(i){var u=[],r=0,f;return i.dataManagerSurgeons.length===0?(f=v(),u=[{dataManagerSurgeonId:-1,dataManagerInput:{dataSource:f.newSurgeonsList.results,name:t,selectedSurgeon:undefined},hospitalInput:{dataSource:f.newHospitalsList.results,name:n,selectedHospital:undefined},trackingState:clientConstants.trackingState.added}]):angular.forEach(i.dataManagerSurgeons,function(n){r++;var t=v(),i={dataManagerId:n.dataManagerId,dataManagerSurgeonId:n.id,dataManagerInput:{dataSource:t.newSurgeonsList.results,name:"surgeonId["+r+"]",selectedSurgeon:{name:n.surgeon.surname+", "+n.surgeon.givenName,surgeonId:n.surgeonId}},hospitalInput:{dataSource:t.newHospitalsList.results,name:"hospitalId["+r+"]",selectedHospital:{name:n.hospital.hospitalName,hospitalId:n.hospitalId}},trackingState:clientConstants.trackingState.modified};u.push(i)}),{count:r,inputs:u,deletedInputs:[]}}function v(){var t={},n;return angular.extend(t,f.surgeonsSelectList),n={},angular.extend(n,f.hospitalsSelectList),{newSurgeonsList:t,newHospitalsList:n}}function y(n){var t=[],i;return n.$invalid?(angular.forEach(n.$error,function(n){angular.forEach(n,function(n){n!=null&&n.$setTouched!=null&&n.$invalid&&(n.$setTouched(),t.push(n.$name))})}),f.dataManagerAccessManager.inputs.length===1&&(i=_.any(t,function(n){return!n.startsWith("selectSurgeonInput",0)&&!n.startsWith("selectHospitalInput",0)}),!i))?(delete f.addDataManagerForm.selectSurgeonInput0.$error.required,f.addDataManagerForm.selectSurgeonInput0.$setValidity(clientConstants.validate.required,!0),delete f.addDataManagerForm.selectHospitalInput0.$error.required,f.addDataManagerForm.selectHospitalInput0.$setValidity(clientConstants.validate.required,!0),!0):!1:!0}function st(n){n.busyMessage=clientConstants.spinners.busyMessage;n.isBusy=!0;n.spinneractive=!0;n.mySpinnerOptions={radius:10,rotate:0,scale:1,shadow:!0,lines:10,length:8,width:4,speed:1,corners:1,trail:60,opacity:.25,color:clientConstants.spinners.colour};e.$on(clientConstants.spinners.spin,function(){n.spinneractive=!0});e.$on(clientConstants.spinners.stop,function(){n.spinneractive=!1})}function ht(n){f.spinneractive&&a.stop(n)}st(f);ot(f,l);b(l)}var i="AddNewDataManagerController",n="hospitalId[0]",t="surgeonId[0]",r="Operation Succeeded!",u='<p> <i class="fa fa-check-circle" ><\/i>&nbsp;';angular.module(clientConstants.appName).controller(i,["$scope","$rootScope","common","config","$uibModalInstance","dataContext","dataManagerId","usSpinnerService",f])}(),function(){"use strict";function r(r,u,f,e,o,s,h){function a(t){t?f.activateController([w(t),c()],n).then(function(){l(clientConstants.spinners.surgeonSpinner)}):f.activateController([c()],n).then(function(){l(clientConstants.spinners.surgeonSpinner)})}function v(n){n.inProgress=!1;n.editModel={};n.editModel.surgeon={};n.cancel=b;n.add=y;n.edit=p;n.close=k;n.operationDone=!1;n.operationSucceeded=!1;n.message="";n.mode=o?clientConstants.crudMode.edit:clientConstants.crudMode.add}function y(n){(n.preventDefault(),f.lightUpInvalidModelForm(r.addSurgeonForm))&&(r.operationDone=!1,r.inProgress=!0,r.message="",r.editModel.email=r.editModel.surgeon.username,r.editModel.surgeon.trackingState=clientConstants.trackingState.added,s.addSurgeon(r.editModel).then(function(n){r.operationSucceeded=!0;r.message=t+n.data.msg+"<\/p>"},function(n){r.operationSucceeded=!1;var t=n.data;r.message=f.getErrorsAsHtml(t)}).then(function(){r.inProgress=!1;r.operationDone=!0}))}function p(n){if(n.preventDefault(),f.lightUpInvalidModelForm(r.addSurgeonForm)){r.operationDone=!1;r.inProgress=!0;r.message="";r.editModel.surgeon.email=r.editModel.surgeon.username;r.editModel.surgeon.trackingState=clientConstants.trackingState.modified;var u={surgeon:r.editModel.surgeon};s.updateSurgeon(u).then(function(n){r.operationSucceeded=!0;r.message=t+i+"<\/p>";r.editModel.surgeon=n.data.surgeon},function(n){r.operationSucceeded=!1;var t=n.data;r.message=f.getErrorsAsHtml(t)}).then(function(){r.inProgress=!1;r.operationDone=!0})}}function c(){return s.getSurgeonTitles().then(function(n){r.angularSelectWithStringKey=n.data})}function w(n){return s.getSurgeon(n).then(function(n){r.editModel.surgeon=n.data.surgeon})}function b(){r.operationDone=!1;e.dismiss("cancel")}function k(){r.operationDone=!1;e.close()}function d(n){n.busyMessage=clientConstants.spinners.busyMessage;n.isBusy=!0;n.spinneractive=!0;n.mySpinnerOptions={radius:10,rotate:0,scale:1,shadow:!0,lines:10,length:8,width:4,speed:1,corners:1,trail:60,opacity:.25,color:clientConstants.spinners.colour};u.$on(clientConstants.spinners.spin,function(){n.spinneractive=!0});u.$on(clientConstants.spinners.stop,function(){n.spinneractive=!1})}function l(n){r.spinneractive&&h.stop(n)}d(r);v(r);a(o)}var n="AddNewSurgeonController",i="Operation Succeeded!",t='<p> <i class="fa fa-check-circle" ><\/i>&nbsp;';angular.module(clientConstants.appName).controller(n,["$scope","$rootScope","common","$uibModalInstance","surgeonId","dataContext","usSpinnerService",r])}(),function(){"use strict";function t(t,i,r){function u(){r.activateController([],n).then(function(){i.log("Contact page loaded!",null,!0)})}u()}var n="ContactController";angular.module(clientConstants.appName).controller(n,["$scope","$log","common",t])}(),function(){"use strict";function t(t,i,r,u,f,e,o,s,h,c,l,a){function p(i,r,f,e,o,s){f.activateController([b(s,o,t),f.prefetchTemplates(e,i,r)],n).then(function(){u.log("Data Manager Admin View Activated")})}function w(){return h.getDataManagersList().then(function(n){return t.loggedIn=o.displayUser(n.data.loggedInUser),n.data.dataManagerDtos},function(){})}function b(n,t,i){i.dtColumns=v.promise;i.dtOptions=y.promise}function k(n){r(angular.element(n).contents())(t)}function d(){var n=c.open({animation:!0,templateUrl:"Scripts/app/templates/dialogs/AddNewDataManager.html",controller:"AddNewDataManagerController",size:"lg",resolve:{dataManagerId:function(){return 0}}});n.result.then(function(){t.dtInstance.rerender()},function(){u.info("Modal dismissed at: "+new Date)})}function g(n,i){n.preventDefault();var r=c.open({animation:!0,templateUrl:"Scripts/app/templates/dialogs/AddNewDataManager.html",controller:"AddNewDataManagerController",size:"lg",resolve:{dataManagerId:function(){return i}}});r.result.then(function(){t.dtInstance.rerender()},function(){u.info("Modal dismissed at: "+new Date)})}var v=o.$q.defer(),y=o.$q.defer();t.dtInstance={};p(["Scripts/app/templates/dialogs/AddNewDataManager.html"],h,o,e,l,a);t.openAdd=d;t.openEdit=g;t.$on(s.events.controllerActivateSuccess,function(t,r){r.controllerId===n&&(v.resolve([a.newColumn("surname").withTitle("Surname"),a.newColumn("givenName").withTitle("Given Name"),a.newColumn("username").withTitle("User Name"),a.newColumn("activeUser").withTitle("User Active?").renderWith(function(n){return i("boolToSymbol")(n)}),a.newColumn("dataManagerSurgeons").withTitle("Surgeon (First, Last) and Hospital").renderWith(function(n){var t=$(document.createElement("div"));return angular.forEach(n,function(n){var i=n.surgeon.givenName+" "+n.surgeon.surname,r=n.hospital.hospitalName;t.append('<div class="in-grid-table"><span class="label label-info">'+i+'<\/span><\/div><div class="in-grid-table"><span class="label label-warning">'+r+"<\/span><\/div><br>")}),t[0].outerHTML}),a.newColumn("id").withTitle("Edit").renderWith(function(n){return'<span ng-click="openEdit($event, '+n+')"><i class="fa fa-pencil-square-o text-info clickable-icon"><\/i><\/span>'})]),y.resolve(l.fromFnPromise(function(){return w()}).withPaginationType("full_numbers").withOption("createdRow",k)))})}var n="DataManagerAdminController";angular.module(clientConstants.appName).controller(n,["$scope","$filter","$compile","$log","$location","$templateCache","common","config","dataContext","$uibModal","DTOptionsBuilder","DTColumnBuilder",t])}(),function(){"use strict";function t(t,i,r,u){function f(t,i,u){console.log("Home page loaded!",null,!0);r.activateController([r.prefetchTemplates(t,i,u)],n)}t.obj={};f(i,["Scripts/app/templates/PatientFullDataSet.html","Scripts/app/templates/PatientSmallDataSet.html"],u)}var n="HomeController";angular.module(clientConstants.appName).controller(n,["$scope","$templateCache","common","dataContext",t])}(),function(){"use strict";function t(t,i,r,u,f,e,o,s){function a(){i.busyMessage=clientConstants.spinners.busyMessage;i.isBusy=!0;i.spinneractive=!1;i.spinnerOptions={radius:42,rotate:0,scale:1,shadow:!0,lines:13,length:28,width:14,speed:1,corners:1,trail:60,opacity:.25,color:clientConstants.spinners.colour};t.$on(clientConstants.spinners.spin,function(){i.spinneractive=!0});t.$on(clientConstants.spinners.stop,function(){i.spinneractive=!1})}function h(n){i.spinneractive||(bqa.existy(n)&&n===clientConstants.spinners.viewPaneSpinner&&f.spin(clientConstants.spinners.viewPaneSpinner),f.spin(clientConstants.spinners.daterangeSpinner))}function v(){var n=i.lastDateFrom!=i.dateFrom,t=i.lastDateTo!=i.dateTo;(n&&i.dateFrom==null||t&&i.dateTo==null)&&c()}function y(){var n=i.lastDateFrom!=i.dateFrom,t=i.lastDateTo!=i.dateTo;(n||t)&&c()}function c(){h();i.lastDateFrom=i.dateFrom;i.lastDateTo=i.dateTo;var n=dateHelpers.formatDateForSave(i.dateFrom),t=dateHelpers.formatDateForSave(i.dateTo);return o.getSurgeonSummaryThresholds(n,t).then(function(n){i.summary.threshholdCountsDtos=n.data;f.stop(clientConstants.spinners.daterangeSpinner)},function(){})}function p(){i.format=clientConstants.dateFormats.uiBtstpFormatAlt;i.altInputFormats=[clientConstants.dateFormats.altFormat];var n=((new Date).getFullYear()+clientConstants.minimumYear)/2,t=moment(clientConstants.janFirst+clientConstants.nineteenHundred,clientConstants.dateFormats.outFormat).startOf(dateHelpers.day),r=moment(clientConstants.janFirst+clientConstants.twentyOneHundred,clientConstants.dateFormats.outFormat).startOf(dateHelpers.day);i.dateOptions={maxDate:r,minDate:t,startingDay:1,datepickerMode:clientConstants.datepickerMode,showWeeks:!1,initDate:new Date(n,1,1)};i.dateFromPopup={opened:!1};i.openDateFromPopup=function(){i.dateFromPopup.opened=!0};i.dateToPopup={opened:!1};i.openDateToPopup=function(){i.dateToPopup.opened=!0}}function w(){s.setDaterange(i.dateFrom,i.dateTo);e.activateController([b()],n).then(function(){u.log("Activated Surgeon Summary View")})}function b(){return h(clientConstants.spinners.viewPaneSpinner),o.getSurgicalSummaries(i.surgeonId).then(function(n){i.summary=n.data;i.loggedIn=e.displayUser(n.data.loggedInUser)},function(n){i.error=n}).then(function(){f.stop(clientConstants.spinners.daterangeSpinner);f.stop(clientConstants.spinners.viewPaneSpinner)})}function l(n,t){switch(t){case"denominator":switch(n.kpiNumber){case 1:return 2;case 2:return 5;case 3:return 8;case 4:return 11;case 5:return 14;case 6:return 16}break;case"excluded":switch(n.kpiNumber){case 1:return 3;case 2:return 6;case 3:return 9;case 4:return 12;case 5:return"";case 6:return""}break;case"numerator":switch(n.kpiNumber){case 1:return 1;case 2:return 4;case 3:return 7;case 4:return 10;case 5:return 13;case 6:return 15}}}function k(n,t){s.setDaterange(i.dateFrom,i.dateTo);r.url("/patients/"+l(n,t))}function d(){r.url("/hqpisurgeonsummary")}i.summary={};i.lastDateFrom=null;i.dateFrom=null;i.lastDateTo=null;i.dateTo=null;i.kpiAssessmentsChanged=v;i.kpiAssessmentsBlurred=y;i.linkToDrillDown=l;i.kpiLink=k;i.goToHqpis=d;p();a();w()}var n="SurgeonSummaryController";angular.module(clientConstants.appName).controller(n,["$rootScope","$scope","$location","$log","usSpinnerService","common","dataContext","summaryDaterangeService",t])}(),function(){"use strict";function t(t,i,r,u,f,e,o,s,h,c,l,a,v,y,p,w){function rt(t,i,r,f,e,o){f.activateController([ut(e,o),f.prefetchTemplates(r,t,i)],n).then(function(){u.log("Patients View Activated")})}function ut(n,i){var r=p.getDaterange(),u,f;return bqa.existy(r.startDate)&&(u=dateHelpers.formatDateForSave(r.startDate)),bqa.existy(r.endDate)&&(f=dateHelpers.formatDateForSave(r.endDate)),c.getPatientsList(n,i,r.startDate&&u,r.endDate&&f).then(function(n){t.surgeonId=n.data.surgeonId;t.userIsSurgeonOnly=n.data.userIsSurgeonOnly;t.userIsADataManager=n.data.userIsADataManager;t.userIsADataManager&&(t.dataManagerDataViewModel=n.data.dataManagerDataViewModel);b=n.data.userIsADataManager;tt.resolve(n.data.patientInfoForDataManagerModelList);t.loggedIn=s.displayUser(n.data.loggedInUser)},function(){})}function ft(n){n.openAdd=ot;n.openEdit=ht;n.deletePatient=st;n.openNewPatient=ct;n.startDate=moment(clientConstants.startDate,clientConstants.dateFormats.inFormat).startOf(dateHelpers.day);n.endDate=dateHelpers.subtractYears(new Date,15).endOf(dateHelpers.day)}function et(n,t,i){i.dtColumns=g.promise;i.dtOptions=nt.promise}function ot(n,i){var r=l.open({animation:!0,templateUrl:"Scripts/app/templates/dialogs/AddNewEpisode.html",controller:"AddNewEpisodeController",size:"med",resolve:{patientId:function(){return n},patientIdForView:function(){return null},operationType:function(){return clientConstants.crudMode.add}}});r.rendered.then(function(){w.stop(clientConstants.spinners.episodeSpinner)});r.result.then(function(n){t.selectedAddDetails=n;n.type===clientConstants.dataSetType.minimum?f.url("/patientsmalldataset?patientId="+t.selectedAddDetails.patientId+"&breastDataId=0&surgeonId="+i):f.url("/patientfulldataset?patientId="+t.selectedAddDetails.patientId+"&breastDataId=0&surgeonId="+i)},function(){u.info("Modal dismissed at: "+new Date)})}function st(n,i){n.preventDefault();var r=confirm("Deleting this patient will delete all associated episode records. Are you sure you want to delete this patient?");r&&c.deletePatient(i).then(function(n){n.data.result===clientConstants.opResult.success&&t.dtInstance.changeData(it)},function(){})}function it(){return c.getPatientsList(k,d).then(function(n){return b=n.data.userIsADataManager,n.data.patientInfoForDataManagerModelList})}function ht(n,i,r){var e=l.open({animation:!0,templateUrl:"Scripts/app/templates/dialogs/AddNewEpisode.html",controller:"AddNewEpisodeController",size:"lg",resolve:{patientId:function(){return n},patientIdForView:function(){return i},operationType:function(){return clientConstants.crudMode.edit}}});y.setNewPatientDetails(null,null,b,t.userIsSurgeonOnly);e.result.then(function(n){t.selectedAddEditDetails=n;bqa.existy(n.type)?n.operation===clientConstants.crudMode.add?n.type===clientConstants.dataSetType.minimum?f.url("/patientsmalldataset?patientId="+n.patientId+"&breastDataId=0&surgeonId="+r):f.url("/patientfulldataset?patientId="+n.patientId+"&breastDataId=0&surgeonId="+r):n.operation===clientConstants.crudMode.edit&&(n.type===clientConstants.dataSetType.minimum?f.url("/patientsmalldataset?patientId="+n.patientId+"&breastDataId="+n.breastDataId+"&surgeonId="+r):f.url("/patientfulldataset?patientId="+n.patientId+"&breastDataId="+n.breastDataId+"&surgeonId="+r)):bqa.existy(n.episodeId)||bqa.existy(n.operation)&&n.operation===clientConstants.crudMode.delete&&t.dtInstance.changeData(it)},function(){u.info("Modal dismissed at: "+new Date)})}function ct(n,i){if(!at(t.addPatientForm))return!1;var r=l.open({animation:!0,templateUrl:"Scripts/app/templates/dialogs/AddNewPatient.html",controller:"AddNewPatientController",size:"med",resolve:{patientName:function(){return n},dob:function(){return t.dobValue},selectedSurgeonId:function(){return t.userIsADataManager?t.surgeonIdForDmLookup:0}}});return y.setNewPatientDetails(n,t.dobValue,b,t.userIsSurgeonOnly),r.result.then(function(n){bqa.existy(n.type)&&(n.type===clientConstants.dataSetType.minimum?n.patientId?f.url("/patientsmalldataset?patientId="+n.patientId+"&breastDataId=0&surgeonId="+n.surgeonId):f.url("/patientsmalldataset?patientId=0&breastDataId=0&surgeonId="+(i||0)):n.patientId?f.url("/patientfulldataset?patientId="+n.patientId+"&breastDataId=0&surgeonId="+n.surgeonId):f.url("/patientfulldataset?patientId=0&breastDataId=0&surgeonId="+(i||0)))},function(){u.info("Modal dismissed at: "+new Date)}),!0}function lt(n){var i=new Date,f=i.getFullYear(),t=(f+clientConstants.minimumYear)/2-40,r,u;t=Math.ceil(t);r=moment(clientConstants.janFirst+t,clientConstants.dateFormats.outFormat).toDate();u=moment(clientConstants.janFirst+clientConstants.nineteenHundred,clientConstants.dateFormats.outFormat).toDate();n.format=clientConstants.dateFormats.uiBtstpFormatAlt;n.dateOptions={maxDate:i,minDate:u,startingDay:1,datepickerMode:clientConstants.datepickerMode,showWeeks:!1,initDate:r};n.altInputFormats=[clientConstants.dateFormats.altFormat];n.dobPopup={opened:!1};n.openDobPopup=function(){n.dobPopup.opened=!0};n.dobValue=undefined}function at(n){return n.$invalid?(angular.forEach(n.$error,function(n){angular.forEach(n,function(n){n!=null&&n.$setTouched!=null&&n.$setTouched()})}),!1):!0}var k=o.id,d=o.hqpi,b;rt(["Scripts/app/templates/dialogs/AddNewEpisode.html","Scripts/app/templates/dialogs/AddNewPatient.html"],c,e,s,k,d);b=!1;t.dtInstance={};var g=s.$q.defer(),nt=s.$q.defer(),tt=s.$q.defer();et(v,a,t,i);ft(t);lt(t);t.$on(h.events.controllerActivateSuccess,function(u,f){var o,e,s;f.controllerId===n&&(o=[v.newColumn("dateOfBirth").withTitle("DOB").withOption("type","date-enAu").renderWith(function(n){return i("bqaMomentFormat")(n,clientConstants.dateFormats.outFormat)}).withOption("width","10%"),v.newColumn("caseComplete").withTitle("Complete").renderWith(function(n){var t="";return bqa.existy(n)&&(t=" title="+(n===1?'"Episode complete"':'"Episode incomplete"')),"<span"+t+">"+i("intToSymbol")(n)+"<\/span>"}).withOption("type","compl").withOption("width","10%").withOption("bSearchable",!1),v.newColumn("recordCreated").withTitle("Date Created").withOption("type","date-enAu").renderWith(function(n){return i("bqaMomentFormat")(n,clientConstants.dateFormats.outFormat)}).withOption("width","10%"),v.newColumn("firstDiagnosed").withTitle("First Diagnosis").withOption("type","date-enAu").renderWith(function(n){return i("bqaMomentFormat")(n,clientConstants.dateFormats.outFormat)}).withOption("width","10%"),v.newColumn("episodeCount").withTitle("Episodes").withOption("width","10%"),v.newColumn("patientEpisode").withTitle("View/Edit").renderWith(function(n){return'<span class="fa fa-eye text-primary clickable-icon" ng-click="openEdit('+n.patientId+",'"+n.patientIdForView+"',"+n.surgeonId+')" title="View or Edit"><i><a href=""><\/a><\/i><\/span>'}).withOption("width","10%").withOption("bSearchable",!1),v.newColumn("patientEpisode").withTitle("Add").renderWith(function(n){return'<span ng-click="openAdd('+n.patientId+","+n.surgeonId+')" class="fa fa-plus-circle text-success clickable-icon" title="Add Episode"><i><\/i><\/span>'}).withOption("width","10%").withOption("bSearchable",!1),v.newColumn("patientId").withTitle("Delete").renderWith(function(n){return'<span class="fa fa-trash-o text-danger clickable-icon" ng-click="deletePatient($event,'+n+')" title="Delete Patient"><i><\/i><\/span>'}).withOption("width","10%").withOption("bSearchable",!1)],e=[],b?(e.push(v.newColumn("surgeonName").withTitle("Surgeon").withOption("width","10%")),e.push(v.newColumn("patientIdForView").withTitle("PatientId").withOption("width","10%"))):e.push(v.newColumn("patientIdForView").withTitle("PatientId").withOption("width","20%")),s=e.concat(o),g.resolve(s),nt.resolve(a.fromFnPromise(function(){return tt.promise}).withPaginationType("full_numbers").withOption("fnRowCallback",function(n){$("span",$("td",n)).unbind("click");r(angular.element(n).contents())(t)})))})}var n="PatientsController";angular.module(clientConstants.appName).controller(n,["$scope","$filter","$compile","$log","$location","$templateCache","$routeParams","common","config","dataContext","$uibModal","DTOptionsBuilder","DTColumnBuilder","patientDataService","summaryDaterangeService","usSpinnerService",t])}(),function(){"use strict";function t(t,i,r,u,f,e,o,s,h,c,l,a){function g(n,t,i){i.myHospitalsDtColumns=b.promise;i.myHospitalsDtOptions=k.promise;i.dtColumns=p.promise;i.dtOptions=w.promise}function nt(t,i){i.activateController([tt()],n).then(function(){u.log("Hospitals view activated")})}function tt(){return h.getMyHospitals().then(function(n){n.data.myHospitalsDtos.length>0&&(d=!0);t.loggedIn=o.displayUser(n.data.loggedInUser);v.resolve(n.data.myHospitalsDtos)},function(){})}var y=this;y.dtInstance={};y.myHospitalsDtInstance={};nt(h,o);var d=!1,p=o.$q.defer(),w=o.$q.defer(),b=o.$q.defer(),k=o.$q.defer(),v=o.$q.defer();g(a,l,t,i);t.$on(s.events.controllerActivateSuccess,function(i,f){var e,o;f.controllerId===n&&(e=[a.newColumn("name").withTitle("Name").withOption("autoWidth",!1).withOption("width","40%"),a.newColumn("suburb").withTitle("Suburb").withOption("width","25%"),a.newColumn("state").withTitle("State").withOption("width","20%"),a.newColumn("remove").withTitle("Remove from my Hospitals").renderWith(function(n,t,i,r){return'<a href=""><span title="Remove from My Hospitals" id="toggleMyHospital-'+i.id+'" ng-click="toggleMyHospital('+i.id+", "+r.row+')" class="fa fa-trash-o text-danger"><\/span><\/a>'}).notSortable().withOption("width","15%"),a.newColumn("isAdded").notVisible()],b.resolve(e),k.resolve(l.fromFnPromise(function(){return v.promise}).withPaginationType("full_numbers").withOption("fnRowCallback",function(n){$("[id^=toggleMyHospital]",$("td",n)).unbind("click");r(angular.element(n).contents())(t)}).withOption("initComplete",function(n){u.log("My hospitals data loaded");var t=angular.element("#"+n.sTableId).DataTable();t.column(4).search("true").draw()})),o=[a.newColumn("name").withTitle("Name").withOption("autoWidth",!1).withOption("width","40%"),a.newColumn("suburb").withTitle("Suburb").withOption("width","25%"),a.newColumn("state").withTitle("State").withOption("width","20%"),a.newColumn("myHospitals").withTitle("Add to my Hospitals").renderWith(function(n,t,i,r){return'<a href=""><span title="Add to My Hospitals" id="toggleRestOfTheHospital-'+i.id+'" ng-click="toggleMyHospital('+i.id+", "+r.row+')" class="fa fa-plus-circle text-success"><\/span><\/a>'}).notSortable().withOption("width","15%"),a.newColumn("isAdded").notVisible()],p.resolve(o),w.resolve(l.fromFnPromise(function(){return v.promise}).withPaginationType("full_numbers").withOption("fnRowCallback",function(n){$("[id^=toggleRestOfTheHospital]",$("td",n)).unbind("click");r(angular.element(n).contents())(t)}).withOption("initComplete",function(n){u.log("Rest of the hospitals data loaded");var t=angular.element("#"+n.sTableId).DataTable();t.column(4).search("false").draw()})))});t.toggleMyHospital=function(n,t){return o.alertsService.clearAlerts(),h.toggleMyHospital(n).then(function(n){var f="Successfully added hospital.",i=!0,r,u;return n.data==="deleted"&&(f="Successfully removed hospital.",i=!1),r=angular.element("#restOfTheHospitalsTable").DataTable(),u=angular.element("#myHospitalsTable").DataTable(),r.cell(t,4).data(i),r.column(4).search("false").draw(),u.cell(t,4).data(i),u.column(4).search("true").draw(),o.alertsService.success(f)},function(){return o.alertsService.error("An error occurred. Please try again later.")})}}var n="HospitalsController";angular.module(clientConstants.appName).controller(n,["$scope","$filter","$compile","$log","$location","$routeParams","common","config","dataContext","$uibModal","DTOptionsBuilder","DTColumnBuilder",t])}(),function(){"use strict";function t(t,i,r,u,f,e,o,s,h,c,l,a,v){function w(i,r,f,e,o,s){f.activateController([b(s,o,t),f.prefetchTemplates(e,i,r)],n).then(function(){u.log("Hospital Admin View Activated")})}function b(n,t,i){i.dtColumns=y.promise;i.dtOptions=p.promise}function k(){return c.getHospitalsForAdmin().then(function(n){return t.loggedIn=s.displayUser(n.data.loggedInUser),n.data.hospitalForAdminDtos},function(){})}function d(n){r(angular.element(n).contents())(t)}function g(){var n=l.open({animation:!0,templateUrl:"Scripts/app/templates/dialogs/AddNewHospital.html",controller:"AddNewHospitalController",size:"lg",resolve:{hospitalId:function(){return 0}}});n.result.then(function(){t.dtInstance.rerender()},function(){u.info("Modal dismissed at: "+new Date)})}function nt(n,i){n.preventDefault();var r=l.open({animation:!0,templateUrl:"Scripts/app/templates/dialogs/AddNewHospital.html",controller:"AddNewHospitalController",size:"lg",resolve:{hospitalId:function(){return i}}});r.result.then(function(){t.dtInstance.rerender()},function(){u.info("Modal dismissed at: "+new Date)})}var y=s.$q.defer(),p=s.$q.defer();t.dtInstance={};w(["Scripts/app/templates/dialogs/AddNewHospital.html"],c,s,e,a,v);t.openAdd=g;t.openEdit=nt;$.fn.dataTable.ext.order["dom-isactive"]=function(n,t){return this.api().column(t,{order:"index"}).nodes().map(function(n){return $("i",n).hasClass("text-success")?"1":"0"})};t.$on(h.events.controllerActivateSuccess,function(i,u){if(u.controllerId===n){var f=[v.newColumn("name").withTitle("Name").withOption("width","30%"),v.newColumn("suburb").withTitle("Suburb").withOption("width","30%"),v.newColumn("state").withTitle("State"),v.newColumn("isActive").withTitle("Active").renderWith(function(n){return n?'<i class="fa fa-check-circle text-success"><\/i>':'<i class="fa fa-times-circle text-danger"><\/i>'}).withOption("orderDataType","dom-isactive"),v.newColumn("id").withTitle("Edit").renderWith(function(n){return'<span ng-click="openEdit($event, '+n+')"><i class="fa fa-pencil-square-o text-info  clickable-icon"><\/i><\/span>'}).notSortable()];y.resolve(f);p.resolve(a.fromFnPromise(function(){return k()}).withPaginationType("full_numbers").withOption("createdRow",d).withOption("fnRowCallback",function(n){var i=$("td",n),u=$("span",i);u.unbind("click");r(angular.element(n).contents())(t)}))}})}var n="HospitalAdminController";angular.module(clientConstants.appName).controller(n,["$scope","$filter","$compile","$log","$location","$templateCache","$routeParams","common","config","dataContext","$uibModal","DTOptionsBuilder","DTColumnBuilder",t])}(),function(){"use strict";function t(t,i,r,u,f,e){function s(r){r?i.activateController([l(r)],n).then(function(){}):i.activateController([o()],n).then(function(){t.editModel.hospital.name="";t.editModel.hospital.state="";t.editModel.hospital.suburb="";t.editModel.hospital.postCode="";t.editModel.hospital.id=-1;t.editModel.hospital.isActive=!0;t.editModel.hospital.street=""})}function h(n){if(t.operationDone=!1,n.preventDefault(),alerts.clearAlerts(),i.lightUpInvalidModelForm(t.addHospitalForm)){t.editModel.hospital.trackingState=clientConstants.trackingState.added;var r={hospital:t.editModel.hospital};f.addHospital(r).then(function(n){t.operationDone=!0;t.operationSucceeded=!0;u.close();i.alertsService.success(n.data.msg)},function(n){var r,u;t.operationDone=!0;t.operationSucceeded=!1;i.lightUpInvalidModelForm(t.addHospitalForm);r=n.data;bqa.existy(r)&&(r.errorMessages?(alerts.error(r.errorMessage),t.message=r.errorMessage):(u=Object.keys(r),u.forEach(function(n){r[n].Errors&&r[n].Errors.length>0?n!==""&&n!=="Custom"?($('*[name="'+n+'"]').closest("div").addClass("has-error"),alerts.error(r[n].Errors[0][clientConstants.errorMessage]),t.message+=r[n].Errors[0][clientConstants.errorMessage]):r[n].Errors.forEach(function(n){alerts.error("Operation failed. "+n[clientConstants.errorMessage]);t.message+=n[clientConstants.errorMessage]}):n!==""&&$('*[name="'+n+'"]').removeClass("has-error")})))})}}function c(n){t.operationDone=!1;n.preventDefault();alerts.clearAlerts();t.editModel.hospital.trackingState=clientConstants.trackingState.modified;var r={hospital:t.editModel.hospital};f.updateHospital(r).then(function(n){t.operationDone=!0;t.operationSucceeded=!0;u.close();i.alertsService.success(n.data.msg)},function(n){var r,u;t.operationDone=!0;t.operationSucceeded=!1;i.lightUpInvalidModelForm(t.addHospitalForm);r=n.data;bqa.existy(r)&&(r.errorMessages?(alerts.error(r.errorMessage),t.message=r.errorMessage):(u=Object.keys(r),u.forEach(function(n){r[n].Errors&&r[n].Errors.length>0?n!==""&&n!=="Custom"?($('*[name="'+n+'"]').closest("div").addClass("has-error"),alerts.error(r[n].Errors[0][clientConstants.errorMessage]),t.message+=r[n].Errors[0][clientConstants.errorMessage]):r[n].Errors.forEach(function(n){alerts.error("Operation failed. "+n[clientConstants.errorMessage]);t.message+=n[clientConstants.errorMessage]}):n!==""&&$('*[name="'+n+'"]').removeClass("has-error")})))})}function o(){var n=f.getStatesSelectList();t.editModel.hospital.angularSelectWithStringKey=n}function l(n){return f.getHospitalForAdmin(n).then(function(n){t.editModel.hospital=n.data;o()},function(n){i.alertsService.error(n.data.errorMessage)})}function a(){t.operationDone=!1;u.dismiss("cancel")}function v(){t.operationDone=!1;u.close()}function y(n){n.inProgress=!1;n.editModel={};n.editModel.hospital={};n.cancel=a;n.add=h;n.edit=c;n.close=v;n.operationDone=!1;n.operationSucceeded=!1;n.message="";n.mode=e?clientConstants.crudMode.edit:clientConstants.crudMode.add}y(t);s(e)}var n="AddNewHospitalController";angular.module(clientConstants.appName).controller(n,["$scope","common","config","$uibModalInstance","dataContext","hospitalId",t])}(),function(){"use strict";function i(i,r,u,f,e,o,s,h,c,l,a){function p(t){bqa.existy(t)&&u.activateController([g(t)],n).then(function(){it(clientConstants.spinners.episodeSpinner)})}function w(n,t,r){n.preventDefault();i.selected=n.currentTarget.name;f.close({breastDataId:t,patientId:i.patientId,operation:i.operation,type:r})}function b(n,r){if(n.length>0){var u=null;u=n.length===1?y("Deleting this Episode will delete the entire patient record. Are you sure you want to delete this episode?"):y("Deleted Episodes are not recoverable. Are you sure you want to delete this episode?");nt(u).then(function(n){n.buttonName===t&&v(r,i.patientId)})}}function v(n,t){o.deletePatientEpisode(n,t);f.close({operation:clientConstants.crudMode.delete})}function k(n){n.preventDefault();i.selected=n.currentTarget.name;f.close({patientId:i.patientId,type:i.selected,operation:i.operation})}function d(){f.dismiss("cancel")}function g(n){var t=l.getDaterange(),r,u;return bqa.existy(t.startDate)&&(r=dateHelpers.formatDateForSave(t.startDate)),bqa.existy(t.endDate)&&(u=dateHelpers.formatDateForSave(t.endDate)),o.getEpisodesOfPatient(n,t.startDate&&r,t.endDate&&u).then(function(n){i.episodes=n.data})}function nt(n){var t=e.open({animation:!0,templateUrl:"Scripts/app/templates/dialogs/AlertDialog.html",controller:"AlertDialogController",size:"lg",resolve:{dialogOptions:n}});return t.result}function y(n){return function(){return{title:"Delete Episode",message:n,okButton:"Yes",cancelButton:"No"}}}function tt(n){n.busyMessage=clientConstants.spinners.busyMessage;n.isBusy=!0;n.spinneractive=!0;n.mySpinnerOptions={radius:10,rotate:0,scale:1,shadow:!0,lines:10,length:8,width:4,speed:1,corners:1,trail:60,opacity:.25,color:clientConstants.spinners.colour};r.$on(clientConstants.spinners.spin,function(){n.spinneractive=!0});r.$on(clientConstants.spinners.stop,function(){n.spinneractive=!1})}function it(n){i.spinneractive&&a.stop(n)}tt(i);h===clientConstants.crudMode.edit&&p(s);i.existy=bqa.existy;i.operation=h;i.patientId=s;i.patientIdForView=c;i.cancel=d;i.select=k;i.deleteEpisode=v;i.goToEpisode=w;i.canDeleteEpisode=b}var n="AddNewEpisodeController",t="ok";angular.module(clientConstants.appName).controller(n,["$scope","$rootScope","common","$uibModalInstance","$uibModal","dataContext","patientId","operationType","patientIdForView","summaryDaterangeService","usSpinnerService",i])}(),function(){"use strict";function t(t,i,r,u,f,e,o){function s(t,i,r){t.activateController([a(i,r)],n)}function h(n){n.preventDefault();t.selected=n.currentTarget.name;r.close({type:t.selected})}function c(n,t,i){n.preventDefault();r.close({type:t,patientId:i.id,surgeonId:i.surgeonId})}function l(){r.dismiss("cancel")}function a(n,t){var i=dateHelpers.formatDateForSave(n.dob);return u.getPotentialDuplicatePatients(f,i,t).then(function(t){n.duplicatePatients=t.data},function(){})}t.existy=bqa.existy;t.cancel=l;t.select=h;t.addNewEpisode=c;t.dob=e;s(i,t,o)}var n="AddNewPatientController";angular.module(clientConstants.appName).controller(n,["$scope","common","$uibModalInstance","dataContext","patientName","dob","selectedSurgeonId",t])}(),function(){"use strict";function t(t,i,r,u,f,e,o,s,h){function v(t,i){f.activateController([b(h,s,t,i),y()],n).then(function(){u.log("My details View Activated")})}function y(){return o.getMyDetailsModel().then(function(n){if(t.isSurgeon=n.data.userIsSurgeon,t.isSurgeon)return t.model=n.data.payload.userPersonalDetails,t.editModel=angular.copy(n.data.payload.userPersonalDetails),c.resolve(n.data.payload.userDataManagers);t.model=n.data.payload;t.editModel=n.data.payload},function(){})}function p(n){n.preventDefault();t.inProgress=!0;t.model=angular.copy(t.editModel);f.alertsService.clearAlerts();t.isSurgeon?o.setUpdatesSurgeonUserDetails(t.model).then(function(n){if(f.alertsService.success("Operation Succeeded!"),t.isSurgeon)return t.model=n.data.payload.userPersonalDetails,t.editModel=angular.copy(n.data.payload.userPersonalDetails),c.resolve(n.data.payload.userDataManagers);t.model=n.data.payload;t.editModel=n.data.payload},function(){f.alertsService.error("Operation failed")}).then(function(){t.inProgress=!1}):o.setUpdatedBqaUserDetails(t.model).then(function(n){if(f.alertsService.success("Operation Succeeded!"),t.isSurgeon)return t.model=n.data.payload.userPersonalDetails,t.editModel=angular.copy(n.data.payload.userPersonalDetails),c.resolve(n.data.payload.userDataManagers);t.model=n.data.payload;t.editModel=n.data.payload},function(){f.alertsService.error("Operation failed")}).then(function(){t.inProgress=!1})}function w(n){n.preventDefault();t.editModel=angular.copy(t.model)}function b(n,t,i){i.dtColumns=l.promise;i.dtOptions=t.fromFnPromise(function(){return c.promise}).withOption("bFilter",!1).withOption("bLengthChange",!1).withOption("bPaginate",!1).withOption("bInfo",!1)}function k(n,t,i){return i.dataManager.givenName+" "+i.dataManager.surname}function a(n){return n?i("bqaMomentFormat")(n,clientConstants.dateFormats.outFormat):n}t.model={};t.editModel={};t.submit=p;t.cancel=w;var l=f.$q.defer(),c=f.$q.defer();v(t,i);t.$on(e.events.controllerActivateSuccess,function(t,i){i.controllerId===n&&l.resolve([h.newColumn("dateAdded").withTitle("Date Added").notSortable().renderWith(a),h.newColumn("dataManager.givenName").withTitle("Data Manager's Name").renderWith(k).notSortable(),h.newColumn("hospital.hospitalName").withTitle("Hospital").notSortable(),h.newColumn("dateRescinded").withTitle("Date Rescinded").notSortable().renderWith(a)])})}var n="MyUserDetailsController";angular.module(clientConstants.appName).controller(n,["$scope","$filter","$compile","$log","common","config","dataContext","DTOptionsBuilder","DTColumnBuilder",t])}(),function(){"use strict";function t(t,i,r,u,f,e,o,s,h,c,l,a){function y(r,f,e,o,s,h){e.activateController([w(s,h,t),e.prefetchTemplates(o,r,f)],n).then(function(){u.log("User Admin View Activated");t.dtColumnsDeferred.resolve([s.newColumn("surname").withTitle("Surname"),s.newColumn("givenName").withTitle("Given Name"),s.newColumn("username").withTitle("User Name"),s.newColumn("active").withTitle("Active").renderWith(function(n){return i("boolToSymbol")(n)}),s.newColumn("id").withTitle("Edit").renderWith(function(n){return'<span ng-click="openEdit('+n+')"><i class="fa fa-pencil-square-o text-info clickable-icon"><a href="'+n+'"><\/a><\/i><\/span>'})]);t.dtOptionsDeferred.resolve(h.fromFnPromise(function(){return p()}).withPaginationType("full_numbers").withOption("createdRow",b))})}function p(){return h.getSurgeonsList().then(function(n){var i=n.data.surgeonAdminViewModel;return t.loggedIn=o.displayUser(i.loggedInUser),i.surgeonDtos},function(n){o.alertsService.error(n.data.errorMessage)})}function w(n,t,i){i.dtColumns=i.dtColumnsDeferred.promise;i.dtOptions=i.dtOptionsDeferred.promise}function b(n){r(angular.element(n).contents())(t)}function k(){var n=c.open({animation:!0,templateUrl:"Scripts/app/templates/dialogs/AddNewSurgeon.html",controller:"AddNewSurgeonController",size:"lg",resolve:{surgeonId:function(){return 0}}});n.result.then(function(){t.dtInstance.rerender()},function(){u.info("Modal dismissed at: "+new Date)})}function d(n){var i=c.open({animation:!0,templateUrl:"Scripts/app/templates/dialogs/AddNewSurgeon.html",controller:"AddNewSurgeonController",size:"lg",resolve:{surgeonId:function(){return n}}});i.result.then(function(){t.dtInstance.rerender()},function(){u.info("Modal dismissed at: "+new Date)})}var v=["Scripts/app/templates/dialogs/AddNewSurgeon.html"];t.templatesToGet=v;t.dtColumnsDeferred=o.$q.defer();t.dtOptionsDeferred=o.$q.defer();t.dtInstance={};y(v,h,o,e,a,l);t.openAdd=k;t.openEdit=d}var n="UserAdminController";angular.module(clientConstants.appName).controller(n,["$scope","$filter","$compile","$log","$location","$templateCache","common","config","dataContext","$uibModal","DTOptionsBuilder","DTColumnBuilder",t])}(),function(){"use strict";function t(n,t,i,r){function f(n){n.editModel={};n.cancel=o;n.add=e;n.close=u;n.operationDone=!1;n.operationSucceeded=!1;n.inProgress=!1;n.message=""}function e(i){i.preventDefault();n.operationDone=!1;n.inProgress=!0;var f=angular.copy(n.editModel);f.bqaClaimTypesSelectList=null;f.claimTypes=null;t.addClaim(f).then(function(t){n.operationSucceeded=!0;n.message=t.data.msg;n.editModel=t.data;n.editModel.userId=r},function(){n.operationSucceeded=!1;n.message=clientConstants.invalidFormInputMessage}).then(function(){n.inProgress=!1;n.operationDone=!0;n.operationSucceeded&&u()})}function u(){n.operationDone=!1;i.close()}function o(){n.operationDone=!1;i.dismiss("cancel")}t.getAddClaimsViewData().then(function(t){n.editModel=t.data;n.editModel.userId=r},function(){});f(n)}var n=angular.module(clientConstants.uaAppName);n.controller("AddClaimController",["$scope","dataContextUserAdmin","$uibModalInstance","userId",t])}(),function(){"use strict";function r(i,r,u,f,e,o,s,h,c){function a(n,t,i){v(n,t,i)}function v(n,t,i){t.forEach(function(t){n.get(t)||i.getTemplate(t).then(function(i){n.put(t,i.data)})})}function y(n){var t=h.open({animation:!0,templateUrl:l[0],controller:"AddClaimController",resolve:{userId:function(){return n}},size:"med"});return t.result.then(function(){},function(){$log.info("Modal dismissed at: "+new Date)}),!0}function p(n,t,r){n.preventDefault();i.message=t+" - "+r;i.userid=t;i.msgVisible=!0;i.claimsGridVisible=!0;c.getClaimsForUser(t).then(function(n){i.claims=n.data;i.dtInstance.changeData(n.data)},function(){})}var l=["Scripts/app/templates/dialogs/AddNewClaim.html"];i.claims={};i.dtInstance={};i.claimsGridVisible=!1;i.msgVisible=!1;i.editClaimsVisible=!1;i.openAddClaim=y;i.showUserClaims=p;a(e,l,c);n(s,o,i,u,f);t(o,i)}var i=angular.module(clientConstants.uaAppName),n,t;i.controller("AdministrationController",["$scope","$location","$http","$compile","$templateCache","DTOptionsBuilder","DTColumnBuilder","$uibModal","dataContextUserAdmin",r]);n=function(n,t,i,r,u){i.dtColumns=[n.newColumn("id").withTitle("UserID").notVisible(),n.newColumn("userName").withTitle("Username"),n.newColumn("email").withTitle("Email").renderWith(function(n,t,i){return'<span class="clickable-icon" title="Show Claims"><a href="#" ng-click="showUserClaims($event, \''+i.id+"','"+i.userName+"')\">"+n+"<\/a><\/span>"}),n.newColumn("id").withTitle("Add Claim").renderWith(function(n){return"<span ng-click=\"openAddClaim('"+n+'\')" class="fa fa-plus-circle text-success clickable-icon" title="Add Claim"><i><\/i><\/span>'})];i.dtOptions=t.fromSource("/useraccount/admin/GetUsers").withPaginationType("full_numbers").withOption("fnRowCallback",function(n){$("span",$("td",n)).unbind("click");u(angular.element(n).contents())(i)})};t=function(n,t){t.dtOptionsChild=n.newOptions().withDisplayLength(10).withPaginationType("full_numbers")}}(),function(){"use strict";function t(t,i,r,u){function f(){i.activateController([e()],n).then(function(){})}function e(){return u.getSummaryForDataManager().then(function(n){t.dataManagerSummaryDtos=n.data;t.dataManagerSummaryDtos.length>0&&(t.currentYear=t.dataManagerSummaryDtos[0].currentYear,t.currentYearMinus1=t.dataManagerSummaryDtos[0].currentYearMinus1,t.currentYearMinus2=t.dataManagerSummaryDtos[0].currentYearMinus2)},function(n){i.alertsService.error(n.data.errorMessage)})}f()}var n="DataManagerSummaryController";angular.module(clientConstants.appName).controller(n,["$scope","common","config","dataContext",t])}(),function(){"use strict";function f(f,e,o,s,h,c,l,a,v,y,p,w,b){function ni(t,i,r,u,f,o,h){var c=w.getNewPatientDetails();c.userIsDataManager?(e.dmHospitalsSelectList={},e.dmHospitalsSelectList.values=[],u.activateController([ct(f,o,h),ti(),u.prefetchTemplates(r,t,i)],n).then(function(){s.log("PatientSmallDataSet View Activated");e.userIsDataManager&&e.editModel.breastData.episode.patient.surgeon.id&&lt(e.editModel.breastData.episode.patient.surgeon.id)})):u.activateController([ct(f,o,h),u.prefetchTemplates(r,t,i)],n).then(function(){s.log("PatientSmallDataSet View Activated")})}function ti(){return y.getDataForDataManager().then(function(n){e.dataManagerSurgeonsSelectList=n.data.dataManagerSurgeonsSelectList;e.surgeonHospitalsViewModels=n.data.surgeonHospitalsViewModels},function(){})}function ct(n,r,u){return y.getMinimumDataSetData(n,r,u).then(function(n){t=!1;e.model=n.data;gt(e);e.editModel=angular.copy(n.data);var r=w.getNewPatientDetails();e.userIsDataManager=r.userIsDataManager;e.userIsSurgeonOnly=r.userIsSurgeonOnly;parseInt(e.patientId)===0?(e.editModel.breastData.episode.patient.name=r.name,e.dob=r.dob):e.dob=dateHelpers.processDate(e.editModel.breastData.episode.patient.dob);e.diagnosisDate=dateHelpers.processDate(n.data.breastData.diagnosisDate);ht(e.editModel.breastData.noSurgery,e.editModel.breastData.noAxillarySurgery);ft(e.editModel.breastData.episode.breastSurgeries);nt(e.editModel.breastData.invasiveInsitu);ut(e.editModel.breastData.menopausalStatus);st();e.refusalsMulti.treatmentRefusals=_.map(e.editModel.treatmentRefusalMultiSelect.treatmentRefusals,function(n){return n.name});e.refusalsMulti.selected=_.map(e.editModel.breastData.treatmentRefusals,function(n){return n.name});e.surgeryDatesForm=$('ng-form[name="surgeryDatesForm"]').data(i);e.axillarySurgeryDatesForm=$('ng-form[name="axillarySurgeryDatesForm"]').data(i)},function(){})}function ii(n){if(n.preventDefault(),a.alertsService.clearAlerts(),!k(e.addMinDataSetForm)|!k(e.surgeryDatesForm)|!k(e.axillarySurgeryDatesForm))return a.$q.reject("Validation Failed");var t=p.getSmallDataSetCompletenessFields(e);return kt(t)}function lt(n){var t=_.find(e.surgeonHospitalsViewModels,function(t){return t.surgeonId===n});bqa.existy(t)&&(e.dmHospitalsSelectList=t.hospitalSelectList)}function k(n,t){var i=[],u,r;if(n.$name==="addMinDataSetForm")for(e.editModel.breastData.episode.patient.gender==="NoneYet"?(e.addMinDataSetForm.gender.$setValidity("required",!1),e.addMinDataSetForm.gender.$setTouched()):e.addMinDataSetForm.gender.$setValidity("required",!0),bqa.existy(e.indigenousStatusRadio)?e.addMinDataSetForm.indigenousRadio.$setValidity("required",!0):(e.addMinDataSetForm.indigenousRadio.$setValidity("required",!1),e.addMinDataSetForm.indigenousRadio.$setTouched()),n.$invalid&&angular.forEach(n.$error,function(n){angular.forEach(n,function(n){var t,r;if(n!=null&&n.$setTouched!=null&&(n.$setTouched(),t=a.getFieldValidationRules(n),bqa.existy(t)))for(r=0;r<t.length;r++)$.inArray(t[r],i)===-1&&i.push(t[r])})}),a.getDataErrors(i,t),r=0;r<i.length;r++)a.displayValidationError(i[r]);else for(u=[],n.$invalid&&angular.forEach(n.$error,function(n){angular.forEach(n,function(n){n!=null&&n.$setTouched!=null&&(n.$setTouched(),u[n.$name]||(u[n.$name]=!0,i.push(n.$viewValue+" is not a valid date.")))})}),r=0;r<i.length;r++)a.displayValidationError(i[r]);return i.length===0}function g(){return et()>0&&(e.checkboxBindables.noSurgery=!1),ot()>0&&(e.checkboxBindables.noAuxSurgery=!1),oi(),wi(),bi(),e.editModel.breastData.treatmentRefusals=ki(e),e.model=angular.copy(e.editModel),e.showIndigenousOrigin||(e.model.breastData.episode.patient.indigenousStatusId=e.indigenousStatusRadio),yi(),pi(),y.saveMinimumdataSet(e.model).then(function(n){e.model=n.data;gt(e);e.editModel=angular.copy(n.data);e.dob=dateHelpers.processDate(n.data.breastData.episode.patient.dob);e.diagnosisDate=dateHelpers.processDate(n.data.breastData.diagnosisDate);ht(e.editModel.breastData.noSurgery,e.editModel.breastData.noAxillarySurgery);ft(e.editModel.breastData.episode.breastSurgeries);nt(e.editModel.breastData.invasiveInsitu);ut(e.editModel.breastData.menopausalStatus);st();e.refusalsMulti.treatmentRefusals=_.map(e.editModel.treatmentRefusalMultiSelect.treatmentRefusals,function(n){return n.name});e.refusalsMulti.selected=_.map(e.editModel.breastData.treatmentRefusals,function(n){return n.name});e.breastDataId=n.data.breastData.id;e.patientId=n.data.breastData.episode.patient.id;dt()},function(n){dt();var t=n.data;if(t.errorMessages)alerts.error(t.errorMessage);else if(!k(e.addMinDataSetForm,t)|!k(e.surgeryDatesForm)|!k(e.axillarySurgeryDatesForm))return a.$q.reject("Validation Failed");return a.$q.reject("Save Failed")})}function at(n){bt(clientConstants.closeWithoutSaving.title,clientConstants.closeWithoutSaving.message,"OK","Cancel").then(function(t){t.buttonName==="ok"&&rt(n)},function(){s.info("Modal dismissed at: "+new Date)})}function rt(n){t=!0;n?l.url("/"+n):l.url("/patients")}function vt(n){return g().then(function(){rt(n)},function(n){return a.$q.reject(n)})}function ri(n){n.editModel={};n.checkboxBindables={};n.refusalsMulti={};ei(n);n.submit=ii;n.cancel=ai;n.close=rt;n.changeGestationStatus=ut;n.showInvasiveInsitu=nt;n.findMessage=ui;n.noSurgeryChecked=pt;n.noAxillarySurgeryChecked=wt;n.validateIndigenousOrigin=yt;n.noSurgeryOptionDisabled=et;n.noAxillarySurgeryOptionDisabled=ot;n.goToFullDataSet=ci;n.validateGestationalStatus=hi;n.closeWithoutSaving=at;n.selectSurgeon=lt;n.indigenousStatusRadio=undefined;n.showIndigenousOrigin=!1;n.showGestationalStatus=!1;n.showInvasivePanel=!1;n.showInsituPanel=!1;n.startDate=moment(clientConstants.startDate,clientConstants.dateFormats.inFormat).startOf(dateHelpers.day);n.endDateDob=dateHelpers.subtractYears(new Date,15).endOf(dateHelpers.day);n.endDateToday=moment(new Date).endOf(dateHelpers.day);vi()}function ui(n){if(bqa.existy(e.editModel.helpMessages)){var t=_.find(e.editModel.helpMessages,function(t){return t.helpColumnName.toUpperCase()===n.toUpperCase()});return t?t.message:""}return""}function nt(n){bqa.existy(n)?(angular.isNumber(n)&&(n=n.toString()),e.showInvasivePanel=n==="1",e.showInsituPanel=!e.showInvasivePanel):e.showInvasivePanel=e.showInsituPanel=!1}function ut(n){angular.isNumber(n)&&(n=fi(n));bqa.existy(n)&&(n=n.toUpperCase());e.showGestationalStatus=n==="PRE"||n==="PERI"?!0:!1;(n==="MALE"||n==="POST")&&(e.editModel.breastData.gestationalStatus=null)}function fi(n){var t=e.editModel.breastDataLookupMenopausalStatuses,i;if(t&&t.length>0)for(i=0;i<t.length;i++)if(t[i].value===n)return t[i].id;return""}function ei(n){var t=new Date,r=t.getFullYear(),i=(r+clientConstants.minimumYear)/2-40;i=Math.ceil(i);var f=moment(clientConstants.janFirst+r,clientConstants.dateFormats.outFormat).toDate(),e=moment(clientConstants.janFirst+i,clientConstants.dateFormats.outFormat).toDate(),u=moment(clientConstants.janFirst+clientConstants.nineteenHundred,clientConstants.dateFormats.outFormat).toDate();n.format=clientConstants.dateFormats.uiBtstpFormatAlt;n.altInputFormats=[clientConstants.dateFormats.altFormat];n.dateOptions={maxDate:t,minDate:u,startingDay:1,datepickerMode:clientConstants.datepickerMode,showWeeks:!1,initDate:f};n.dobDateOptions={maxDate:t,minDate:u,startingDay:1,datepickerMode:clientConstants.datepickerMode,showWeeks:!1,initDate:e};n.dobPopup={opened:!1};n.openDobPopup=function(){n.dobPopup.opened=!0};n.diagnosisDatePopup={opened:!1};n.openDiagnosisDatePopup=function(){n.diagnosisDatePopup.opened=!0};n.openBiopsyDatePopup={opened:!1};n.openOpenBiopsyDatePopup=function(){n.openBiopsyDatePopup.opened=!0};d(n,"openBiopsyDate","surgeryForOpenBiopsy");n.cleDatePopup={opened:!1};n.openCleDatePopup=function(){n.cleDatePopup.opened=!0};d(n,"cleDate","surgeryForCLE");n.reExcisionDatePopup={opened:!1};n.openReExcisionDatePopup=function(){n.reExcisionDatePopup.opened=!0};d(n,"reExcisionDate","surgeryForReExcision");n.totalMastectomyDatePopup={opened:!1};n.openTotalMastectomyDatePopup=function(){n.totalMastectomyDatePopup.opened=!0};d(n,"totalMastectomyDate","surgeryForTotalMastectomy");n.reconstructionDatePopup={opened:!1};n.openReconstructionDatePopup=function(){n.reconstructionDatePopup.opened=!0};d(n,"reconstructionDate","surgeryForReconstructionDate");n.sentinelNodePopup={opened:!1};n.openSentinelNodePopup=function(){n.sentinelNodePopup.opened=!0};d(n,"sentinelNodeDate","surgeryForSentinelNode");n.level1Popup={opened:!1};n.openLevel1Popup=function(){n.level1Popup.opened=!0};d(n,"level1Date","surgeryForLevel1Date");n.level2Popup={opened:!1};n.openLevel2Popup=function(){n.level2Popup.opened=!0};d(n,"level2Date","surgeryForLevel2Date");n.level3Popup={opened:!1};n.openLevel3Popup=function(){n.level3Popup.opened=!0};d(n,"level3Date","surgeryForLevel3Date")}function ft(n){for(var y,p,l,i=[],r=[],u=[],f=[],a=[],o=[],s=[],h=[],c=[],t,v=0;v<n.length;v++)t=n[v],t.surgeryType===1?i.push(t):t.surgeryType===2?r.push(t):t.surgeryType===3?u.push(t):t.surgeryType===4?f.push(t):t.surgeryType===5?a.push(t):t.axilla===1?o.push(t):t.axilla===2?s.push(t):t.axilla===3?h.push(t):t.axilla===4&&c.push(t);for(y=!1,p=!1,l=0;l<n.length;l++)t=n[l],!y&&t.surgeryType>0&&t.surgeryType<=5&&(e.checkboxBindables.noSurgery=!1,y=!0),t.surgeryType===1&&i.length>0?(e.surgeryForOpenBiopsy=i[0],e.openBiopsyDate=dateHelpers.processDate(t.surgeryDate),i.length=0):t.surgeryType===2&&r.length>0?(e.surgeryForCLE=r[0],e.cleDate=dateHelpers.processDate(t.surgeryDate),r.length=0):t.surgeryType===3&&u.length>0?(e.surgeryForReExcision=u[0],e.reExcisionDate=dateHelpers.processDate(t.surgeryDate),u.length=0):t.surgeryType===4&&f.length>0?(e.surgeryForTotalMastectomy=f[0],e.totalMastectomyDate=dateHelpers.processDate(t.surgeryDate),f.length=0):t.surgeryType===5&&a.length>0?(e.surgeryForReconstructionDate=t,e.reconstructionDate=dateHelpers.processDate(t.surgeryDate),a.length=0):t.surgeryType===6?e.otherDate=dateHelpers.processDate(t.surgeryDate):t.surgeryType===7?e.abbiDate=dateHelpers.processDate(t.surgeryDate):t.surgeryType===99&&(t.axilla===1&&o.length>0?(e.surgeryForSentinelNode=o[0],e.sentinelNodeDate=dateHelpers.processDate(t.surgeryDate),o.length=0):t.axilla===2&&s.length>0?(e.surgeryForLevel1Date=s[0],e.level1Date=dateHelpers.processDate(t.surgeryDate),s.length=0):t.axilla===3&&h.length>0?(e.surgeryForLevel2Date=h[0],e.level2Date=dateHelpers.processDate(t.surgeryDate),h.length=0):t.axilla===4&&c.length>0?(e.surgeryForLevel3Date=c[0],e.level3Date=dateHelpers.processDate(t.surgeryDate),c.length=0):t.axilla===9&&(e.unknownDate=dateHelpers.processDate(t.surgeryDate)),p||t.axilla===8||(e.checkboxBindables.noAuxSurgery=!1,p=!0))}function oi(){var t=e.checkboxBindables,n,i,r;for(n in t)!t.hasOwnProperty(n)||n==="noSurgery"||n==="noAuxSurgery"||(i=n.substringUntil(u),r=t[n],e.editModel.breastData[i]=r?1:2)}function d(n,t,i){n.$watch(t,function(r){var u,f;n.editModel.breastData&&(n[i]?bqa.existy(r)&&(u=n[i],u.surgeryDate=r,f=n.editModel.breastData.episode.breastSurgeries.indexOf(u),bqa.existy(u.enteredBy)&&(u.trackingState=clientConstants.trackingState.modified)):bqa.existy(r)&&(u=si(n,t,r,i)))})}function si(n,t,i,r){var u={};t==="openBiopsyDate"?(u.axilla=null,u.surgeryType=1):t==="cleDate"?(u.axilla=null,u.surgeryType=2):t==="reExcisionDate"?(u.axilla=null,u.surgeryType=3):t==="totalMastectomyDate"?(u.axilla=null,u.surgeryType=4):t==="reconstructionDate"?(u.axilla=null,u.surgeryType=5):t==="sentinelNodeDate"?(u.axilla=1,u.surgeryType=99):t==="level1Date"?(u.axilla=2,u.surgeryType=99):t==="level2Date"?(u.axilla=3,u.surgeryType=99):t==="level3Date"&&(u.axilla=4,u.surgeryType=99);u.surgeryDate=i;u.trackingState=clientConstants.trackingState.added;u.revisionID=clientConstants.initRevisionId;u.epiId=n.editModel.breastData.episode.id;n[r]=u;n.editModel.breastData.episode.breastSurgeries.push(n[r])}function yt(n,t){bqa.existy(e.indigenousStatusRadio)&&tt(e.addMinDataSetForm.indigenousRadio);n!==0?(tt(e.addMinDataSetForm.indigenousStatus),e.editModel.breastData.episode.patient.indigenousStatusId=n,e.showIndigenousOrigin=!1):(bqa.existy(t)&&t||(e.editModel.breastData.episode.patient.indigenousStatusId=undefined),e.showIndigenousOrigin=!0)}function hi(){var n=e.editModel.breastData.menopausalStatus;if(n&&(n===4||n===3))return!e.editModel.breastData.gestationalStatus}function pt(n){n?(e.openBiopsyDate=undefined,e.cleDate=undefined,e.reExcisionDate=undefined,e.totalMastectomyDate=undefined,e.reconstructionDate=undefined,e.surgeryPickersDisabled=!0,tt(e.addMinDataSetForm.surgeryDatesForm)):e.surgeryPickersDisabled=!1}function wt(n){n?(e.sentinelNodeDate=undefined,e.level1Date=undefined,e.level2Date=undefined,e.level3Date=undefined,e.axSurgeryPickersDisabled=!0,tt(e.addMinDataSetForm.axillarySurgeryDatesForm)):e.axSurgeryPickersDisabled=!1}function tt(n){n.$setPristine();n.$setUntouched()}function et(){if(e.editModel.breastData){var n=_.filter(e.editModel.breastData.episode.breastSurgeries,function(n){return n.surgeryType<99});return n.length>0}return!1}function ot(){if(e.editModel.breastData){var n=_.filter(e.editModel.breastData.episode.breastSurgeries,function(n){return n.surgeryType===99});return n.length>0}return!1}function bt(n,t,i,r,u){var f=c.open({animation:!0,templateUrl:"Scripts/app/templates/dialogs/AlertDialog.html",controller:"AlertDialogController",size:"lg",resolve:{dialogOptions:function(){return{title:n,message:t,okButton:i,cancelButton:r,closeButton:u}}}});return f.result}function ci(n){if(n.preventDefault(),a.alertsService.clearAlerts(),!k(e.addMinDataSetForm)|!k(e.surgeryDatesForm)|!k(e.axillarySurgeryDatesForm))return!1;g().then(function(){l.url("/"+r+"?patientId="+e.editModel.breastData.episode.patient.id+"&breastDataId="+e.editModel.breastData.id+"&surgeonId="+e.surgeonId)},function(n){console.info(n)})}function it(n){e.editModel.breastData.episode.caseComplete=n}function li(n){n.patientId=o.patientId;n.breastDataId=o.breastDataId;n.surgeonId=o.surgeonId}function kt(n,t){if(n.length>0){it(!1);var i=p.formatCompletenessFieldsMessage(n,e.editModel.breastData.episode.patient.name,e.dob);return bt("Completeness Alert",i,"Save and Close","Save and Continue Editing").then(function(n){return n.buttonName==="ok"?(it(!1),vt(t).then(function(){},function(n){return a.$q.reject(n)})):n.buttonName==="cancel"?g():n.buttonName==="close"?at(t):void 0},function(){s.info("Modal dismissed at: "+new Date)})}return it(!0),vt().then(function(){},function(n){return a.$q.reject(n)})}function ai(n){if(n.preventDefault(),e.editModel=angular.copy(e.model),parseInt(e.patientId)===0){var t=w.getNewPatientDetails();e.editModel.breastData.episode.patient.name=t.name;e.dob=t.dob}else e.dob=dateHelpers.processDate(e.editModel.breastData.episode.patient.dob);e.diagnosisDate=dateHelpers.processDate(e.editModel.breastData.diagnosisDate);ht(e.editModel.breastData.noSurgery,e.editModel.breastData.noAxillarySurgery);ft(e.editModel.breastData.episode.breastSurgeries);nt(e.editModel.breastData.invasiveInsitu);st(!0);yt(e.indigenousStatusRadio,!0)}function vi(){e.busyMessage=clientConstants.spinners.busyMessage;e.isBusy=!0;e.spinneractive=!1;e.spinnerOptions={radius:42,rotate:0,scale:1,shadow:!0,lines:13,length:28,width:14,speed:1,corners:1,trail:60,opacity:.25,color:clientConstants.spinners.colour};f.$on(clientConstants.spinners.spin,function(){e.spinneractive=!0});f.$on(clientConstants.spinners.stop,function(){e.spinneractive=!1})}function yi(){e.spinneractive||b.spin(clientConstants.spinners.datasetSpinner)}function dt(){b.stop(clientConstants.spinners.datasetSpinner)}function st(n){var t;t=n?e.editModel.breastData.episode.patient.indigenousStatusId:e.model.breastData.episode.patient.indigenousStatusId;bqa.existy(t)?t===9?e.indigenousStatusRadio=9:t===1?e.indigenousStatusRadio=1:t===10?e.indigenousStatusRadio=null:t>1&&t<10&&(e.indigenousStatusRadio=0):e.addMinDataSetForm.indigenousStatusRadio=null;e.showIndigenousOrigin=bqa.existy(e.indigenousStatusRadio)&&e.indigenousStatusRadio===0}function pi(){delete e.model.adjuvantTherapyStatusRows;delete e.model.breastDataLookupMdtSelectList;delete e.model.breastDataLookupBrCareNurseSelectList;delete e.model.breastDataLookupGestationalStatusSelectList;delete e.model.breastDataLookupHistoGradeInsitusSelectList;delete e.model.breastDataLookupHistoGradeInvasivesSelectList;delete e.model.breastDataLookupReferralSourceSelectList;delete e.model.breastDataLookupTumourTypesSelectList;delete e.model.breastDataLookupVascularLymphInvasions;delete e.model.dataManagerSurgeonsSelectList;delete e.model.helpMessages;delete e.model.hospitalsSelectList;delete e.model.indigenousStatusList;delete e.model.insituAdjuvantTherapyStatusRows;delete e.model.necrosisSelectList;delete e.model.neoAdjuventRadioButtons;delete e.model.privatePublicSelectList;delete e.model.receptorStatuses;delete e.model.refusalOfTreatmentSelectList;delete e.model.breastDataLookupMenopausalStatuses;delete e.model.patientIdentifierForView;delete e.model.treatmentRefusalMultiSelect}function ht(n,t){bqa.existy(n)&&(e.checkboxBindables.noSurgery=n===1?!0:!1,pt(e.checkboxBindables.noSurgery));bqa.existy(t)&&(e.checkboxBindables.noAuxSurgery=t===1?!0:!1,wt(e.checkboxBindables.noAuxSurgery))}function wi(){var n=e.checkboxBindables,t=n.noSurgery,i=n.noAuxSurgery;bqa.existy(t)&&(e.editModel.breastData.noSurgery=t===!0?1:et()?0:null);bqa.existy(i)&&(e.editModel.breastData.noAxillarySurgery=i===!0?1:ot()?0:null)}function bi(){e.editModel.breastData.episode.patient.dob=dateHelpers.formatDateForSave(e.dob);e.editModel.breastData.diagnosisDate=dateHelpers.formatDateForSave(e.diagnosisDate);angular.forEach(e.editModel.breastData.episode.breastSurgeries,function(n){n.surgeryDate=dateHelpers.formatDateForSave(n.surgeryDate)})}function gt(n){n.model.notRecordedNeoAdjuventValuePresent===!1&&n.model.neoAdjuventRadioButtons.splice(2,1)}function ki(n){return _.each(n.editModel.breastData.treatmentRefusals,function(t){var i=_.find(n.refusalsMulti.selected,function(n){return t.name===n});i||(t.trackingState=clientConstants.trackingState.deleted)}),_.each(n.refusalsMulti.selected,function(t){var u=_.find(n.editModel.breastData.treatmentRefusals,function(n){return t===n.name}),i,r;u||(i=_.find(n.editModel.treatmentRefusalMultiSelect.treatmentRefusals,function(n){return n.name===t}),r={breastDataId:n.editModel.breastData.id,interventionChangeReasonId:i.interventionChangeReasonId,name:i.name,trackingState:clientConstants.trackingState.added},n.editModel.breastData.treatmentRefusals.push(r))}),n.editModel.breastData.treatmentRefusals}li(e);ri(e);ni(["Scripts/app/templates/dialogs/AlertDialog.html"],y,h,a,e.breastDataId,e.patientId,e.surgeonId);e.$on("$locationChangeStart",function(n,i){if(!t&&i.indexOf(r)===-1){var u=p.getSmallDataSetCompletenessFields(e);a.$broadcast(v.events.stopSpinner);u.length>0?(n.preventDefault(),kt(u,i.split("/").pop()).then(function(){},function(t){n.preventDefault();s.log(t)})):(it(!0),g())}})}var n="PatientSmallDataSetController",u="Chk",i="$formController",r="patientfulldataset",t=!1;angular.module(clientConstants.appName).controller(n,["$rootScope","$scope","$routeParams","$log","$templateCache","$uibModal","$location","common","config","dataContext","completenessRulesService","patientDataService","usSpinnerService",f])}(),function(){"use strict";function f(f,e,o,s,h,c,l,a,v,y,p,w,b,k){function si(n,i,r,u,f){var o=b.getNewPatientDetails();o.userIsDataManager?(e.dmHospitalsSelectList={},e.dmHospitalsSelectList.values=[],v.activateController([lt(n,i,r),hi(),v.prefetchTemplates(u,f,p)],t).then(function(){s.log("PatientFullDataSet View Activated");e.userIsDataManager&&e.editModel.breastData.episode.patient.surgeon.id&&ri(e.editModel.breastData.episode.patient.surgeon.id)})):v.activateController([lt(n,i,r),v.prefetchTemplates(u,f,p)],t).then(function(){s.log("PatientSmallDataSet View Activated")})}function lt(t,r,u){return p.getFullDataSetData(t,r,u).then(function(t){i=!1;e.model=t.data;oi(e);e.editModel=angular.copy(t.data);var r=b.getNewPatientDetails();e.userIsDataManager=r.userIsDataManager;e.userIsSurgeonOnly=r.userIsSurgeonOnly;parseInt(e.patientId)===0?(e.editModel.breastData.episode.patient.name=r.name,e.dob=r.dob):e.dob=dateHelpers.processDate(e.editModel.breastData.episode.patient.dob);e.diagnosisDate=dateHelpers.processDate(t.data.breastData.diagnosisDate);e.dateScintPerformed=dateHelpers.processDate(t.data.breastData.scintDate);rt(e.editModel.breastData.menopausalStatus);d(e.editModel.breastData.scintPerformed);et(e.editModel.breastData.noSurgery,e.editModel.breastData.noAxillarySurgery);it(e.editModel.breastData.invasiveInsitu);e.followUpsForDisplay=angular.copy(e.editModel.breastData.episode.breastFollowups);e.surgeriesForDisplay=angular.copy(e.editModel.breastData.episode.breastSurgeries);e.mdsProceduresForDisplay=angular.copy(e.editModel.breastData.episode.mdsProcedures);gt();e.patientDetailsForm=$('ng-form[name="patientDetailsForm"]').data(n);e.followupsForm=$('ng-form[name="followupsForm"]').data(n);e.proceduresForm=$('ng-form[name="proceduresForm"]').data(n);e.diagnosisForm=$('ng-form[name="diagnosisForm"]').data(n);e.pathologyForm=$('ng-form[name="pathologyForm"]').data(n);e.sentinelForm=$('ng-form[name="sentinelForm"]').data(n);ft();e.refusalsMulti.treatmentRefusals=_.map(e.editModel.treatmentRefusalMultiSelect.treatmentRefusals,function(n){return n.name});e.refusalsMulti.selected=_.map(e.editModel.breastData.treatmentRefusals,function(n){return n.name})},function(){})}function hi(){return p.getDataForDataManager().then(function(n){e.dataManagerSurgeonsSelectList=n.data.dataManagerSurgeonsSelectList;e.surgeonHospitalsViewModels=n.data.surgeonHospitalsViewModels},function(){})}function d(n,t){angular.isNumber(n)&&(n=n.toString());n==="2"?(t||(e.dateScintPerformed=undefined,e.editModel.breastData.scintNone=null,document.getElementById("dateScintPerformed").disabled=!0,document.getElementById("scintNone").disabled=!0),e.editModel.breastData.scintLowerAxilla=null,e.editModel.breastData.scintUpperAxilla=null,e.editModel.breastData.scintSupraClavicular=null,e.editModel.breastData.scintInternalMammmary=null,e.editModel.breastData.scintTotal=null,document.getElementById("scintLowerAxilla").disabled=!0,document.getElementById("scintUpperAxilla").disabled=!0,document.getElementById("scintSupraClavicular").disabled=!0,document.getElementById("scintInternalMammmary").disabled=!0):n==="1"&&(t||(document.getElementById("dateScintPerformed").disabled=!1,document.getElementById("scintNone").disabled=!1),document.getElementById("scintLowerAxilla").disabled=!1,document.getElementById("scintUpperAxilla").disabled=!1,document.getElementById("scintSupraClavicular").disabled=!1,document.getElementById("scintInternalMammmary").disabled=!1)}function g(n){return(n.preventDefault(),v.alertsService.clearAlerts(),!at(e.addFullDataSetForm))?v.$q.reject("Validation Failed"):nt().then(function(n){return v.$q.resolve(n)},function(n){return v.$q.reject(n)})}function at(n,t){return e.editModel.breastData.episode.patient.gender==="NoneYet"?(e.patientDetailsForm.gender.$setValidity("required",!1),e.patientDetailsForm.gender.$setTouched()):e.patientDetailsForm.gender.$setValidity("required",!0),bqa.existy(e.patientDetailsForm.indigenousStatusRadio)?e.patientDetailsForm.indigenousRadio.$setValidity("required",!0):(e.patientDetailsForm.indigenousRadio.$setValidity("required",!1),e.patientDetailsForm.indigenousRadio.$setTouched()),v.lightUpInvalidForm(n,t)}function ci(n){g(n).then(function(){var t=e.tabs.indexOf(e.currentTab),n=t+1,i=e.tabs[n];c(function(){e.active=n;e.currentTab=i},0);vt(n)},function(n){console.info(n)})}function li(n){var t,i;ht();t=w.getFullDataSetCompletenessFields(e);v.$broadcast(y.events.stopSpinner);t.length>0?(n.preventDefault(),i=bt(t),i.then(function(){},function(){n.preventDefault()})):(g(n).then(function(){ut()},function(n){console.info(n)}),n.preventDefault())}function nt(){return(bi(),su(),e.showAddFollowUp)?(v.alertsService.error('Please close the "Add Follow Up" panel before saving.'),v.$q.reject("Add Follow Up panel was showing.")):e.showAddSurgery?(v.alertsService.error('Please close the "Add Surgery" panel before saving.'),v.$q.reject("Add Surgery was showing.")):e.showAddDiagnosis?(v.alertsService.error('Please close the "Add Diagnosis" panel before saving.'),v.$q.reject("Add Diagnosis panel was showing.")):(fr(),pt(),dr(),uu(),hu(),ht(),tt(w.getFullDataSetCompletenessFields(e).length===0),e.editModel.breastData.treatmentRefusals=cu(e),e.model=angular.copy(e.editModel),e.editModel.breastData.scintNone=e.editModel.breastData.scintNone===!0?1:0,e.showIndigenousOrigin||(e.model.breastData.episode.patient.indigenousStatusId=e.patientDetailsForm.indigenousStatusRadio),eu(),ou(),p.saveFulldataSet(e.model).then(function(n){return e.model=n.data,oi(e),e.editModel=angular.copy(n.data),e.dob=dateHelpers.processDate(e.editModel.breastData.episode.patient.dob),e.diagnosisDate=dateHelpers.processDate(n.data.breastData.diagnosisDate),e.dateScintPerformed=dateHelpers.processDate(n.data.breastData.scintDate),rt(e.editModel.breastData.menopausalStatus),d(e.editModel.breastData.scintPerformed),it(e.editModel.breastData.invasiveInsitu),et(e.editModel.breastData.noSurgery,e.editModel.breastData.noAxillarySurgery),console.log(e.showGestationalStatus),e.followUpsForDisplay=angular.copy(e.editModel.breastData.episode.breastFollowups),e.surgeriesForDisplay=angular.copy(e.editModel.breastData.episode.breastSurgeries),e.mdsProceduresForDisplay=angular.copy(e.editModel.breastData.episode.mdsProcedures),gt(),ft(),ni(),e.breastDataId=n.data.breastData.id,e.patientId=n.data.breastData.episode.patient.id,e.refusalsMulti.treatmentRefusals=_.map(e.editModel.treatmentRefusalMultiSelect.treatmentRefusals,function(n){return n.name}),e.refusalsMulti.selected=_.map(e.editModel.breastData.treatmentRefusals,function(n){return n.name}),v.$q.resolve(n)},function(n){var t=n.data;return(ni(),!at(e.addFullDataSetForm,t))?v.$q.reject("Validation Failed"):v.$q.reject(n)}))}function ai(n){return nt().then(function(){ut(n)},function(n){return v.$q.reject(n)})}function ut(n){i=!0;n?l.url("/"+n):l.url("/patients")}function vt(n){n<3?(e.showSaveAndNextButton=!0,e.showSaveAndCloseButton=!1):n===6?(e.showSaveAndNextButton=!1,e.showSaveAndCloseButton=!0):(e.showSaveAndNextButton=!0,e.showSaveAndCloseButton=!0)}function vi(n){n.existy=bqa.existy;n.editModel={};n.currentTab=n.tabs[0];n.active=0;n.noSurgeryMeta={};n.checkboxBindables={};n.refusalsMulti={};n.submit=g;n.submitAndNext=ci;n.submitAndClose=li;n.findMessage=ru;n.changeCheck=yi;n.changeGestationStatus=rt;n.showInvasiveInsitu=it;n.toggleScintPerformed=d;n.cancel=ur;n.getStatus=ki;n.getClinicalExam=di;n.getMammogram=gi;n.getUltraSound=nr;n.getLymphoedema=tr;n.getCosmetic=ir;n.showAddFollowUpPanel=rr;n.addFollowUp=er;n.deleteFollowup=or;n.closeAddProcedure=hr;n.addSurgicalProcedure=sr;n.addSurgProcedure=ar;n.open=kr;n.deleteRow=yr;n.deleteRowMds=pr;n.deleteSurgery=gr;n.saveSurgeries=wr;n.saveDiagnoses=br;n.handleBreastSurgeries=pt;n.deleteDiagnosis=nu;n.addDiagnosticProcedure=cr;n.closeAddDiagnosticProcedure=lr;n.addMdsProcedure=vr;n.goToMinimumDataSet=tu;n.validateIndigenousOrigin=kt;n.noScints=dt;n.closeWithoutSaving=ii;n.noSurgeryDisabled=ui;n.noAuxSurgeryDisabled=fi;n.selectSurgeon=ri;wi(n);n.showIndigenousOrigin=!1;n.showAddFollowUp=!1;n.showAddSurgery=!1;n.showAddDiagnosis=!1;n.showSaveAndNextButton=!0;n.showSaveAndCloseButton=!1;n.newFollowup={};n.newFollowupMeta={};n.deletedFollowups=[];n.deletedBreastSurgeries=[];n.deletedDiagnoses=[];n.startDate=moment(clientConstants.startDate,clientConstants.dateFormats.inFormat).startOf(dateHelpers.day);n.endDateDob=dateHelpers.subtractYears(new Date,15).endOf(dateHelpers.day);n.endDateToday=moment(new Date).endOf(dateHelpers.day);n.diagnosisDateTabClicked=!1;fu()}function yi(n){var i,t,u,r;if(bqa.existy(n)){if(e.tabClicked=!0,i=n.currentTarget.innerText,t=e.tabs.indexOf(e.currentTab),i!=="Patient Details"&&e.patientDetailsForm.$invalid)return angular.forEach(e.patientDetailsForm.$error,function(n){angular.forEach(n,function(n){n.$setTouched()})}),c(function(){e.active=0},0),e.currentTab=yt("Patient Details"),!1;if(u=yt(i.trim()),r=e.addFullDataSetForm[e.currentTab.form],r.$invalid)return angular.forEach(r.$error,function(n){angular.forEach(n,function(n){n.$setTouched()})}),c(function(){e.active=t},0),!1;g(n).then(function(n){n.status==400?(c(function(){e.active=t},0),console.info(msg||"")):(e.currentTab=u,vt(e.tabs.indexOf(e.currentTab)))},function(n){c(function(){e.active=t},0);angular.isString(n)&&console.info(n||"")})}return!0}function yt(n){return _.find(e.tabs,function(t){return t.title===n})}function it(n){bqa.existy(n)?(angular.isNumber(n)&&(n=n.toString()),e.showInvasivePanel=n==="1",e.showInsituPanel=!e.showInvasivePanel):(e.showInvasivePanel=!1,e.showInsituPanel=!1)}function rt(n){angular.isNumber(n)&&(n=pi(n));bqa.existy(n)&&(n=n.toUpperCase());e.showGestationalStatus=n==="PRE"||n==="PERI"?!0:!1;(n==="MALE"||n==="POST")&&(e.editModel.breastData.gestationalStatus=null)}function pi(n){var t=e.editModel.breastDataLookupMenopausalStatuses,i;if(t&&t.length>0)for(i=0;i<t.length;i++)if(t[i].value===n)return t[i].id;return""}function wi(n){var t=new Date,r=t.getFullYear(),i=(r+clientConstants.minimumYear)/2-40;i=Math.ceil(i);var f=moment(clientConstants.janFirst+r,clientConstants.dateFormats.outFormat).toDate(),e=moment(clientConstants.janFirst+i,clientConstants.dateFormats.outFormat).toDate(),u=moment(clientConstants.janFirst+clientConstants.nineteenHundred,clientConstants.dateFormats.outFormat).toDate();n.format=clientConstants.dateFormats.uiBtstpFormatAlt;n.altInputFormats=[clientConstants.dateFormats.altFormat];n.dateOptions={maxDate:t,minDate:u,startingDay:1,datepickerMode:clientConstants.datepickerMode,showWeeks:!1,initDate:f};n.dobDateOptions={maxDate:t,minDate:u,startingDay:1,datepickerMode:clientConstants.datepickerMode,showWeeks:!1,initDate:e};n.dobPopup={opened:!1};n.openDobPopup=function(){n.dobPopup.opened=!0};n.diagnosisDatePopup={opened:!1};n.openDiagnosisDatePopup=function(){n.diagnosisDatePopup.opened=!0};n.scintPerformedPopup={opened:!1};n.openScintPerformedPopup=function(){n.scintPerformedPopup.opened=!0};n.addFollowupDate=undefined;n.addFollowupPopup={opened:!1};n.openAddFollowupPopup=function(){n.addFollowupPopup.opened=!0}}function bi(){var t=e.checkboxBindables,n,i,u;for(n in t)!t.hasOwnProperty(n)||n==="noSurgery"||n==="noAuxSurgery"||(i=n.substringUntil(r),u=t[n],e.editModel.breastData[i]=u?1:2)}function ki(n){if(bqa.existy(n)&&bqa.existy(e.editModel.breastFollowupLookupStatusesSelectList)){var t=_.find(e.editModel.breastFollowupLookupStatusesSelectList.values,function(t){return t.key===n.diseaseStatus});return bqa.existy(t)?t.value:""}return""}function di(n){if(bqa.existy(n)){var t=_.find(e.editModel.breastFollowupLookupClinicalExamsSelectList.values,function(t){return t.key===n.clinicalExam});return bqa.existy(t)?t.value:""}return""}function gi(n){if(bqa.existy(n)){var t=_.find(e.editModel.breastFollowupLookupMammogramsSelectList.values,function(t){return t.key===n.mammogram});return bqa.existy(t)?t.value:""}return""}function nr(n){if(bqa.existy(n)){var t=_.find(e.editModel.breastFollowupLookupUltrasoundsSelectList.values,function(t){return t.key===n.ultrasound});return bqa.existy(t)?t.value:""}return""}function tr(n){if(bqa.existy(n)){var t=_.find(e.editModel.breastFollowupLookupLymphoedemaStatusesSelectList.values,function(t){return t.key===n.lymphoedema});return bqa.existy(t)?t.value:""}return""}function ir(n){if(bqa.existy(n)){var t=_.find(e.editModel.breastFollowupLookupSymmetriesSelectList.values,function(t){return t.key===n.cosmetic});return bqa.existy(t)?t.value:""}return""}function rr(n,t){n.preventDefault();e.showAddFollowUp=t;e.newFollowup.date=undefined;e.newFollowupMeta.nextApptStepVal=0}function ur(n){if(n.preventDefault(),e.editModel=angular.copy(e.model),parseInt(e.patientId)===0){var t=b.getNewPatientDetails();e.editModel.breastData.episode.patient.name=t.name;e.dob=t.dob}else e.dob=dateHelpers.processDate(e.editModel.breastData.episode.patient.dob);e.diagnosisDate=dateHelpers.processDate(e.editModel.breastData.diagnosisDate);e.dateScintPerformed=dateHelpers.processDate(e.editModel.breastData.scintDate);rt(e.editModel.breastData.menopausalStatus);d(e.editModel.breastData.scintPerformed);it(e.editModel.breastData.invasiveInsitu);et(e.editModel.breastData.noSurgery,e.editModel.breastData.noAxillarySurgery);e.followUpsForDisplay=angular.copy(e.editModel.breastData.episode.breastFollowups);e.surgeriesForDisplay=angular.copy(e.editModel.breastData.episode.breastSurgeries);e.mdsProceduresForDisplay=angular.copy(e.editModel.breastData.episode.mdsProcedures);e.deletedBreastSurgeries.length=0;e.deletedDiagnoses.length=0;e.deletedFollowups.length=0;ft(!0);kt(e.patientDetailsForm.indigenousStatusRadio,!0)}function fr(){for(var t,i=[],n=0;n<e.deletedFollowups.length;n++)t=_.find(e.editModel.breastData.episode.breastFollowups,function(t){return e.deletedFollowups[n]===t.id}),t.trackingState=clientConstants.trackingState.deleted,i.push(angular.copy(t));e.editModel.breastData.episode.breastFollowups=angular.copy(e.followUpsForDisplay);e.editModel.breastData.episode.breastFollowups=bqa.concatArrays(e.editModel.breastData.episode.breastFollowups,i);e.deletedFollowups.length=0}function er(n){var t,i;n.preventDefault();bqa.existy(e.newFollowup.date)&&e.followupsForm.$valid?(t=null,e.newFollowupMeta.nextApptStepVal===0?t=dateHelpers.addDays(e.newFollowup.date,e.newFollowupMeta.nextApptQuantum):e.newFollowupMeta.nextApptStepVal===1?t=dateHelpers.addWeeks(e.newFollowup.date,e.newFollowupMeta.nextApptQuantum):e.newFollowupMeta.nextApptStepVal===2?t=dateHelpers.addMonths(e.newFollowup.date,e.newFollowupMeta.nextApptQuantum):e.newFollowupMeta.nextApptStepVal===3&&(t=dateHelpers.addYears(e.newFollowup.date,e.newFollowupMeta.nextApptQuantum)),bqa.existy(t)&&(e.newFollowup.nextAppt=t.toDate()),e.newFollowup.trackingState=clientConstants.trackingState.added,e.newFollowup.revisionID=clientConstants.initRevisionId,e.followUpsForDisplay.push(e.newFollowup),i=angular.copy(e.newFollowup),e.editModel.breastData.episode.breastFollowups.push(i),e.showAddFollowUp=!1,e.newFollowup={},e.newFollowupMeta.nextApptQuantum="",e.newFollowupMeta.nextApptStepVal=null):e.followupsForm.$invalid&&angular.forEach(e.followupsForm.$error,function(n){angular.forEach(n,function(n){n.$setTouched()})})}function or(n,t){n.preventDefault();bqa.removeItem(e.followUpsForDisplay,t);t.trackingState!==clientConstants.trackingState.added&&e.deletedFollowups.push(t.id)}function sr(n){n.preventDefault();e.showAddSurgery=!0;e.newProcedures=[]}function hr(n){n.preventDefault();e.showAddSurgery=!1}function cr(n){n.preventDefault();e.showAddDiagnosis=!0;e.newMdsProcedures=[]}function lr(n){n.preventDefault();e.showAddDiagnosis=!1}function ar(n,t,i,r){n.preventDefault();var u={name:t,typeId:i,date:undefined,dischargeDate:undefined,dateOpened:!1,dischargeDateOpened:!1};bqa.existy(r)&&(u.axilla=r);e.newProcedures.push(u)}function vr(n,t,i){n.preventDefault();var r={name:t,typeId:i,result:null};e.newMdsProcedures.push(r)}function yr(n,t){n.preventDefault();bqa.removeItem(e.newProcedures,t)}function pr(n,t){n.preventDefault();bqa.removeItem(e.newMdsProcedures,t)}function wr(n){var i,t,r;if(n.preventDefault(),e.proceduresForm.$invalid)return angular.forEach(e.proceduresForm.$error,function(n){angular.forEach(n,function(n){n.$setTouched()})}),!1;for(i=0;i<e.newProcedures.length;i++)t=e.newProcedures[i],r={axilla:t.axilla,surgeryType:t.typeId,dischargeDate:t.dischargeDate,surgeryDate:t.date,trackingState:clientConstants.trackingState.added,revisionID:clientConstants.initRevisionId},bqa.existy(t.axilla)?r.breastSurgeryLookupAxilla={axillaType:t.name}:r.breastSurgeryLookupSurgeryType={surgeyType:t.name},e.surgeriesForDisplay.push(r),ot()>0&&(e.checkboxBindables.noSurgery=!1),st()>0&&(e.checkboxBindables.noAuxSurgery=!1),e.proceduresForm["newProcedure"+i].date=undefined;e.newProcedures.length=0;e.showAddSurgery=!1}function br(n){var t,u;if(n.preventDefault(),e.proceduresForm.$invalid)return angular.forEach(e.proceduresForm.$error,function(n){angular.forEach(n,function(n){n.$setTouched()})}),!1;for(t=0;t<e.newMdsProcedures.length;t++){var i=e.newMdsProcedures[t],r=new Number(i.result),f=null;f=i.result==="1"?{dataId:r,order:1,procResult:"Positive"}:{dataId:r,order:2,procResult:"Negative"};u={episodeId:e.editModel.breastData.episode.id,mdsLookupProcedureResult:f,procResult:r,procType:i.typeId,trackingState:clientConstants.trackingState.added,revisionID:clientConstants.initRevisionId};u.mdsLookupProcedure={procType:i.name};e.mdsProceduresForDisplay.push(u)}e.newMdsProcedures.length=0;e.showAddDiagnosis=!1}function kr(n,t){n.preventDefault();n.stopPropagation();var i=n.currentTarget.id;i.startsWith("discharge")?t.dischargeDateOpened=!0:t.dateOpened=!0}function pt(){for(var t,i=[],n=0;n<e.deletedBreastSurgeries.length;n++)t=_.find(e.editModel.breastData.episode.breastSurgeries,function(t){return e.deletedBreastSurgeries[n]===t.id}),t.trackingState=clientConstants.trackingState.deleted,i.push(angular.copy(t));e.editModel.breastData.episode.breastSurgeries=angular.copy(e.surgeriesForDisplay);e.editModel.breastData.episode.breastSurgeries=bqa.concatArrays(e.editModel.breastData.episode.breastSurgeries,i);e.deletedBreastSurgeries.length=0}function dr(){for(var t,i=[],n=0;n<e.deletedDiagnoses.length;n++)t=_.find(e.editModel.breastData.episode.mdsProcedures,function(t){return e.deletedDiagnoses[n]===t.id}),t.trackingState=clientConstants.trackingState.deleted,i.push(angular.copy(t));e.editModel.breastData.episode.mdsProcedures=angular.copy(e.mdsProceduresForDisplay);e.editModel.breastData.episode.mdsProcedures=bqa.concatArrays(e.editModel.breastData.episode.mdsProcedures,i);e.deletedDiagnoses.length=0}function gr(n,t){n.preventDefault();var i=confirm("Are you sure you want to delete this Surgery?");i&&(bqa.removeItem(e.surgeriesForDisplay,t),t.trackingState!==clientConstants.trackingState.added&&e.deletedBreastSurgeries.push(t.id))}function nu(n,t){n.preventDefault();var i=confirm("Are you sure you want to delete this Diagnosis?");i&&(bqa.removeItem(e.mdsProceduresForDisplay,t),t.trackingState!==clientConstants.trackingState.added&&e.deletedDiagnoses.push(t.id))}function tu(n){n.preventDefault();g(n).then(function(){bqa.existy(e.editModel.breastData)?l.url("/patientsmalldataset?patientId="+e.editModel.breastData.episode.patient.id+"&breastDataId="+e.editModel.breastData.id+"&surgeonId="+e.surgeonId):l.url("/patientsmalldataset?patientId="+e.patientId+"&breastDataId="+e.breastDataId+"&surgeonId="+e.surgeonId)},function(n){console.info(n)})}function iu(n){n.patientId=o.patientId;n.breastDataId=o.breastDataId;n.surgeonId=o.surgeonId}function tt(n){e.editModel.breastData.episode.caseComplete=n}function wt(n,t,i,r,u){var f=a.open({animation:!0,templateUrl:"Scripts/app/templates/dialogs/AlertDialog.html",controller:"AlertDialogController",size:"lg",resolve:{dialogOptions:function(){return{title:n,message:t,okButton:i,cancelButton:r,closeButton:u}}}});return f.result}function bt(n,t){if(n.length>0){tt(!1);var i=w.formatCompletenessFieldsMessage(n,e.editModel.breastData.episode.patient.name,e.dob);return wt("Completeness Alert",i,"Save and Close","Save and Continue Editing").then(function(n){if(n.buttonName==="ok")return tt(!1),ai(t).then(function(){},function(n){return v.$q.reject(n)});n.buttonName==="cancel"?nt():n.buttonName==="close"&&ii(t)},function(){s.info("Modal dismissed at: "+new Date)})}return tt(!0),nt().then(function(){},function(n){return v.$q.reject(n)})}function ru(n){if(bqa.existy(e.editModel.helpMessages)){var t=_.find(e.editModel.helpMessages,function(t){return t.helpColumnName.toUpperCase()===n.toUpperCase()});return t?t.message:""}return""}function kt(n,t){bqa.existy(e.patientDetailsForm.indigenousStatusRadio)&&ti(e.patientDetailsForm.indigenousRadio);n!==0?(ti(e.patientDetailsForm.indigenousStatus),e.editModel.breastData.episode.patient.indigenousStatusId=n,e.showIndigenousOrigin=!1):(bqa.existy(t)&&t||(e.editModel.breastData.episode.patient.indigenousStatusId=undefined),e.showIndigenousOrigin=!0)}function uu(){var n=0;n+=parseInt(e.editModel.breastData.scintInternalMammmary)||0;n+=parseInt(e.editModel.breastData.scintSupraClavicular)||0;n+=parseInt(e.editModel.breastData.scintUpperAxilla)||0;n+=parseInt(e.editModel.breastData.scintLowerAxilla)||0;e.editModel.breastData.scintTotal=n}function dt(){e.editModel.breastData.scintNone?d("2",!0):d("1",!0)}function gt(){e.editModel.breastData.scintNone=e.editModel.breastData.scintNone===1?!0:!1;e.editModel.breastData.scintNone&&dt()}function fu(){e.busyMessage=clientConstants.spinners.busyMessage;e.isBusy=!0;e.spinneractive=!1;e.spinnerOptions={radius:42,rotate:0,scale:1,shadow:!0,lines:13,length:28,width:14,speed:1,corners:1,trail:60,opacity:.25,color:clientConstants.spinners.colour};f.$on(clientConstants.spinners.spin,function(){e.spinneractive=!0});f.$on(clientConstants.spinners.stop,function(){e.spinneractive=!1})}function eu(){e.spinneractive||(e.tabClicked?k.spin(clientConstants.spinners.viewPaneSpinner):k.spin(clientConstants.spinners.datasetSpinner))}function ni(){e.tabClicked?k.stop(clientConstants.spinners.viewPaneSpinner):k.stop(clientConstants.spinners.datasetSpinner);e.tabClicked=!1}function ft(n){var t;t=n?e.editModel.breastData.episode.patient.indigenousStatusId:e.model.breastData.episode.patient.indigenousStatusId;bqa.existy(t)?t===9?e.patientDetailsForm.indigenousStatusRadio=9:t===1?e.patientDetailsForm.indigenousStatusRadio=1:t===10?e.patientDetailsForm.indigenousStatusRadio=null:t>1&&t<10&&(e.patientDetailsForm.indigenousStatusRadio=0):e.patientDetailsForm.indigenousStatusRadio=null;e.showIndigenousOrigin=bqa.existy(e.patientDetailsForm.indigenousStatusRadio)&&e.patientDetailsForm.indigenousStatusRadio===0}function ti(n){n.$setPristine();n.$setUntouched()}function ii(n){wt(clientConstants.closeWithoutSaving.title,clientConstants.closeWithoutSaving.message,"OK","Cancel").then(function(t){t.buttonName==="ok"&&ut(n)},function(){s.info("Modal dismissed at: "+new Date)})}function ri(n){var t=_.find(e.surgeonHospitalsViewModels,function(t){return t.surgeonId===n});bqa.existy(t)&&(e.dmHospitalsSelectList=t.hospitalSelectList)}function ou(){delete e.model.adjuvantTherapyStatusRows;delete e.model.neoAdjuventRadioButtons;delete e.model.breastDataLookupArchitecturesDominantSelectList;delete e.model.breastDataLookupArchitecturesOtherSelectList;delete e.model.breastDataLookupBrCareNurseSelectList;delete e.model.breastDataLookupFinalPathSelectList;delete e.model.breastDataLookupGestationalStatusSelectList;delete e.model.breastDataLookupHistoGradeInsitus;delete e.model.breastDataLookupHistoGradeInvasives;delete e.model.breastDataLookupLateralities;delete e.model.breastDataLookupMarginCircumTypeInsituSelectList;delete e.model.breastDataLookupMarginCircumTypeInvasiveSelectList;delete e.model.breastDataLookupMarginVerticalTypeInsituSelectList;delete e.model.breastDataLookupMarginVerticalTypeInvasiveSelectList;delete e.model.breastDataLookupMenopausalStatuses;delete e.model.breastDataLookupMdtSelectList;delete e.model.breastDataLookupNecroses;delete e.model.breastDataLookupNoOfFocis;delete e.model.breastDataLookupReferralSourceSelectList;delete e.model.breastDataLookuPrincipalCaPositionSelectList;delete e.model.breastDataLookupScintMethods;delete e.model.breastDataLookupVascularLymphInvasions;delete e.model.breastFollowupLookupClinicalExamsSelectList;delete e.model.breastFollowupLookupLymphoedemaStatusesSelectList;delete e.model.breastFollowupLookupMammogramsSelectList;delete e.model.breastFollowupLookupStatusesSelectList;delete e.model.breastFollowupLookupSymmetriesSelectList;delete e.model.breastFollowupLookupUltrasoundsSelectList;delete e.model.helpMessages;delete e.model.breastDataLookupPrevSurgeries;delete e.model.breastDataLookupTumourTypes;delete e.model.hospitalsSelectList;delete e.model.indigenousStatusList;delete e.model.invasiveAdjuvantTherapyYesKnows;delete e.model.privatePublicSelectList;delete e.model.receptorStatuses;delete e.model.treatmentRefusalMultiSelect}function et(n,t){bqa.existy(n)&&(e.checkboxBindables.noSurgery=n===1?!0:!1);bqa.existy(t)&&(e.checkboxBindables.noAuxSurgery=t===1?!0:!1)}function su(){var n=e.checkboxBindables,t=n.noSurgery,i=n.noAuxSurgery;bqa.existy(t)&&(e.editModel.breastData.noSurgery=t===!0?1:ot()<1?null:0);bqa.existy(i)&&(e.editModel.breastData.noAxillarySurgery=i===!0?1:st()<1?null:0)}function hu(){e.editModel.breastData.episode.patient.dob=dateHelpers.formatDateForSave(e.dob);e.editModel.breastData.scintDate=dateHelpers.formatDateForSave(e.dateScintPerformed);e.editModel.breastData.diagnosisDate=dateHelpers.formatDateForSave(e.diagnosisDate);angular.forEach(e.editModel.breastData.episode.breastFollowups,function(n){n.date=dateHelpers.formatDateForSave(n.date);bqa.existy(n.nextAppt)&&(n.nextAppt=dateHelpers.formatDateForSave(n.nextAppt))});angular.forEach(e.editModel.breastData.episode.breastSurgeries,function(n){n.surgeryDate=dateHelpers.formatDateForSave(n.surgeryDate);bqa.existy(n.dischargeDate)&&(n.dischargeDate=dateHelpers.formatDateForSave(n.dischargeDate))})}function cu(n){return _.each(n.editModel.breastData.treatmentRefusals,function(t){var i=_.find(n.refusalsMulti.selected,function(n){return t.name===n});i||(t.trackingState=clientConstants.trackingState.deleted)}),_.each(n.refusalsMulti.selected,function(t){var u=_.find(n.editModel.breastData.treatmentRefusals,function(n){return t===n.name}),i,r;u||(i=_.find(n.editModel.treatmentRefusalMultiSelect.treatmentRefusals,function(n){return n.name===t}),r={breastDataId:n.editModel.breastData.id,interventionChangeReasonId:i.interventionChangeReasonId,name:i.name,trackingState:clientConstants.trackingState.added},n.editModel.breastData.treatmentRefusals.push(r))}),n.editModel.breastData.treatmentRefusals}function ui(){return ei(ot)}function fi(){return ei(st)}function ei(n){return n()>0}function ot(){var n=_.filter(e.surgeriesForDisplay,function(n){return n.surgeryType<99});return n.length}function st(){var n=_.filter(e.surgeriesForDisplay,function(n){return n.surgeryType===99});return n.length}function ht(){e.noSurgeryMeta.noSurgeryChecked=e.checkboxBindables.noSurgery?!0:!1;e.noSurgeryMeta.noAuxSurgeryChecked=e.checkboxBindables.noAuxSurgery?!0:!1}function oi(n){n.model.notRecordedNeoAdjuventValuePresent===!1&&n.model.neoAdjuventRadioButtons.splice(2,1)}var ct;e.tabs=[{title:"Patient Details",form:"patientDetailsForm"},{title:"Diagnosis",form:"diagnosisForm"},{title:"Procedure",form:"proceduresForm"},{title:"Pathology",form:"pathologyForm"},{title:"Sentinel",form:"sentinelForm"},{title:"Followups",form:"followupsForm"},{title:"Comments",form:"commentsForm"}];iu(e);vi(e);si(e.breastDataId,e.patientId,e.surgeonId,h,["Scripts/app/templates/dialogs/AlertDialog.html"]);ct=e.$on("$locationChangeStart",function(n,t){var r,f,o;i||t.indexOf(u)===-1&&(ht(),r=w.getFullDataSetCompletenessFields(e),v.$broadcast(y.events.stopSpinner),r.length>0?(n.preventDefault(),f=bt(r,t.split("/").pop()),f.then(function(){},function(){n.preventDefault()})):(tt(!0),o=t.substring(l.absUrl().length-l.url().length),nt().then(function(){ct();l.url(o)},function(){}),n.preventDefault()))});e.atLeastOneSurgeryOnEp=ui;e.atLeastOneAxSurgeryOnEp=fi}var t="PatientFullDataSetController",r="Chk",n="$formController",u="patientsmalldataset",i=!1;angular.module(clientConstants.appName).controller(t,["$rootScope","$scope","$routeParams","$log","$templateCache","$timeout","$location","$uibModal","common","config","dataContext","completenessRulesService","patientDataService","usSpinnerService",f])}(),function(){function t(t,i,r,u){function f(n){n.activeReportUrl=null;n.goGetReport=s;n.setActiveReportUrl=function(t){n.activeReportUrl=t};n.viewReport=function(n){window.open("ReportsData/DownloadReport/?reportUrl="+n,"_blank","",0)}}function e(){r.activateController([o()],n).then(function(){i.log("Activated Reports View")})}function o(){return u.getReportsList().then(function(n){t.reports=n.data.auditReportDtos;t.loggedIn=r.displayUser(n.data.loggedInUser)},function(n){t.error=n})}function s(n){n.preventDefault();t.activeReportUrl==="ExportAllData"?$("form#exportDataForm").trigger("submit"):$("form#viewReportForm").trigger("submit")}f(t);e()}var n="ReportsController";angular.module(clientConstants.appName).controller(n,["$scope","$log","common","dataContext",t])}(),function(){"use strict";function t(t,i,r,u){function f(){u.activateController([],n).then(function(){r.scrollTo(0,0);i.log("What's New page loaded!",null,!0);u.alertsService.success("What's New page loaded!")})}f()}var n="WhatIsNewController";angular.module(clientConstants.appName).controller(n,["$scope","$log","$window","common",t])}(),function(){"use strict";function n(n,t,i,r){function u(n,t){n.title=t.title;n.message=t.message;n.okButton=bqa.existy(t.okButton)?t.okButton:"OK";n.cancelButton=bqa.existy(t.cancelButton)?t.cancelButton:"Cancel";n.showCloseButton=bqa.existy(t.closeButton);n.closeButton=n.showCloseButton?t.closeButton:"Close";n.buttonEvent=f}function f(n){n.preventDefault();i.close({buttonName:n.currentTarget.name})}u(n,r)}angular.module(clientConstants.appName).controller("AlertDialogController",["$scope","common","$uibModalInstance","dialogOptions",n])}(),function(){"use strict";function t(t,i,r,u,f,e,o,s){function a(){i.busyMessage=clientConstants.spinners.busyMessage;i.isBusy=!0;i.spinneractive=!1;i.spinnerOptions={radius:42,rotate:0,scale:1,shadow:!0,lines:13,length:28,width:14,speed:1,corners:1,trail:60,opacity:.25,color:clientConstants.spinners.colour};t.$on(clientConstants.spinners.spin,function(){i.spinneractive=!0});t.$on(clientConstants.spinners.stop,function(){i.spinneractive=!1})}function h(n){i.spinneractive||(bqa.existy(n)&&n===clientConstants.spinners.viewPaneSpinner&&f.spin(clientConstants.spinners.viewPaneSpinner),f.spin(clientConstants.spinners.daterangeSpinner))}function v(){var n=i.lastDateFrom!=i.dateFrom,t=i.lastDateTo!=i.dateTo;(n&&i.dateFrom==null||t&&i.dateTo==null)&&c()}function y(){var n=i.lastDateFrom!=i.dateFrom,t=i.lastDateTo!=i.dateTo;(n||t)&&c()}function c(){h();i.lastDateFrom=i.dateFrom;i.lastDateTo=i.dateTo;var n=dateHelpers.formatDateForSave(i.dateFrom),t=dateHelpers.formatDateForSave(i.dateTo);return o.getHpqiSurgeonSummaryThresholds(n,t).then(function(n){i.summary.threshholdCountsDtos=n.data.threshholdCountsDtos;f.stop(clientConstants.spinners.daterangeSpinner)},function(){})}function p(){i.format=clientConstants.dateFormats.uiBtstpFormatAlt;i.altInputFormats=[clientConstants.dateFormats.altFormat];var n=((new Date).getFullYear()+clientConstants.minimumYear)/2,t=moment(clientConstants.janFirst+clientConstants.nineteenHundred,clientConstants.dateFormats.outFormat).startOf(dateHelpers.day),r=moment(clientConstants.janFirst+clientConstants.twentyOneHundred,clientConstants.dateFormats.outFormat).startOf(dateHelpers.day);i.dateOptions={maxDate:r,minDate:t,startingDay:1,datepickerMode:clientConstants.datepickerMode,showWeeks:!1,initDate:new Date(n,1,1)};i.dateFromPopup={opened:!1};i.openDateFromPopup=function(){i.dateFromPopup.opened=!0};i.dateToPopup={opened:!1};i.openDateToPopup=function(){i.dateToPopup.opened=!0}}function w(){s.setDaterange(i.dateFrom,i.dateTo);e.activateController([b()],n).then(function(){u.log("Activated Hpqi Surgeon Summary Thresholds View")})}function b(){return h(clientConstants.spinners.viewPaneSpinner),o.getHpqiSurgeonSummaryThresholds(i.surgeonId).then(function(n){i.summary.threshholdCountsDtos=n.data.threshholdCountsDtos;i.loggedIn=e.displayUser(n.data.loggedInUser)},function(n){i.error=n}).then(function(){f.stop(clientConstants.spinners.daterangeSpinner);f.stop(clientConstants.spinners.viewPaneSpinner)})}function l(n,t){switch(t){case"denominator":switch(n.kpiNumber){case 1:return 2;case 2:return 5;case 3:return 8;case 4:return 11;case 5:return 14;case 6:return 17}break;case"excluded":switch(n.kpiNumber){case 1:return 3;case 2:return 6;case 3:return 9;case 4:return 12;case 5:return 15;case 6:return 18}break;case"numerator":switch(n.kpiNumber){case 1:return 1;case 2:return 4;case 3:return 7;case 4:return 10;case 5:return 13;case 6:return 16}}}function k(n,t){s.setDaterange(i.dateFrom,i.dateTo);r.url("/patients/"+l(n,t)+"/y")}i.summary={};i.lastDateFrom=null;i.dateFrom=null;i.lastDateTo=null;i.dateTo=null;i.kpiAssessmentsChanged=v;i.kpiAssessmentsBlurred=y;i.linkToDrillDown=l;i.kpiLink=k;p();a();w()}var n="HqpiSurgeonSummaryController";angular.module(clientConstants.appName).controller(n,["$rootScope","$scope","$location","$log","usSpinnerService","common","dataContext","summaryDaterangeService",t])}();var bqa=function(){"use strict";function n(n){return n!=null}function u(t){return t!==!1&&n(t)}function f(n,t){var i=n.indexOf(t);i!==-1&&n.splice(i,1)}function e(n,t){return n&&-1!==n.toLowerCase().indexOf(t.toLowerCase())}function o(){var t=_.first(arguments);return n(t)?t.concat.apply(t,_.rest(arguments)):[]}var t,i,r;return moment.locale("en-AU"),t=function(n){return n.charAt(0).toUpperCase()+n.substring(1).toLowerCase()},i=function(t){var i=_.rest(arguments);return function(){var r=_.map(arguments,function(t,r){return n(t)?t:i[r]});return t.apply(null,r)}},r=function(n){return function(t,r){var u=i(_.identity,n[r]);return t&&u(t[r])}},String.prototype.substringUntil||(String.prototype.substringUntil=function(n){return this.slice(0,this.indexOf(n))}),String.prototype.startsWith||(String.prototype.startsWith=function(n,t){return t=t||0,this.substr(t,n.length)===n}),Number.isFinite=Number.isFinite||function(n){return typeof n=="number"&&isFinite(n)},{concatArrays:o,defaults:r,existy:n,firstLetterCapitalized:t,removeItem:f,textContains:e,truthy:u}}();bqa.ajax=function(){return $(function(){var n,i=$("#loading-overlay"),r={radius:42,rotate:0,scale:1,shadow:!0,lines:13,length:28,width:14,speed:1,corners:1,trail:60,opacity:.25,color:clientConstants.spinners.colour},t;$(document).ajaxStart(function(u){t=u.currentTarget.activeElement.name;$('[name="'+t+'"]').attr("disabled","disabled");n=new Spinner(r).spin();i.append(n.el);alerts.clearAlerts()});$(document).ajaxError(function(){});$(document).ajaxStop(function(){$('[name="'+t+'"]').removeAttr("disabled");n.stop()})}),{}}();bqa.membership=function(){function at(){var n={};return n[h]="/",n}function pt(){$.ajax({type:c,cache:!1,url:"/Membership/RefreshMenu",dataType:"html",beforeSend:function(){}}).done(function(n){s.fadeOut(500,function(){s.empty().append(n).fadeIn(500)})}).fail(function(){}).always(function(){})}var rt,l,a,n,i,v,e,y,f,o,s,h,r,p="form.membership",w="#formWrapper",b="#logout-link",k="#home-link",ut="#helpAndSupportLink",t="click",d="submit",c="GET",u="POST";$(function(){ft();et()});var ft=function(){h="returnUrl";r=!0;i="application/x-www-form-urlencoded; charset=utf-8";v="application/json; charset=utf-8";o=$(b);f=$(k);y=$(ut);l=$("#claimTypeToggle");a=$("#createClaimButton");e=$(w);n=$(p);s=$("#membershipMenuWrapper");$("#membershipMenuWrapper").length>0&&y.attr("target","_self")},et=function(){n.on(d,g);$("button.btn-primary").on(t,function(){rt=$(this)});$("div#memMenu a").on(t,ot);o.on(t,ht);f.on(t,tt);l.on(t,ct);a.on(t,lt)},ot=function(i){var r,u;if(i.preventDefault(),r=i.currentTarget.id.substringUntil("-"),r==="logout"||r==="home")return!1;if(r==="myuserdetails")return location.assign("/myuserdetails"),!1;u="/useraccount/"+r+"/main";$.ajax({type:c,cache:!1,url:u,dataType:"html",beforeSend:function(){e.empty()}}).done(function(i){e.append(i);n=$(p);n.on(d,g);o=$(b);f=$(k);f.on(t,tt)}).fail(function(n){$(w).empty().append(n.responseText)}).always(function(){})},g=function(t){t.preventDefault();var f=n.serialize(),e={type:u,contentType:i,cache:!1,dataType:"json",data:f,beforeSend:function(){n.find("div.has-error").removeClass("has-error");$("#msg").remove()}},r=n.attr("action");r&&(e.url=r);$.ajax(e).done(function(n){n.result===clientConstants.opResult.success&&r==="/UserAccount/ChangePassword/SendPasswordReset"?alerts.success("Operation succeeded. "+(n.msg||"")):n.url&&st(n,f)}).fail(nt)},st=function(n,t){var r=n.url.toLowerCase().indexOf("login")>0,f=n.url;n.returnUrl&&(r&&(n.returnUrl=n.returnUrl||"/"),t+="&returnUrl="+n.returnUrl);$.ajax({type:u,contentType:i,cache:!1,dataType:"json",url:n.url,data:t,beforeSend:function(){}}).done(function(n){if(n.result===clientConstants.opResult.success){if(n.msg&&n.msg!=="Logged in."&&alerts.success(n.msg),r){pt();var i=at(),e=bqa.defaults(i),o=e(n,h);alerts.info("Redirecting you now.");setTimeout(function(){window.location=o},10)}}else if(n.result==="changepwd")alerts.info("Redirecting you now."),setTimeout(function(){window.location="/UserAccount/ChangePassword"},10);else if(n.result==="firstLogin"){alerts.info("As this is your first log in, you need to change your password.");var s=JSON.stringify({model:{email:n.email}}),c=$("input[name=__RequestVerificationToken]").val(),t={};t["X-RequestVerificationToken"]=c;$.ajax({type:u,cache:!1,url:n.url,dataType:"json",contentType:v,data:s,headers:t,beforeSend:function(){}}).done(function(n){alerts.clearAlerts();alerts.success(n.msg||"Operation succeeded.")}).fail(function(){}).always(function(){})}else n.result==="ChangeRequestSuccess"?f.indexOf("SaveNewEmail")>0||f.indexOf("SubmitNewPassword")>0?window.location="/useraccount/login/IndexWithMsg":(alerts.clearAlerts(),alerts.success(n.msg)):n.result==="inactiveuser"&&(alerts.clearAlerts(),alerts.error(n.msg))}).fail(function(n,t,i){r&&$("#Password").focus();nt(n,t,i)})},nt=function(n){var t,i;n.status===400&&(t=JSON.parse(n.responseText),t.errorMessages?alerts.error(t.errorMessage):(i=Object.keys(t),i.forEach(function(n){t[n].Errors&&t[n].Errors.length>0?n!==""&&n!=="Custom"?($('*[name="'+n+'"]').closest("div").addClass("has-error"),alerts.error(t[n].Errors[0][clientConstants.errorMessage])):t[n].Errors.forEach(function(n){alerts.error("Operation failed. "+n[clientConstants.errorMessage])}):n!==""&&$('*[name="'+n+'"]').removeClass("has-error")})))},ht=function(n){n.preventDefault();$.ajax({type:u,contentType:i,cache:!1,dataType:"json",url:"/UserAccount/Logout/Index",beforeSend:function(){}}).done(function(n){n.result===clientConstants.opResult.success&&(window.location="/UserAccount/Login?returnUrl="+encodeURIComponent("/"))})},ct=function(n){n.preventDefault();r?($("#stockClaimsWrapper").fadeOut(500,function(){$("#customClaimWrapper").show()}),r=!1,$(this).text("Pick stock claim")):($("#customClaimWrapper").fadeOut(500,function(){$("#stockClaimsWrapper").show()}),r=!0,$(this).text("Add custom claim"))},lt=function(n){var f,t,e;n.preventDefault();f="/UserAccount/Admin/AddClaim";t=$("#NewClaimType");r?t.val($("#SelectedClaimType option:selected").text()):t.val($("#CustomClaimType").val());e=$("form").serialize();$.ajax({type:u,contentType:i,cache:!1,url:f,dataType:"json",data:e,beforeSend:function(){}}).done(function(n){n.result===clientConstants.opResult.success&&alerts.success(n.msg)}).fail(function(n){var t=JSON.parse(n.responseText);alerts.error(t.errorMessage)}).always(function(){})},tt=function(n){n.preventDefault();window.location="/"};var it=!1,vt=function(){return it},yt=function(n){it=n};return{getUaAppBootstrapped:vt,setUaAppBootstrapped:yt}}()