{"version":3,"sources":["app/api/agent.ts","app/images/rhr-logo-sm.png","features/nav/MainNavbar.tsx","app/stores/adminStore.ts","features/admin/OrganisationsList.tsx","features/admin/UserAdministration.tsx","features/admin/RoleList.tsx","features/common/SmallButton.tsx","app/azureauth/GraphUserCheck.jsx","app/azureauth/GraphUserInvite.jsx","app/azureauth/GraphUserDelete.jsx","features/admin/UserView.tsx","features/admin/UserEdit.tsx","features/admin/UserCreate.tsx","features/admin/CreateNewRole.tsx","features/admin/CreateNewOrg.tsx","features/admin/RoleView.tsx","features/admin/EditRole.tsx","features/admin/OrganisationView.tsx","features/admin/EditOrganisation.tsx","features/admin/AuditViewer.tsx","features/admin/AdminHomepage.tsx","features/home/NoRoles.tsx","app/stores/carehomeStore.tsx","features/carehomes/capacity/CareHomeCapacityTable.tsx","features/carehomes/capacity/CareHomeCapacityMain.tsx","features/common/NhsNumber.tsx","app/stores/searchStore.ts","features/patientrecord/common/DateTimeFunctions.tsx","features/search/PatientResults.tsx","features/search/PatientNameForm.tsx","app/stores/inpatientStore.tsx","features/search/PatientSearch.tsx","features/carehomes/dashboard/CareHomeResults.tsx","features/carehomes/dashboard/MainLayout.tsx","app/stores/patientRecordStore.ts","features/patientrecord/PatientRecordHeader.tsx","features/patientrecord/PatientRecordNavBar.tsx","features/patientrecord/DataLoadStatusBadge.tsx","features/patientrecord/common/PatientRecordListFilter.tsx","features/patientrecord/common/PatientRecordListCounts.tsx","features/patientrecord/common/PatientRecordListPaging.tsx","features/patientrecord/common/PatientRecordListDisplay.tsx","features/patientrecord/PatientRecordAllergiesList.tsx","features/patientrecord/PatientRecordProblemsList.tsx","features/patientrecord/PatientRecordAppointmentsList.tsx","features/patientrecord/PatientRecordAdmissionsList.tsx","features/patientrecord/PatientRecordMedicationsList.tsx","features/patientrecord/PatientRecordInvestigationsList.tsx","features/patientrecord/PatientRecordMig.tsx","app/images/stethoscope.png","app/images/rash.png","app/images/medical-appointment.png","app/images/hospital-bed.png","app/images/file.png","app/images/medication.png","app/images/summary.png","app/images/yhcr.png","features/patientrecord/PatientRecordDocumentsList.tsx","features/common/MeditechQueryResponseFix.tsx","features/patientrecord/documents/DocumentQuestion.tsx","features/patientrecord/documents/DocumentQuestionGroup.tsx","features/patientrecord/documents/DocumentSection.tsx","features/patientrecord/PatientRecordDocumentView.tsx","features/patientrecord/common/DateTimeTile.tsx","features/patientrecord/PatientRecordAttendancesList.tsx","features/patientrecord/DataLoadStatusBadgeSummary.tsx","features/patientrecord/common/PatientRecordSummaryDisplay.tsx","features/patientrecord/PatientRecordSummaryProblems.tsx","features/patientrecord/PatientRecordSummaryAllergies.tsx","features/patientrecord/PatientRecordSummaryCaseloads.tsx","features/patientrecord/PatientRecordSummaryContacts.tsx","features/patientrecord/PatientRecordSummaryQueries.tsx","features/patientrecord/PatientRecordSummaryReferrals.tsx","features/patientrecord/PatientRecordSummary.tsx","app/api/yhcragent.ts","features/patientrecord/PatientRecordYHCR.tsx","features/patientrecord/PatientRecordPageLayout.tsx","app/images/ambulance.png","app/images/flask.png","app/images/doctor.png","features/patientrecord/yhcr/FhirLink.tsx","features/patientrecord/common/PatientRecordYhcrListDisplay.tsx","features/patientrecord/yhcr/YhcrAllergies.tsx","features/patientrecord/yhcr/YhcrAppointments.tsx","features/patientrecord/yhcr/YhcrConditions.tsx","features/patientrecord/yhcr/YhcrDocuments.tsx","features/patientrecord/yhcr/YhcrEncounters.tsx","features/patientrecord/yhcr/YhcrMedications.tsx","features/patientrecord/yhcr/YhcrProcedures.tsx","features/patientrecord/yhcr/YhcrPatient.tsx","features/patientrecord/PatientRecordYhcrFhir.tsx","features/patientrecord/PatientRecordYhcrPageLayout.tsx","app/images/surgery.png","features/PatientPriority/PriorityList.jsx","app/ProtectedRoute.tsx","features/user/RegisterForm.tsx","features/user/SetupPassword.tsx","features/common/Footer.tsx","app/azureauth/NavigationClient.tsx","app/AuthChecker.tsx","app/App.tsx","app/layouts/ScrollToTop.tsx","index.tsx","features/home/LaunchInContext.tsx","app/stores/userStore.ts","features/home/WhatsNew.tsx","features/user/LoginForm.tsx","app/azureauth/SignInButton.tsx","features/user/PasswordReset.tsx","features/home/PatientSearch.tsx","features/home/NavMenu.tsx","app/stores/commonStore.ts","app/stores/auditStore.ts","app/stores/rootStore.ts","app/azureauth/AuthConfig.tsx","features/patientrecord/DataLoadErrorAlert.tsx","features/common/LargeButton.tsx","features/home/HomePage.tsx"],"names":["axios","defaults","baseURL","process","DataLoadStatus","interceptors","request","use","config","token","window","localStorage","getItem","headers","Authorization","concat","error","Promise","reject","response","undefined","responseBody","data","requests","url","get","then","body","post","responseType","User","current","login","user","azurelogin","register","setuppassword","resetpassword","Admin","Organisations","filter","Users","RemoveRoleFromUser","values","AddRoleToUser","AddUser","EditUser","EditRole","role","EditOrganisation","organisation","AddOrganisation","AddRole","Roles","Practices","UserAccess","remove","CareHome","Inpatient","list","location","discharges","stats","Patient","Admissions","Attendances","Assessments","Allergies","Appointments","Casenotes","Caseloads","Contacts","Documents","Document","Observations","Problems","Queries","RecordInvestigations","Investigations","Referrals","Imaging","Medications","Get","GetNoAllergies","Mig","MigConsent","CacheDocument","PdfDocument","ConvertNhsToInternalIdentifier","Location","Search","ByName","Advanced","Audit","AddEntry","ByDate","EmergencyDepartment","Ems","Emergency","EmergencySimpleNotes","Scheduling","WaitingList","MainNavbar","_user$roles$0$userAcc","_user$roles$0$userAcc2","_user$roles$0$userAcc3","_rootStore$userStore","useContext","RootStoreContext","userStore","isLoggedIn","logout","_useState","useState","_useState2","_slicedToArray","isOpen","setIsOpen","_jsxs","Navbar","color","dark","expand","children","_jsx","Link","className","to","src","RHRLogo","style","height","NavbarToggler","onClick","Collapse","navbar","Nav","NavItem","roles","length","Fragment","some","a","name","UncontrolledDropdown","nav","inNavbar","DropdownToggle","caret","DropdownMenu","userAccess","NavLink","href","AdminStore","_class","_classCallCheck","_initializerDefineProperty","_descriptor","_descriptor2","_descriptor3","_descriptor4","_descriptor5","_descriptor6","_descriptor7","_descriptor8","_descriptor9","_descriptor10","_descriptor11","_descriptor12","_descriptor13","_descriptor14","_descriptor15","_descriptor16","_descriptor17","_descriptor18","_descriptor19","_descriptor20","_descriptor21","_descriptor22","_descriptor23","_descriptor24","_descriptor25","_createClass","key","this","users","slice","sort","b","displayName","email","practice","organisations","isActive","practices","_applyDecoratedDescriptor","prototype","observable","configurable","enumerable","writable","initializer","total","computed","Object","getOwnPropertyDescriptor","action","_this","agent","runInAction","_this2","_this3","text","filterUsers","defaultUsers","x","username","toLowerCase","jobTitle","manager","match","_this4","isUsersLoaded","_this5","_user$roles","startsWith","_x$organisation","_user$organisation","id","_this6","isRolesLoaded","forEach","push","_this7","roleloop","_role$organisation","roleName","userName","toast","info","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","azureUsername","split","console","log","t0","stop","_x","_x2","_x3","apply","arguments","_ref2","_callee2","_context2","toJS","contactNumber","_x4","_ref3","_callee3","_context3","dataFilter","_x5","_ref4","_callee4","_context4","code","_x6","createContext","observer","_adminStore$adminStat","_adminStore$adminStat2","adminStore","_Fragment","Container","fluid","Row","Col","xs","Card","CardBody","adminStats","ListGroup","flush","map","index","rootStore","refOrg","React","useRef","refPractice","refRole","refText","selectedUsers","setSelectedUsers","handleUserSearch","searchText","handleFilter","value","setItem","JSON","stringify","sortedUsers","u","r","useEffect","parse","_user$dateDeleted","dateDeleted","toString","width","htmlFor","ref","onChange","e","target","type","placeholder","org","selectedIndex","_role$organisation2","SmallButton","props","title","_GraphUserCheck","accessToken","emailAddress","bearer","isOnPremAccount","endpoint","options","Headers","indexOf","append","method","abrupt","fetch","json","catch","_GraphUserInvite","invitedUserEmailAddress","invitedUserDisplayName","inviteRedirectUrl","invitedUserType","sendInvitationMessage","_GraphUserDelete","userId","withRouter","_user$practice","setUser","_useState3","_useState4","azureUserSso","setAzureUserSso","_useMsal","useMsal","instance","accounts","search","URLSearchParams","acquireTokenSilent","_objectSpread","msalConfig","auth","account","GraphUserCheck","userType","confirm","mail","GraphUserDelete","prompt","GraphUserInvite","team","idx","required","UserEdit","FinalForm","onSubmit","_defineProperty","FORM_ERROR","initialValues","validate","errors","requiredMessage","render","_rootStore$userStore$","submitError","handleSubmit","form","submitting","pristine","Form","Field","input","meta","FormGroup","row","Label","for","size","md","touched","_ref5","_ref6","_ref7","_ref8","_ref9","_ref10","_ref11","_ref12","_ref13","defaultValue","_ref14","_user$roles$","disabled","Button","reset","_user$roles$2","handleRemove","UserCreate","_rootStore$userStore$2","_rootStore$userStore$3","component","_rootStore$userStore$4","_rootStore$userStore$5","p","CreateNewRole","addRole","CreateNewOrg","addOrganisation","setRole","setOrganisation","encodeURIComponent","date","Date","refUser","setDate","getDate","dateTo","dateFrom","_useState5","_useState6","selectedAuditItems","setSelectedAuditItems","_useState7","_useState8","setSelectedDefaultAuditItems","auditValues","fromDate","toDate","auditStore","byDate","sortedAudit","isAuditLoaded","audit","actionDate","toLocaleDateString","toLocaleTimeString","substring","description","replace","module","patientId","documentId","_adminStore$users","_adminStore$organisat","_adminStore$organisat2","_adminStore$roles","organisationsAdminRoot","practicesAdminRoot","rolesAdminRoot","usersAdminRoot","auditAdminRoot","useParams","loadOrganisations","loadUsers","loadPractices","loadRoleStats","pathname","has","page","visitId","addEntry","checkSelectedMenu","lg","xl","LargeButton","isSelected","badge","Switch","Route","exact","path","UserAdministration","sortedRoles","handleSelectUser","sortedOrganisations","sortedPractices","UserView","RoleList","RoleView","OrganisationsList","OrganisationView","AuditViewer","NoRoles","isAuthenticated","useIsAuthenticated","loading","useAccount","setName","Loader","CardTitle","CareHomeStore","carehomes","isCareHomesLoaded","carehomeStore","loadCapacity","colSpan","carehome","vacancies","vacancy","bedType","spare","CareHomeCapacityTable","NhsNumber","nhsNumber","substr","SearchStore","patients","isPatientsLoaded","isSearchPending","table","patient","isPending","isAnonymous","patientValues","systemIdentifier","isAnonymised","resolve","ShortDateTimeFormat","Intl","DateTimeFormat","year","month","day","hour","minute","hour12","format","ShortDateOnlyFormat","CompareDayMonthFormat","LongDateOnlyFormat","ShortTimeOnlyFormat","results","isLoading","loadError","searchStore","FontAwesomeIcon","spin","icon","faSpinner","DataLoadErrorAlert","_patient$nhsNumber","_patient$nhsNumber2","_patient$systemPublic","_patient$systemPublic2","_patient$contactDetai","_patient$contactDetai2","_patient$contactDetai3","_patient$contactDetai4","dateOfDeath","setPatient","systemInternalIdentifier","sm","minWidth","maxWidth","systemPublicIdentifier","forename","surname","gender","age","contactDetails","address","line1","line2","line3","postcode","dateOfBirth","state","stateSetter","patientNumber","addressLine1","postCode","auditDescription","actionName","practiceId","InputGroup","InputGroupAddon","addonType","vals","InpatientStore","_descriptor26","_descriptor27","_descriptor28","_descriptor29","_descriptor30","_descriptor31","_descriptor32","_descriptor33","_descriptor34","_descriptor35","_descriptor36","_descriptor37","_descriptor38","_descriptor39","_descriptor40","_descriptor41","_descriptor42","_descriptor43","_descriptor44","_descriptor45","_descriptor46","_descriptor47","_descriptor48","_descriptor49","_descriptor50","_descriptor51","_descriptor52","_descriptor53","_descriptor54","_descriptor55","_descriptor56","_descriptor57","_descriptor58","_descriptor59","_descriptor60","_descriptor61","_descriptor62","_descriptor63","_descriptor64","_descriptor65","_descriptor66","_descriptor67","_descriptor68","_descriptor69","_descriptor70","_descriptor71","_descriptor72","_descriptor73","_descriptor74","_descriptor75","_descriptor76","_descriptor77","_descriptor78","_descriptor79","document","query","sections","questions","s","question","q","queryType","array","getQuery","MedicallyFit","responseValue","status","jsonDate","all","covid","accepted","completed","rejected","toAction","pdd","pdd1","inpatients","bays","isLoaded","inpatientValues","inpatient","_toConsumableArray","Set","item","currentLocation","room","_x$patient","_x$patient$gpDetails","gpDetails","registeredPracticeCode","CarehomesInpatients","DefaultCarehomesInpatients","CarehomeStats","flags","cov19","inpatientValues2","inpatients2","filteredInpatients","finally","dataItemName","success","CarehomesFilter","IDTInpatients","IDTLocations","_referralDescription","assessments","pt","referrals","rf","procedure","_loop","i","idtReferral","requestDateTime","idtInfo","accountLinkId","notes","Notes","mffd","Mffd","exitStrategy","ExitStrategy","Pdd","dtoc","IDTStats","resultStatus","isDischargesLoaded","queries","grouping","dischargeSummary","nursingComments","additionalInformation","managementPlan","servicesArranged","f","locations","_this8","_this9","isPatientRecord","setInpatient","_this10","_this11","isContactsLoaded","contacts","_this12","isProblemsLoaded","patientIdentifier","visitIdentifier","problems","_this13","_this14","isAppointmentsLoaded","appointments","_this15","_this16","isImagingLoaded","imaging","_this17","isCaseloadsLoaded","caseloads","_this18","startDate","endDate","isInvestigationsLoaded","investigations","investigationValues","recordinvestigations","_this19","setMonth","getMonth","admissionDetails","admissionDateTime","_this20","isReferralsLoaded","_this21","isCarehomes","IsStatsLoaded","_this22","isObservationsLoaded","observations","_this23","isAllergiesLoaded","allergies","_this24","_this25","medications","isMedicationsLoaded","Identifier","_this26","_this27","isAdmissionsLoaded","admissions","_this28","isDocumentsLoaded","documents","_this29","docId","isDocumentLoaded","_this30","isMigLoaded","mig","content","inpatientStore","urlParams","setResults","setIsLoading","setError","IsAnonymous","searchParams","setSearchParams","resp","err","PatientNameForm","PatientResults","handleSelectPatient","toggle","setToggle","auditEntry","backgroundColor","CareHomeResults","getPatient","PatientRecordStore","isPatientLoaded","loadPatientAllergies","_patient$gpDetails","_patient$gpDetails$re","_patient$gpDetails$re2","patientRecordStore","setAllergies","registeredPracticeContactDetails","allergy","UncontrolledPopover","trigger","placement","PopoverHeader","PopoverBody","lineHeight","ListGroupItem","addedDateTime","comment","menuItems","pId","vId","getPageRoute","routePath","getPageQuery","menuItem","displayOnMenu","activeClassName","route","whiteSpace","imageSrc","alt","DataLoadStatusBadge","_filters","_sorts","handleFilterFunction","handleSortFunction","filters","setFilters","sorts","setSorts","specialType","arr","label","accessPath","valueIndex","getElementById","filtered","recordsPerPage","currentPage","Math","ceil","pages","setPages","records","perPage","handlePagingClick","min","max","setArr","createArray","faAngleDoubleLeft","faAngleLeft","faAngleRight","faAngleDoubleRight","_agentCall","_displayTemplate","_ref$recordsPerPage","setData","filteredData","setFilteredData","filteredDataCount","setFilteredDataCount","pagingSlice","setPagingSlice","_useState9","_useState10","setCurrentPage","_useState11","_useState12","_useState13","NotAttempted","_useState14","setStatus","loadData","Loading","Successful","ex","Failed","d","resolvePath","object","reduce","o","handleClinicianFilterFunction","dataItem","handleDateFilterFunction","dt","setFullYear","getFullYear","pageNumber","PatientRecordListFilter","element","selectedOptions","dataset","direction","aValue","bValue","String","getTime","Number","localeCompare","PatientRecordListCounts","PatientRecordListPaging","PatientRecordListDisplay","marginTop","reaction","severity","problem","primaryCode","includes","statusToBadge","newStatus","foreground","background","appointment","_appointment$clinicia","_appointment$clinicia2","_appointment$referral","_appointment$referral2","_appointment$location","_appointment$location2","_appointment$referral3","_appointment$referral4","querySelectorAll","el","classList","querySelector","add","onAppointmentClick","appointmentDateTime","plannedDuration","clinician","nickname","referralDetails","specialty","reason","statusToVerb","admission","_admission$admissionD","_admission$admissionD2","_admission$management","_admission$admissionD3","_admission$admissionD4","_admission$admissionD5","_admission$admissionD6","_admission$admissionD7","_admission$admissionD8","_admission$admissionD9","_admission$admissionD10","_admission$admissionD11","_admission$admissionD12","_admission$admissionD13","_admission$admissionD14","_admission$admissionD15","_admission$admissionD16","_admission$admissionD17","_admission$admissionD18","_admission$admissionD19","_admission$admissionD20","_admission$dischargeD","_admission$dischargeD2","_admission$dischargeD3","_admission$dischargeD4","_admission$dischargeD5","onAdmissionClick","managementIntent","priority","attendingClinician","primarySpecialty","dischargeDetails","destination","dischargeDateTime","medication","_medication$medicineD","_medication$medicineD2","_medication$medicineD3","_medication$medicineD4","_medication$medicineD5","_medication$medicineD6","medicineDetails","dose","units","administrationRoute","schedule","startDateTime","CardHeader","stopDateTime","lastAdmin","nextAdmin","addDays","setState","loadPatientInvestigations","DateRange","ranges","selection","investigationSets","faMinus","faPlus","faHeartbeat","investigation","rows","items","resultDateTime","faChevronDown","UncontrolledCollapse","toggler","Table","striped","bordered","index1","uom","selectedTab","setSelectedTab","selectedTabHtml","setSelectedTabHtml","migList","migRequest","practiceCode","displayTemplate","dangerouslySetInnerHTML","__html","history","useHistory","blob","URL","createObjectURL","Blob","open","DownloadDocument","visit","doc","_document$author$name","author","faUserMd","saveDateTime","_step","matches","matchAll","_iterator","_createForOfIteratorHelper","n","done","result","_result","fontName","fontFamily","fontSize","fontWeight","replaceText","replaceAll","trim","fix","groupingName","subType","MeditechQueryResponseFix","sectionName","DocumentQuestion","section","questionGroups","DocumentQuestionGroup","loadPatientDocument","DocumentSection","attendance","_attendance$admission","_attendance$discharge","_attendance$complaint","_attendance$admission2","_attendance$admission3","DateTimeTile","complaint","source","outcome","DataLoadStatusBadgeSummary","faEllipsisH","faCheckDouble","faTimes","_title","borderRadius","faCircleNotch","PatientRecordSummaryDisplay","loader","_item$problem","_item$type","_item$relationship","_item$name","_item$name2","_item$contactDetails","_item$contactDetails2","_item$contactDetails3","_item$contactDetails4","_item$contactDetails5","_item$contactDetails6","_item$contactDetails7","_item$contactDetails8","relationship","houseNumberName","line4","landlineNumber","otherNumber","QuerySets","faShieldAlt","faExternalLinkSquareAlt","faBug","faFistRaised","faCannabis","faRunning","faBars","faPills","faClock","qs","querySet","_query$query","responseDateTime","requestComment","_patient$careHome","_patient$careHome2","_patient$religion","_patient$maritalStatu","_patient$maritalStatu2","_patient$ethnicity","_patient$ethnicity2","_patient$language","_patient$ethnicity3","_patient$language2","_patient$ethnicity4","subjectPronoun","possessivePronoun","tense","borderLeft","careHome","religion","maritalStatus","ethnicity","language","PatientRecordSummaryAllergies","PatientRecordSummaryProblems","PatientRecordSummaryContacts","PatientRecordSummaryQueries","PatientRecordSummaryCaseloads","PatientRecordSummaryReferrals","yhcrJwt","yhcrJwtNhs","tknRequestDetails","dtJwtExpires","withBearer","h","headerDocuments","getToken","req","Jwt","tkn","expires_in","updateToken","_post","postNoHeader","_postNoHeader","resource","_resource","uri","obj","_document","_x7","_x8","t","access_token","paging","das","renew","exists","isValid","valid","expires","validateYhcrJwt","_availability$detail","availability","setAvailability","_patientRecordStore$p","_patientRecordStore$p2","yhcragent","_patientRecordStore$p3","_patientRecordStore$p4","nhs","detail","_d$organization","organization","dataProviders","prefix","_r$userAccess","ua","summaryImg","PatientRecordSummary","_r$userAccess2","problemsImg","PatientRecordProblemsList","_r$userAccess3","allergiesImg","PatientRecordAllergiesList","_r$userAccess4","appointmentsImg","PatientRecordAppointmentsList","_r$userAccess5","admissionImg","PatientRecordAdmissionsList","_r$userAccess6","PatientRecordAttendancesList","_r$userAccess7","medicationImg","PatientRecordMedicationsList","documentImg","PatientRecordDocumentView","_r$userAccess8","PatientRecordDocumentsList","_r$userAccess9","PatientRecordInvestigationsList","_r$userAccess10","yhcrImg","PatientRecordYHCR","_r$userAccess11","PatientRecordMig","mis","mi","PatientRecordNavBar","PatientRecordHeader","countPerPage","clickEvent","pageCount","isInteger","toFixed","Array","from","v","PaginationItem","linkHtml","_data$total","_data$total2","linkClick","_data$id","includedOrganisations","_data$entry","entry","_e$search$mode","mode","_e$resource$meta$tag$","tag","_t$system","system","display","failedOrganisations","_data$entry2","_e$search$mode2","_e$resource$meta$tag$2","_e$resource$meta$tag$3","_t$system2","FhirLink","_allergy$code","_allergy$code$coding","_allergy$reaction","_allergy$onsetDateTim","_allergy$assertedDate","_allergy$asserter$dis","_allergy$clinicalStat","_allergy$clinicalStat2","_allergy$verification","coding","_coding$display","manifestation","cIndex","_coding$display2","onsetDateTime","assertedDate","asserter","Badge","clinicalStatus","verificationStatus","_appointment$extensio","_appointment$appointm","_appointment$start","_appointment$start2","_appointment$end","_appointment$end2","_appointment$status","_appointment$extensio2","getParticipants","participant","_a$type$0$coding$0$di","_s$coding$0$display","serviceType","_s$coding$0$display2","extension","_e$url","valueCode","appointmentType","_t$code","_t$code2","_p$actor$display3","_p$required2","actor","_p$actor$display2","_p$required","_p$actor$display","faMapMarker","start","end","_e$url2","_valueCodeableConcept","valueCodeableConcept","_condition$code$codin","_condition$code","_condition$code$text","_condition$assertedDa","_condition$asserter","_condition$asserter$d","_condition$clinicalSt","_condition$clinicalSt2","condition","_t$display","category","_document$type$coding","_document$type","_document$type$text","_document$description","_document$docStatus","_document$docStatus2","_document$content$0$a","docRequest","attachment","pop","fileURL","onDocumentClick","_a$display","docStatus","_encounter$extension","_encounter$class","_encounter$class$disp","_encounter$hospitaliz","_encounter$hospitaliz2","_encounter$hospitaliz3","_encounter$hospitaliz4","_encounter$hospitaliz5","_encounter$hospitaliz6","_encounter$hospitaliz7","_encounter$hospitaliz8","_encounter$hospitaliz9","_encounter$hospitaliz10","_encounter$location","_encounter$participan","_encounter$period$sta","_encounter$period$sta2","_encounter$period$end","_encounter$period$end2","_encounter$status","_encounter$status2","_encounter$priority","encounter","getIndividualType","_participant$individu","_participant$type","_participant$type$","_participant$type$$co","individual","tc","ci","_tc$display","getLocation","_location$location$di","_location$status","c","_c$display","class","hospitalization","admitSource","_c$display2","_c$display3","_e$url3","_c$display4","dischargeDisposition","_c$display5","l","period","_p$display","_p$display2","_p$display3","_medication$medicatio","_medication$medicatio2","_medication$dosage","_medication$dateAsser","_medication$taken","_medication$status","_medication$status2","medicationReference","dosage","dIndex","_dosage$text","_dosage$route","_dosage$patientInstru","_dosage$patientInstru2","adminRoute","aIndex","_adminRoute$display","patientInstruction","dateAsserted","taken","_procedure$category","_procedure$category$c","_procedure$bodySite","_procedure$performedD","_procedure$status","_procedure$status2","_procedure$status3","cat","cati","_cat$display","bodySite","bs","bsi","bsc","bsci","_bsc$display","performedDateTime","performer","ai","_a$actor$display","PatientRecordYhcrListDisplay","searchGuid","pageOffset","_data$resource","_data$resource$meta","_data$resource2","_data$resource2$meta","_data$resource2$meta$","_data$resource$meta2","_data$resource$meta2$","YhcrAllergies","YhcrAppointments","YhcrConditions","YhcrDocuments","YhcrEncounters","YhcrMedications","YhcrProcedures","YhcrPatient","tIndex","_tag$display","lastUpdated","PatientRecordYhcrFhir","PriorityList","dateTimeFormatter","timeOnly","j","di","PatientLinkId","SystemInternalIdentifier","Value","SystemPublicIdentifier","Query","Id","message","border","zIndex","top","left","ResponseValue","_d$SystemPublicIdenti","_d$Patient","_d$Patient$Name","_d$Patient2","_d$Patient2$Name","Name","Forename","Surname","_query$Query","_d$CurrentLocation$Lo","ResponseDateTime","CurrentLocation","HomePage","AdminHomepage","CareHomeCapacityMain","PatientRecordPageLayout","PatientPriority","PatientRecordYhcrPageLayout","CarehomesMainLayout","PatientSearch","RegisterForm","SetupPassword","Footer","CustomNavigationClient","_NavigationClient","_inherits","_super","_createSuper","call","_navigateInternal","relativePath","origin","noHistory","NavigationClient","commonStore","isTokenValid","pca","_rootStore$commonStor","setAppLoaded","appLoaded","getUser","navigationClient","setNavigationClient","MsalProvider","ToastContainer","autoClose","position","AuthChecker","LaunchInContext","ProtectedRoute","PasswordReset","scrollTo","msalInstance","PublicClientApplication","getAllAccounts","setActiveAccount","addEventCallback","event","eventType","EventType","LOGIN_SUCCESS","payload","createBrowserHistory","ReactDOM","Router","ScrollToTop","App","feature","sys","Buffer","UserStore","sent","setToken","removeItem","sessionStorage","clear","_callee5","_context5","WhatsNew","overflowY","maxHeight","LoginForm","azureLogin","Azurelogin","redirectAfterLogin","UnauthenticatedTemplate","SignInButton","AuthenticatedTemplate","loginRedirect","loginRequest","searchFor","toUpperCase","isNaN","padStart","parseInt","CardFooter","NavMenu","faSearch","CommonStore","jwt","checkPerformed","check","jwt_decode","exp","now","validUntil","AuditStore","auditItems","configure","enforceActions","RootStore","clientId","authority","redirectUri","scopes","statusText","Alert"],"mappings":"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","file":"static/js/main.c99d42b2.chunk.js","sourcesContent":["import axios, { AxiosResponse } from 'axios';\r\nimport { IUser, IRole, IRoleValues, ISetupPasswordForm, IAddOrganisationForm, IAddRoleValues, IUserAccess, IAzureUsername, IRemoveValues, IEditRoleValues, IEditOrganisationValues, IPractice, IUserFetch } from '../models/user';\r\nimport { IUserFormValues, IOrganisation } from '../models/user';\r\nimport { IInpatient, IInpatientValues, IPatientValues, VisitAdmission, PatientAllergy, VisitAppointment, PatientCasenoteInformation, PersonContactReference, PatientProblem, VisitRequest, PatientObservations, ILocation, IInvestigationValues, IMedicationsValues, IMedication, Investigation, IdDescriptionPair, PatientValues, MigSubmitValues, MigResponse, DocumentInformation, DivisionStats, IContactValues, IDocumentValues, DocumentRows, RecordInvestigation, DocumentReference, DocumentQueryInformation, RhrDocument, Queries } from '../models/inpatient';\r\nimport { IOrganisationValues } from '../models/admin';\r\nimport { ICareHomeCapacity } from '../models/carehomes';\r\nimport { AddEntry, AuditValues, AuditItem } from '../models/audit';\r\nimport { ISearchSubmitValues } from '../models/search';\r\nimport { Patient as PatientSearch } from '../models/inpatient';\r\nimport { EmergencyQueryValues, EmsAlert, SimpleDocumentReference, VisitEmergencyDepartment } from '../models/emergencydepartment';\r\nimport { VisitAppointmentWithPatient, WaitingListQueryValues } from '../models/scheduling';\r\n\r\naxios.defaults.baseURL = process.env.REACT_APP_API_BASE_URI;\r\n\r\nexport enum DataLoadStatus {\r\n NotAttempted,\r\n Loading,\r\n Successful,\r\n Failed\r\n }\r\n\r\naxios.interceptors.request.use((config) => {\r\n const token = window.localStorage.getItem('jwt');\r\n if (token) config.headers.Authorization = `Bearer ${token}`;\r\n return config;\r\n}, error => Promise.reject(error))\r\n\r\naxios.interceptors.response.use(undefined, (error) => {\r\n throw error.response || error;\r\n})\r\n\r\nconst responseBody = (response: AxiosResponse) => response.data;\r\n\r\nconst requests = {\r\n get: (url: string) => axios.get(url).then(responseBody),\r\n post: (url: string, body: {}) => axios.post(url, body, { headers: { 'content-type': 'application/json' } }).then(responseBody),\r\n put: (url: string, body: {}) => axios.put(url, body).then(responseBody),\r\n del: (url: string) => axios.delete(url).then(responseBody),\r\n image: (url: string, body: {}) => axios.post(url, body, { responseType: 'arraybuffer', headers: { 'content-type': 'application/json' } }).then(responseBody) \r\n}\r\n\r\nconst User = {\r\n current: (): Promise => requests.get('/user/currentUser'),\r\n login: (user: IUserFormValues): Promise => requests.post('/user/login', user),\r\n azurelogin: (user: IAzureUsername): Promise => requests.post('/user/azurelogin', user),\r\n register: (user: IUserFormValues): Promise => requests.post('/user/register', user),\r\n setuppassword: (user: ISetupPasswordForm): Promise => requests.post('/user/setuppassword', user),\r\n resetpassword: (user: ISetupPasswordForm): Promise => requests.post('/user/resetpassword', user)\r\n}\r\n\r\nconst Admin = {\r\n Organisations: (filter : IOrganisationValues) : Promise => requests.post('/admin/organisations', filter ), \r\n Users: (filter: IOrganisationValues): Promise => requests.post('/admin/users', filter),\r\n User: (filter: IUserFetch): Promise => requests.post('/admin/singleuser', filter),\r\n RemoveRoleFromUser: (values: IRoleValues) : Promise => requests.post('/admin/removerolefromuser', values),\r\n AddRoleToUser: (values: IRoleValues): Promise => requests.post('/admin/addroletouser', values),\r\n AddUser: (user: IUserFormValues): Promise => requests.post('/user/add', user),\r\n EditUser: (user: IUserFormValues): Promise => requests.post('/user/edit', user),\r\n EditRole: (role: IEditRoleValues): Promise => requests.post('/admin/edit', role),\r\n EditOrganisation: (organisation: IEditOrganisationValues): Promise => requests.post('/admin/edit', organisation),\r\n AddOrganisation: (organisation: IAddOrganisationForm): Promise => requests.post('/admin/addorganisation', organisation),\r\n AddRole: (role: IAddRoleValues): Promise => requests.post('/admin/addrole', role),\r\n Roles: (): Promise => requests.get('/admin/roles'),\r\n Practices: (): Promise => requests.get('/admin/practices'),\r\n UserAccess: (): Promise => requests.get('/admin/useraccess'),\r\n remove: (user: IRemoveValues): Promise => requests.post('/user/remove', user)\r\n}\r\n\r\nconst CareHome = {\r\n get: (): Promise => requests.get('/carehomes/get')\r\n}\r\n\r\nconst Inpatient = {\r\n list: (location: IInpatientValues): Promise => requests.post('/bulkdata/inpatients', location),\r\n get : (values : IInpatientValues) : Promise => requests.post('/bulkdata/inpatient', values),\r\n discharges: (values: IInpatientValues): Promise => requests.post('/bulkdata/recentdischarges', values),\r\n stats: (values: IInpatientValues): Promise => requests.post('/bulkdata/locationstats', values)\r\n}\r\nconst Patient = {\r\n Admissions: (values: IPatientValues): Promise => requests.post('/patient/admissions', values),\r\n Attendances: (values: IPatientValues): Promise => requests.post('/patient/emergency', values),\r\n Assessments: (values: {}): Promise => requests.post('/patient/assessments', values),\r\n Allergies: (values: IPatientValues): Promise => requests.post('/patient/allergies', values),\r\n Appointments: (values: IPatientValues): Promise => requests.post('/patient/appointments', values),\r\n Casenotes: (values: IPatientValues): Promise => requests.post('/patient/casenotes', values),\r\n Caseloads: (values: IPatientValues): Promise => requests.post('/patient/caseloads', values),\r\n Contacts: (values: IContactValues): Promise => requests.post('/patient/contacts', values),\r\n Documents: (values: IPatientValues): Promise => requests.post('/patient/documents', values),\r\n Document: (values: IPatientValues): Promise => requests.post('/patient/document', values),\r\n Observations: (values: IPatientValues): Promise => requests.post('/patient/observations', values),\r\n Problems: (values: IPatientValues): Promise => requests.post('/patient/problems', values),\r\n Queries: (values: IPatientValues): Promise => requests.post('/patient/queries', values),\r\n RecordInvestigations: (values: IInvestigationValues): Promise => requests.post('/patient/recordinvestigations', values),\r\n Investigations: (values: IInvestigationValues): Promise => requests.post('/patient/investigations', values),\r\n Referrals: (values: IPatientValues): Promise => requests.post('/patient/referrals', values),\r\n Imaging: (values: IPatientValues): Promise => requests.post('/patient/imaging', values),\r\n Medications: (values: IMedicationsValues): Promise => requests.post('/patient/medications', values),\r\n Get: (values: PatientValues): Promise => requests.post('/patient/get', values),\r\n GetNoAllergies: (values: PatientValues): Promise => requests.post('/patient/getNoAllergies', values),\r\n Mig: (values: MigSubmitValues): Promise => requests.post('/patient/mig', values),\r\n MigConsent: (values: MigSubmitValues): Promise => requests.post('/patient/mig/consent', values),\r\n CacheDocument: (values: IDocumentValues): Promise => requests.post('/patient/ScannedDocumentsByDocumentId', values),\r\n PdfDocument: (values: IDocumentValues): Promise => requests.image('/patient/DocumentGet', values),\r\n ConvertNhsToInternalIdentifier: (values: PatientValues) : Promise => requests.post('/patient/convertNhsToInternalIdentifier', values)\r\n}\r\n\r\nconst Location = {\r\n list: (): Promise => requests.get('/bulkdata/locations')\r\n}\r\n\r\nconst Search = {\r\n ByName: (values: ISearchSubmitValues): Promise => requests.post('/patient/search', values),\r\n Advanced: (values: ISearchSubmitValues): Promise => requests.post('/patient/searchAdvanced', values)\r\n}\r\n\r\nconst Audit = {\r\n AddEntry: (values: AddEntry): Promise => requests.post('/audit/addentry', values),\r\n ByDate: (values: AuditValues): Promise => requests.post('/audit/bydate', values),\r\n}\r\n\r\nconst EmergencyDepartment = {\r\n Ems: (): Promise => requests.get('/emergencydepartment/ems'),\r\n Emergency: (values : EmergencyQueryValues): Promise => requests.post('/bulkdata/emergency', values),\r\n EmergencySimpleNotes: (): Promise => requests.post('/bulkdata/emergencysimplenotes', {})\r\n}\r\n\r\nconst Scheduling = {\r\n WaitingList: (values: WaitingListQueryValues): Promise => requests.post('/scheduling/waitinglist', values)\r\n}\r\n\r\nexport default {\r\n User,\r\n Inpatient,\r\n Admin,\r\n Patient,\r\n Location,\r\n CareHome,\r\n Audit,\r\n Search,\r\n EmergencyDepartment,\r\n Scheduling\r\n}","export default \"data:image/png;base64,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\"","import React, { useState, useContext, Fragment } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { Collapse, Navbar, NavbarToggler, Nav, NavItem, NavLink, UncontrolledDropdown, DropdownToggle, DropdownMenu } from 'reactstrap';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport RHRLogo from '../../app/images/rhr-logo-sm.png';\r\n\r\nconst MainNavbar = () => {\r\n const rootStore = useContext(RootStoreContext);\r\n const { isLoggedIn, user, logout, } = rootStore.userStore;\r\n const [isOpen, setIsOpen] = useState(false); \r\n const toggle = () => setIsOpen(!isOpen);\r\n \r\n return (\r\n \r\n \r\n \r\n \r\n {user && (\r\n \r\n )}\r\n {!isLoggedIn &&\r\n \r\n }\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default MainNavbar;","import { observable, computed, action, runInAction, toJS } from 'mobx'\r\nimport { IOrganisation, IRole,IRoleValues, IUserFormValues, IAddOrganisationForm, IAddRoleValues, IEditRoleValues, IEditOrganisationValues, IPractice } from \"../models/user\"\r\nimport { IUser} from '../models/user'\r\nimport agent from \"../api/agent\"\r\nimport { toast } from 'react-toastify';\r\nimport { createContext } from 'react';\r\nimport { IOrganisationValues, AdminStats } from '../models/admin';\r\n\r\nclass AdminStore {\r\n\r\n @observable defaultUsers: IUser[] = [];\r\n @observable organisations: IOrganisation[] = [];\r\n @observable practices: IPractice[] = [];\r\n @observable adminStats: AdminStats = {total:null}\r\n @observable users: IUser[] = [];\r\n @observable usersAll: IUser[] = [];\r\n @observable roles: IRole[] = [];\r\n @observable isRolesLoaded = false;\r\n @observable isPracticesLoaded = false;\r\n @observable isUsersLoaded = false;\r\n\r\n @computed get sortedUsers() {\r\n return this.users.slice().sort((a,b) => `${(a.displayName || a.email)} ${(a.organisation.name || a.practice.name)}` >= `${(b.displayName || b.email)} ${(b.organisation.name || b.practice.name)}` ? 1 : -1)\r\n }\r\n @computed get sortedOrganisations() {\r\n return this.organisations.slice().filter(a => a.isActive).sort((a,b) => a.name >= b.name ? 1 : -1)\r\n }\r\n @computed get sortedPractices() {\r\n return this.practices.slice().filter(a => a.isActive).sort((a,b) => a.name >= b.name ? 1 : -1)\r\n }\r\n @computed get sortedRoles() {\r\n return this.roles.slice().sort((a,b) => a.name >= b.name ? 1 : -1)\r\n }\r\n\r\n @action loadOrganisations = (values: IOrganisationValues) => {\r\n\r\n agent.Admin.Organisations(values)\r\n .then(organisations => {\r\n runInAction(() => {\r\n this.organisations = organisations;\r\n })\r\n })\r\n }\r\n\r\n @action loadPractices = () => {\r\n\r\n agent.Admin.Practices()\r\n .then(practices => {\r\n runInAction(() => {\r\n this.practices = practices;\r\n })\r\n })\r\n \r\n }\r\n @action searchText = (text: string, user: IUser) => {\r\n if (text) {\r\n this.filterUsers(this.defaultUsers, user);\r\n this.users = this.users.slice().filter(x =>\r\n (x.username.toLowerCase() +\r\n (x.displayName && x.displayName.toLowerCase()) +\r\n (x.email && x.email.toLowerCase()) +\r\n (x.jobTitle && x.jobTitle.toLowerCase()) +\r\n (x.manager && x.manager.toLowerCase())).match(text.toLowerCase()))\r\n } else {\r\n this.filterUsers(this.defaultUsers, user);\r\n }\r\n }\r\n @action loadUsers = (values: IOrganisationValues, user: IUser) => {\r\n\r\n agent.Admin.Users(values)\r\n .then(users => {\r\n runInAction(() => {\r\n this.filterUsers(users, user);\r\n this.defaultUsers = users;\r\n this.isUsersLoaded = true;\r\n })\r\n })\r\n }\r\n @action filterUsers = (users:IUser[], user: IUser) => {\r\n if (user.roles?.some(x => x.name.startsWith('Business Unit Admin'))) {\r\n this.users = users.filter(x => x.roles.length && x.organisation?.id === user.organisation?.id)\r\n } else {\r\n // System Admin Only\r\n this.users = users\r\n }\r\n }\r\n @action loadRoles = (organisation: string) => {\r\n this.roles = [];\r\n this.isRolesLoaded = false;\r\n agent.Admin.Roles()\r\n .then(roles => {\r\n roles.forEach((role) => {\r\n runInAction(() => {\r\n if (role.organisation !== null) {\r\n if (role.organisation.name === organisation) {\r\n this.roles.push(role);\r\n }\r\n }\r\n })\r\n runInAction(() => {\r\n this.isRolesLoaded = true;\r\n }) \r\n })\r\n })\r\n }\r\n @action loadRoleStats = (user) => {\r\n let roleloop = []\r\n agent.Admin.Roles()\r\n .then(roles => {\r\n roles.forEach((role) => {\r\n if (user.organisation.name === role.organisation?.name) {\r\n roleloop.push(role);\r\n } \r\n })\r\n runInAction(() => {\r\n this.roles = user.roles.some(a => a.name === 'System Admin') ? roles : roleloop;\r\n })\r\n })\r\n }\r\n\r\n \r\n @action removeRole = (values: IRole, username:string) => {\r\n let role: IRoleValues = { roleName : values.name , userName : username}\r\n agent.Admin.RemoveRoleFromUser(role).then(() => {\r\n toast.info(`Removed user \"${username}\" from role \"${values.name}\" successfully.`)\r\n })\r\n }\r\n @action addUserToRole = (values: IRoleValues) => {\r\n agent.Admin.AddRoleToUser(values).then(() => {\r\n toast.info('Successfully added user to role');\r\n });\r\n }\r\n @action addRole = (values: IAddRoleValues) => {\r\n agent.Admin.AddRole(values).then(() => {\r\n toast.info(`Role \"${values.name}\" successfully created.`)\r\n });\r\n }\r\n @action addOrganisation = (values: IAddOrganisationForm) => {\r\n agent.Admin.AddOrganisation(values).then(() => {\r\n toast.info(`Organisation \"${values.name}\" successfully created.`)\r\n });\r\n }\r\n @action AddUser = async (values: IUserFormValues, organisation: string, practice: string ) => {\r\n try {\r\n if (!values.organisation) {\r\n values.organisation = organisation;\r\n }\r\n if (practice) {\r\n values.practice = practice;\r\n }\r\n values.azureUsername = values.email;\r\n values.username = values.email.split('@')[0];\r\n\r\n console.log(values);\r\n await agent.Admin.AddUser(values).then(() => {\r\n toast.info(`Successfully added \"${values.displayName}\" as a user.`);\r\n console.log(values);\r\n });\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n }\r\n @action EditUser = async (values: IUserFormValues) => {\r\n // This is no longer used\r\n console.log(toJS(values));\r\n let user: IUserFormValues = {\r\n username: values.username,\r\n displayName: values.displayName,\r\n email: values.email,\r\n contactNumber: values.contactNumber,\r\n jobTitle: values.jobTitle,\r\n manager: values.manager,\r\n roleName: values.roleName,\r\n organisation: values.organisation,\r\n azureUsername: values.azureUsername\r\n }\r\n try {\r\n await agent.Admin.EditUser(user);\r\n }\r\n catch (error) {\r\n toast.error(error);\r\n throw error;\r\n }\r\n }\r\n @action EditRole = async (values: IEditRoleValues) => {\r\n console.log(toJS(values));\r\n let role: IEditRoleValues = {\r\n id: values.id,\r\n name: values.name,\r\n dataFilter: values.dataFilter,\r\n organisation: values.organisation\r\n }\r\n try {\r\n await agent.Admin.EditRole(role);\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n }\r\n @action EditOrganisation = async (values: IEditOrganisationValues) => {\r\n console.log(toJS(values));\r\n let organisation: IEditOrganisationValues = {\r\n code: values.code,\r\n name: values.name, \r\n }\r\n try {\r\n await agent.Admin.EditOrganisation(organisation);\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n }\r\n}\r\n\r\nexport default createContext(new AdminStore());","import React, { useContext } from \"react\";\r\nimport { ListGroup, Row, CardBody, Col, Card, Container, CardHeader,} from \"reactstrap\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { RouteComponentProps } from \"react-router\";\r\nimport { IOrganisation } from \"../../app/models/user\";\r\nimport AdminStore from '../../app/stores/adminStore';\r\nimport { Link } from 'react-router-dom';\r\n\r\ninterface IProps {\r\n organisations: IOrganisation[];\r\n toggle;\r\n}\r\n\r\nconst OrganisationsList: React.FC> = ({organisations}) => {\r\n const adminStore = useContext(AdminStore) \r\n \r\n return (\r\n <>\r\n \r\n

\r\n Organisation Administration\r\n

\r\n \r\n \r\n \r\n \r\n {adminStore.adminStats?.organisation?.data.length} Organisations found.\r\n \r\n \r\n {organisations.map((organisation: IOrganisation, index) => ( \r\n \r\n
\r\n {organisation.name} \r\n
\r\n \r\n ))}\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\nexport default observer(OrganisationsList);","import React, { useContext, useEffect, useState } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { ListGroup, Row, Col, Card, Container, CardBody } from 'reactstrap';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { IUser, IRole, IOrganisation, IPractice } from \"../../app/models/user\";\r\nimport AdminStore from '../../app/stores/adminStore';\r\nimport { RootStoreContext } from 'app/stores/rootStore';\r\n\r\n\r\ninterface IProps {\r\n users: IUser[],\r\n handleSelectUser,\r\n roles: IRole[],\r\n organisations: IOrganisation[],\r\n practices?: IPractice[]\r\n}\r\n\r\nconst UserAdministration: React.FC = ({ roles, organisations, practices }) => {\r\n const adminStore = useContext(AdminStore)\r\n const rootStore = useContext(RootStoreContext);\r\n const refOrg = React.useRef(null);\r\n const refPractice = React.useRef(null);\r\n const refRole = React.useRef(null);\r\n const refText = React.useRef(null);\r\n const [selectedUsers, setSelectedUsers] = useState(null);\r\n\r\n const handleUserSearch = (searchText: string) => adminStore.searchText(searchText, rootStore.userStore.user); \r\n const handleFilter = () => {\r\n let organisation: string = (refOrg.current && refOrg.current.value) || \"\";\r\n let role: string = (refRole.current && refRole.current.value) || \"\";\r\n let practice: string = (refPractice.current && refPractice.current.value) || \"\";\r\n \r\n localStorage.setItem(\"rhr_UserAdminFilter\", JSON.stringify({ organisation, role, practice }));\r\n\r\n if (organisation === \"\" && role === \"\" && practice === \"\") \r\n setSelectedUsers(adminStore.sortedUsers)\r\n else\r\n setSelectedUsers(\r\n adminStore.sortedUsers.filter(u =>\r\n (organisation ? u.organisation.name === organisation : true) &&\r\n (practice ? u.practice && u.practice.name === practice : true) &&\r\n (role ? u.roles.filter(r => r.name === role).length > 0 : true)\r\n )\r\n )\r\n }\r\n\r\n const handleReset = () => {\r\n if (refText.current) refText.current.value = \"\";\r\n handleUserSearch(\"\");\r\n if (refOrg.current) refOrg.current.selectedIndex = 0;\r\n if (refPractice.current) refPractice.current.selectedIndex = 0;\r\n if (refRole.current) refRole.current.selectedIndex = 0;\r\n handleFilter();\r\n }\r\n\r\n useEffect(() => {\r\n setSelectedUsers(adminStore.sortedUsers) \r\n if (localStorage.getItem(\"rhr_UserAdminFilter\")) {\r\n if (refOrg.current) refOrg.current.value = JSON.parse(localStorage.getItem(\"rhr_UserAdminFilter\")).organisation;\r\n if (refPractice.current) refPractice.current.value = JSON.parse(localStorage.getItem(\"rhr_UserAdminFilter\")).practice;\r\n if (refRole.current) refRole.current.value = JSON.parse(localStorage.getItem(\"rhr_UserAdminFilter\")).role;\r\n handleFilter();\r\n }\r\n \r\n }, [adminStore.users])\r\n\r\n return (\r\n \r\n

\r\n User Administration\r\n

\r\n \r\n \r\n \r\n \r\n {selectedUsers && selectedUsers.length} users found.\r\n \r\n \r\n {selectedUsers && selectedUsers.map((user: IUser, index: number) => (\r\n \r\n
 
\r\n
\r\n {user.displayName || user.email}\r\n
\r\n {(user.practice ? user.practice.name : user.organisation.name)}\r\n {user.roles.length ? (\r\n <>  - {user.roles.map((role: IRole, index: number) => {role.name} )}\r\n ) : (\r\n <>  - No role\r\n )}\r\n
\r\n
\r\n \r\n ))}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n handleUserSearch(e.target.value)} type=\"text\" placeholder=\"Search name, email, manager etc\" />\r\n
\r\n {(rootStore.userStore.user as IUser).roles.some(a => a.name === 'System Admin') && (\r\n <>\r\n \r\n \r\n
\r\n \r\n )}\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n )\r\n}\r\nexport default observer(UserAdministration)","import React, { useContext } from \"react\";\r\nimport { ListGroup, CardBody, Row, Col, Card, Container } from 'reactstrap';\r\nimport { Link } from 'react-router-dom';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { IRole } from \"../../app/models/user\";\r\nimport AdminStore from '../../app/stores/adminStore';\r\nimport { RootStoreContext } from \"../../app/stores/rootStore\";\r\n\r\ninterface IProps { \r\n roles: IRole[]\r\n}\r\n\r\nconst RoleList: React.FC = ({ roles }) => {\r\n const adminStore = useContext(AdminStore)\r\n const rootStore = useContext(RootStoreContext);\r\n const minWidthStyle = {\r\n minWidth: '110px'\r\n }\r\n return (\r\n\r\n \r\n

\r\n Roles Administration\r\n

\r\n \r\n \r\n \r\n \r\n {adminStore.adminStats?.roles?.data.length} Roles found.\r\n \r\n \r\n {roles.map((role: IRole, index) => ( \r\n \r\n
\r\n {role.name}\r\n
\r\n {(role.organisation?.name && (\r\n <>{role.organisation?.name}\r\n )) || (\r\n <>No Organisation\r\n )}\r\n
\r\n
\r\n \r\n ))}\r\n
\r\n
\r\n \r\n
\r\n
\r\n // \r\n // \r\n // \r\n //
\r\n //

\r\n // Roles Admin\r\n //

\r\n //
\r\n // {rootStore.userStore.user.roles.some(a => a.name === 'System Admin') && (\r\n // \r\n // \r\n //  \r\n // \r\n // \r\n // \r\n // )}\r\n //
\r\n // \r\n // {roles.map((role: IRole, index) => (\r\n // \r\n // \r\n // {rootStore.userStore.user.roles.some(a => a.name === 'System Admin') && (\r\n // \r\n //
\r\n // \r\n //
\r\n // \r\n // )}\r\n // \r\n //
\r\n // {role.name}\r\n //
\r\n // \r\n // {role.organisation?.name ? (\r\n // \r\n //
\r\n // {role.organisation?.name}\r\n //
\r\n //
\r\n // Organisation\r\n //
\r\n // ) : (\r\n // \r\n //
\r\n\r\n //
\r\n //
\r\n // No Organisation\r\n //
\r\n // \r\n // )} \r\n // {role.dataFilter ? (\r\n // \r\n //
\r\n // {role.dataFilter}\r\n //
\r\n // Data Filter\r\n //
\r\n //
\r\n // \r\n // ) : (\r\n // \r\n //
\r\n //
\r\n // No Data Filter\r\n //
\r\n //
\r\n // \r\n // )}\r\n // \r\n //
\r\n //
\r\n // {role.userAccess.map((access, index) => (\r\n // {access.name}, \r\n // ))}\r\n //
\r\n //
\r\n // \r\n // \r\n // \r\n // \r\n //
\r\n //
\r\n // ))}\r\n //
\r\n //
\r\n //
\r\n )}\r\nexport default observer(RoleList)","import React, { MouseEventHandler } from 'react';\r\nimport {Link} from \"react-router-dom\";\r\n\r\ninterface ISmallButtonProps {\r\n title: String,\r\n url: String,\r\n onClick?: MouseEventHandler\r\n}\r\n\r\nconst SmallButton: React.FC = (props: ISmallButtonProps) => {\r\n\r\n return (\r\n
\r\n \r\n {props.title}\r\n \r\n
\r\n )\r\n\r\n}\r\n\r\nexport default SmallButton","import { msalConfig } from \"./AuthConfig\";\r\n\r\n/**\r\n * Attaches a given access token to a MS Graph API call. Returns information about the user\r\n * @param accessToken \r\n */\r\nexport async function GraphUserCheck(accessToken, emailAddress) {\r\n const headers = new Headers();\r\n const bearer = `Bearer ${accessToken}`;\r\n const isOnPremAccount = emailAddress.toLowerCase().indexOf('xrothgen.nhs.uk') > 0;\r\n const endpoint = isOnPremAccount ?\r\n `https://graph.microsoft.com/v1.0/users/${emailAddress}?$select=id,mail,displayName,userType` :\r\n `https://graph.microsoft.com/v1.0/users/?$filter=userType eq 'guest' AND mail eq '${emailAddress}'&$select=id,mail,displayName,userType&$top=1`;\r\n\r\n headers.append(\"Authorization\", bearer);\r\n\r\n const options = {\r\n method: \"GET\",\r\n headers: headers\r\n };\r\n\r\n return fetch(endpoint, options)\r\n .then(response => response.json())\r\n .then(json => { \r\n console.log(json); \r\n if (json.value && json.value.length) \r\n return json.value[0];\r\n else if (json.id)\r\n return json;\r\n else\r\n return null;\r\n })\r\n .catch(error => console.log(endpoint, error));\r\n}","\r\n/**\r\n * Attaches a given access token to a MS Graph API call. Returns information about the user\r\n * @param accessToken \r\n */\r\nexport async function GraphUserInvite(accessToken, invitedUserEmailAddress, invitedUserDisplayName) {\r\n const headers = new Headers();\r\n const bearer = `Bearer ${accessToken}`;\r\n const endpoint = `https://graph.microsoft.com/v1.0/invitations`;\r\n\r\n headers.append(\"Authorization\", bearer);\r\n\r\n const body = {\r\n invitedUserEmailAddress,\r\n invitedUserDisplayName,\r\n inviteRedirectUrl: \"https://rhr.care\",\r\n invitedUserType: \"Guest\",\r\n sendInvitationMessage: false\r\n }\r\n\r\n const options = {\r\n method: \"POST\",\r\n headers: headers,\r\n body: JSON.stringify(body)\r\n };\r\n\r\n return fetch(endpoint, options)\r\n .then(response => response.json())\r\n .then(json => { \r\n console.log(json); \r\n })\r\n .catch(error => console.log(endpoint, error));\r\n}","\r\n/**\r\n * Attaches a given access token to a MS Graph API call. Returns information about the user\r\n * @param accessToken \r\n */\r\nexport async function GraphUserDelete(accessToken, userId) {\r\n const headers = new Headers();\r\n const bearer = `Bearer ${accessToken}`;\r\n const endpoint = `https://graph.microsoft.com/v1.0/users/${userId}`;\r\n\r\n headers.append(\"Authorization\", bearer);\r\n\r\n const options = {\r\n method: \"Delete\",\r\n headers: headers\r\n };\r\n\r\n return fetch(endpoint, options)\r\n .then(response => response.json())\r\n .then(json => { \r\n console.log(json); \r\n })\r\n .catch(error => console.log(endpoint, error));\r\n}","import agent from 'app/api/agent';\r\nimport React, { Fragment, useEffect, useState } from 'react';\r\nimport { Link, withRouter } from 'react-router-dom';\r\nimport { Row, Col, Card, Container } from 'reactstrap';\r\nimport { IUser, IRole, IOrganisation } from \"../../app/models/user\";\r\nimport { useMsal } from \"@azure/msal-react\";\r\nimport { msalConfig } from 'app/azureauth/AuthConfig';\r\nimport { GraphUserCheck } from 'app/azureauth/GraphUserCheck';\r\nimport { GraphUserInvite } from 'app/azureauth/GraphUserInvite';\r\nimport { GraphUserDelete } from 'app/azureauth/GraphUserDelete';\r\n\r\ninterface IProps {\r\n users: IUser[],\r\n roles: IRole[],\r\n organisations: IOrganisation[]\r\n}\r\n\r\nconst ViewUser: React.FC = ({ users }) => {\r\n const [ user, setUser ] = useState(); \r\n const [ azureUserSso , setAzureUserSso ] = useState(null);\r\n const { instance, accounts } = useMsal();\r\n\r\n let search = window.location.search;\r\n let params = new URLSearchParams(search);\r\n let email = params.get('u');\r\n\r\n useEffect(() => {\r\n agent.Admin.User({ \"email\": email}).then(u => setUser(u));\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (user !== undefined)\r\n if (user.azureUsername) {\r\n instance.acquireTokenSilent({\r\n ...msalConfig.auth,\r\n account: accounts[0]\r\n })\r\n .then((response) => {\r\n GraphUserCheck(response.accessToken, user.azureUsername)\r\n .then((response) => setAzureUserSso(response));\r\n });\r\n }\r\n }, [user])\r\n\r\n const inviteUser = () => {\r\n if (user !== undefined)\r\n if (user.azureUsername) {\r\n instance.acquireTokenSilent({\r\n ...msalConfig.auth,\r\n account: accounts[0]\r\n })\r\n .then((response) => {\r\n GraphUserInvite(response.accessToken, user.azureUsername, user.displayName)\r\n });\r\n }\r\n }\r\n\r\n const revokeUser = () => {\r\n if (user !== undefined && azureUserSso !== undefined) {\r\n if (user.azureUsername && azureUserSso.userType !== \"Guest\") {\r\n if (confirm(`Are you sure you want to delete user \"${azureUserSso.mail}\" from Azure Entra ID?`) == true) {\r\n console.log(azureUserSso);\r\n instance.acquireTokenSilent({\r\n ...msalConfig.auth,\r\n account: accounts[0]\r\n })\r\n .then((response) => {\r\n GraphUserDelete(response.accessToken, azureUserSso.id)\r\n });\r\n } else {\r\n console.log(\"Delete user action cancelled.\")\r\n }\r\n } else {\r\n prompt(\"Only guest users can be removed from the tenant using RHR.\");\r\n }\r\n }\r\n }\r\n\r\n return (\r\n (user && (\r\n \r\n

\r\n Viewing User - {user.displayName}\r\n

\r\n \r\n \r\n
\r\n Edit  \r\n Back to Users  \r\n
\r\n \r\n
\r\n
Display Name:
\r\n
{user.displayName}
\r\n
\r\n
\r\n
Username:
\r\n
{user.username}
\r\n
\r\n
\r\n
Azure Username:
\r\n
{`${user.azureUsername} ` || \"- \"} \r\n {(user.azureUsername && azureUserSso) ? \r\n <>\r\n SSO Enabled\r\n {azureUserSso && azureUserSso.userType == \"Guest\" ? : <>}\r\n \r\n : \r\n <>\r\n   \r\n SSO Required\r\n \r\n \r\n }\r\n
\r\n
\r\n
\r\n
Email:
\r\n
{user.email}
\r\n
\r\n
\r\n
Job Title:
\r\n
{user.jobTitle || \"-\"}
\r\n
\r\n
\r\n
Team:
\r\n
{user.team || \"-\"}
\r\n
\r\n
\r\n
Manager:
\r\n
{user.manager || \"-\"}
\r\n
\r\n
\r\n
Contact #:
\r\n
{user.contactNumber || \"-\"}
\r\n
\r\n
\r\n
Department / Practice:
\r\n
{user.practice?.name || \"-\"}
\r\n
\r\n
\r\n
Role(s):
\r\n
{user.roles.map((role: IRole, idx) => [ {role.name} ] )}
\r\n
\r\n
\r\n
Organisation:
\r\n
{user.organisation?.name}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n )) || <>Loading...\r\n );\r\n};\r\n\r\nexport default withRouter(ViewUser);","import React, { useContext, useState, useEffect } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { Form as FinalForm, Field } from 'react-final-form'\r\nimport { Card, Container, Button, Form, FormGroup, Label, Col, Row } from 'reactstrap';\r\nimport { IUser, IRole, IOrganisation, IRemoveValues, IUserFormValues } from \"../../app/models/user\";\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport AdminStore from '../../app/stores/adminStore';\r\nimport { FORM_ERROR } from 'final-form';\r\nimport { toast } from 'react-toastify';\r\nimport agent from '../../app/api/agent';\r\n\r\ninterface IProps {\r\n users: IUser[],\r\n roles: IRole[],\r\n organisations: IOrganisation[]\r\n}\r\n\r\n\r\nconst required = value => (value ? undefined : 'Required')\r\nconst UserEdit: React.FC = ({ users, roles }) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const adminStore = useContext(AdminStore)\r\n const [ user, setUser ] = useState();\r\n let search = window.location.search;\r\n let params = new URLSearchParams(search);\r\n let email = params.get('u');\r\n\r\n useEffect(() => {\r\n agent.Admin.User({ \"email\": email}).then(u => setUser(u))\r\n }, [])\r\n\r\n\r\n const handleRemove = (email: string, role: string) => {\r\n let values: IRemoveValues = { email: email, role: role }\r\n agent.Admin.remove(values);\r\n toast.info(\"Successfully removed access\");\r\n }\r\n\r\n return (\r\n user && (\r\n \r\n

\r\n Editing User - {user.displayName}\r\n

\r\n \r\n \r\n
\r\n View  \r\n Back to Users  \r\n
\r\n \r\n {\r\n console.log(values);\r\n return agent.Admin.EditUser(values)\r\n .then(e => console.log(e))\r\n .catch(e => ({ [FORM_ERROR]: e })\r\n )\r\n }}\r\n initialValues={{\r\n username: user.username,\r\n email: user.email,\r\n displayName: user.displayName,\r\n azureUsername: user.azureUsername,\r\n jobTitle: user.jobTitle,\r\n team: user.team,\r\n manager: user.manager,\r\n contactNumber: user.contactNumber,\r\n organisation: user.organisation.id,\r\n roleName: user.roles.length > 0 ? user.roles[0].name : null\r\n }}\r\n validate={(values: IUserFormValues) => {\r\n const errors = {} as IUserFormValues;\r\n const requiredMessage = \"* Required field\";\r\n \r\n if (values.displayName === \"\" || values.email === \"\" || values.username === \"\") {\r\n errors.displayName = requiredMessage;\r\n errors.username = requiredMessage;\r\n errors.email = requiredMessage;\r\n }\r\n return errors;\r\n }}\r\n render={({\r\n submitError,\r\n handleSubmit,\r\n form,\r\n submitting,\r\n pristine,\r\n values\r\n }) => (\r\n\r\n
\r\n (\r\n \r\n \r\n \r\n \r\n {meta.touched && meta.error && }\r\n \r\n )} />\r\n (\r\n \r\n \r\n \r\n \r\n {meta.touched && meta.error && }\r\n \r\n )} />\r\n (\r\n \r\n \r\n \r\n \r\n {meta.touched && meta.error && }\r\n \r\n )} />\r\n (\r\n \r\n \r\n \r\n \r\n {meta.touched && meta.error && }\r\n \r\n )} />\r\n (\r\n \r\n \r\n \r\n \r\n {meta.touched && meta.error && }\r\n \r\n )} />\r\n (\r\n \r\n \r\n \r\n \r\n {meta.touched && meta.error && }\r\n \r\n )} />\r\n (\r\n \r\n \r\n \r\n \r\n {meta.touched && meta.error && }\r\n \r\n )} />\r\n (\r\n \r\n \r\n \r\n \r\n {meta.touched && meta.error && }\r\n \r\n )} />\r\n {rootStore.userStore.user.practice?.id && (\r\n (\r\n \r\n \r\n \r\n \r\n {meta.touched && meta.error && }\r\n \r\n )} />\r\n )}\r\n \r\n {rootStore.userStore.user.roles.some(a => a.name === 'System Admin') && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n } />\r\n )}\r\n\r\n \r\n \r\n \r\n \r\n \r\n {meta.touched && meta.error && }\r\n \r\n } />\r\n\r\n {submitError &&
{submitError}
}\r\n
\r\n \r\n form.reset()}\r\n className=\"ml-2\"\r\n color=\"secondary\"\r\n disabled={submitting || pristine}>\r\n Reset\r\n \r\n \r\n
\r\n
{JSON.stringify(values, [\"displayName\", \"username\", \"email\", \"azureUsername\", \"jobTitle\", \"team\", \"manager\", \"contactNumber\", \"practice\", \"id\", \"name\", \"roleName\", \"organisation\"], 2)}
\r\n \r\n \r\n )}\r\n />\r\n
\r\n \r\n
\r\n
\r\n ) || <>Loading...\r\n )\r\n};\r\n\r\nexport default UserEdit;","import React, { useContext } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { Form as FinalForm, Field } from 'react-final-form'\r\nimport { Button, Form, FormGroup, Label, Col, Row, Card, Container } from 'reactstrap';\r\nimport { IRole, IOrganisation, IPractice } from \"../../app/models/user\";\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { IUserFormValues } from '../../app/models/user';\r\nimport { FORM_ERROR } from 'final-form';\r\nimport AdminStore from '../../app/stores/adminStore';\r\n\r\ninterface IProps {\r\n roles: IRole[],\r\n organisations: IOrganisation[],\r\n practices: IPractice[]\r\n}\r\n\r\nconst required = value => (value ? undefined : 'Required')\r\nconst UserCreate: React.FC = ({ roles, organisations, practices }) => {\r\n\r\n const adminStore = useContext(AdminStore)\r\n const rootStore = useContext(RootStoreContext);\r\n\r\n return (\r\n <>\r\n \r\n

\r\n Add a New User\r\n

\r\n \r\n \r\n
\r\n Back to Users  \r\n
\r\n \r\n \r\n adminStore.AddUser(values, rootStore.userStore.user.organisation.id, rootStore.userStore.user.practice?.id)\r\n .then(() => form.reset())\r\n .catch(error => ({ [FORM_ERROR]: error }))}\r\n render={({ handleSubmit, values }) => (\r\n\r\n
\r\n (\r\n \r\n \r\n \r\n \r\n {meta.touched && meta.error && }\r\n \r\n )} />\r\n (\r\n \r\n \r\n \r\n \r\n {meta.touched && meta.error && }\r\n \r\n )} />\r\n (\r\n \r\n \r\n \r\n \r\n {meta.touched && meta.error && }\r\n \r\n )} />\r\n (\r\n \r\n \r\n \r\n \r\n {meta.touched && meta.error && }\r\n \r\n )} />\r\n (\r\n \r\n \r\n \r\n \r\n {meta.touched && meta.error && }\r\n \r\n )} />\r\n (\r\n \r\n \r\n \r\n \r\n {meta.touched && meta.error && }\r\n \r\n )} />\r\n {rootStore.userStore.user.roles.some(a => a.name === 'System Admin') && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n {organisations.map((organisation, index) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n )} \r\n {!rootStore.userStore.user?.practice?.id && (\r\n (\r\n \r\n \r\n \r\n \r\n {meta.touched && meta.error && }\r\n \r\n )} />\r\n )} \r\n \r\n \r\n \r\n \r\n \r\n {roles.map((role: IRole, index) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
{JSON.stringify(values, [\"displayName\", \"email\", \"jobTitle\", \"team\", \"manager\", \"contactNumber\", \"practice\", \"id\", \"name\", \"roleName\", \"organisation\"], 2)}
\r\n
\r\n \r\n )}\r\n />\r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default UserCreate;","import React, { useContext, useState } from 'react';\r\nimport { Form as FinalForm, Field } from 'react-final-form'\r\nimport { Card, Button, Form, FormGroup, Label, Container, Col, Row} from 'reactstrap';\r\nimport { IAddRoleValues, IRole, IOrganisation } from '../../app/models/user';\r\nimport AdminStore from '../../app/stores/adminStore';\r\nimport { Link } from 'react-router-dom';\r\n\r\n\r\ninterface IProps {\r\n roles: IRole[],\r\n organisations: IOrganisation[]\r\n}\r\n\r\nconst required = value => (value ? undefined : 'Required')\r\nconst CreateNewRole: React.FC = ({roles, organisations}) => {\r\n const adminStore = useContext(AdminStore) \r\n const [modal, setModal] = useState(false);\r\n const toggle = () => setModal(!modal);\r\n \r\n return (\r\n <>\r\n\r\n

\r\n Add a New Role\r\n

\r\n\r\n \r\n
\r\n Back to Roles  \r\n
\r\n \r\n adminStore.addRole(values) \r\n }\r\n render={({ handleSubmit, pristine, form }) => (\r\n\r\n
\r\n \r\n (\r\n \r\n \r\n \r\n \r\n {meta.touched && meta.error && }\r\n \r\n )} />\r\n (\r\n \r\n \r\n \r\n \r\n {meta.touched && meta.error && }\r\n \r\n )}/>\r\n\r\n \r\n \r\n \r\n \r\n \r\n {adminStore.organisations.map((organisation, index) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n\r\n \r\n \r\n )} \r\n />\r\n
\r\n \r\n
\r\n
\r\n\r\n );\r\n};\r\n\r\nexport default CreateNewRole;","import React, { useContext, useState } from 'react';\r\nimport { Form as FinalForm, Field } from 'react-final-form'\r\nimport { Card, Button, Form, FormGroup, Label, Container, Row, Col } from 'reactstrap';\r\nimport { IAddOrganisationForm, IOrganisation } from '../../app/models/user';\r\nimport AdminStore from '../../app/stores/adminStore';\r\nimport { Link } from 'react-router-dom';\r\n\r\n\r\ninterface IProps { \r\n organisations: IOrganisation[]\r\n}\r\n\r\nconst required = value => (value ? undefined : 'Required')\r\nconst CreateNewOrg: React.FC = ({organisations}) => {\r\n const adminStore = useContext(AdminStore) \r\n const [modal, setModal] = useState(false);\r\n const toggle = () => setModal(!modal);\r\n \r\n return (\r\n <>\r\n\r\n

\r\n Create New Organisation\r\n

\r\n\r\n \r\n
\r\n Back to Organisation  \r\n
\r\n \r\n adminStore.addOrganisation(values) \r\n }\r\n render={({ handleSubmit, pristine, form }) => (\r\n\r\n
\r\n \r\n (\r\n \r\n \r\n \r\n \r\n {meta.touched && meta.error && }\r\n \r\n )} />\r\n (\r\n \r\n \r\n \r\n \r\n {meta.touched && meta.error && }\r\n \r\n )}/> \r\n\r\n \r\n \r\n )} \r\n />\r\n
\r\n \r\n
\r\n
\r\n\r\n );\r\n};\r\n\r\nexport default CreateNewOrg;","import React, { useEffect, useState } from 'react';\r\nimport { Link, withRouter } from 'react-router-dom';\r\nimport { Row, Col, Card, Container } from 'reactstrap';\r\nimport { IRole, IOrganisation } from \"../../app/models/user\";\r\n\r\ninterface IProps {\r\n \r\n roles: IRole[],\r\n organisations: IOrganisation[]\r\n}\r\n\r\nconst ViewRole: React.FC = ({ roles }) => {\r\n const [ role, setRole ] = useState();\r\n let search = window.location.search;\r\n let params = new URLSearchParams(search);\r\n let name = params.get('u');\r\n\r\n useEffect(() => {\r\n setRole(roles.filter(u => u.name === name)[0])\r\n }, [])\r\n\r\n return (\r\n (roles && (\r\n \r\n

\r\n Viewing Role - {role?.name}\r\n

\r\n \r\n \r\n
\r\n Edit  \r\n Back to Roles  \r\n
\r\n \r\n Role Name: {role?.name}
\r\n Data Filter: {role?.dataFilter}
\r\n Organisation: {role?.organisation?.name}\r\n
\r\n \r\n
\r\n
\r\n )) || <>Loading...\r\n \r\n );\r\n};\r\n\r\nexport default withRouter(ViewRole);","import React, { useState, useContext, useEffect } from 'react';\r\nimport { Button, Form, FormGroup, Label, Col, Row, Card, Container} from 'reactstrap';\r\nimport { IRole, IOrganisation, IEditRoleValues } from '../../app/models/user';\r\nimport { Form as FinalForm, Field } from 'react-final-form'\r\nimport AdminStore from '../../app/stores/adminStore';\r\nimport { FORM_ERROR } from 'final-form';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { Link } from 'react-router-dom';\r\n\r\n\r\ninterface IProps {\r\n roles: IRole[]\r\n organisations: IOrganisation[] \r\n}\r\n\r\n// const required = value => (value ? undefined : 'Required')\r\nconst EditRole: React.FC = ({ roles, organisations }) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const adminStore = useContext(AdminStore)\r\n const [role, setRole ] = useState();\r\n let search = window.location.search;\r\n let params = new URLSearchParams(search);\r\n let name = params.get('u');\r\n\r\n useEffect(() => {\r\n setRole(roles.filter(u => u.name === name)[0])\r\n }, [])\r\n\r\n // const handleRemove = ( role: string) => {\r\n // let values: IRemoveValues = { email: email, role: role }\r\n // agent.Admin.remove(values);\r\n // toast.info(\"Successfully removed access\");\r\n // }\r\n\r\n return (\r\n \r\n (roles && (\r\n \r\n

\r\n Editing Role - {role?.name}\r\n

\r\n \r\n \r\n
\r\n View  \r\n Back to Roles  \r\n
\r\n \r\n {\r\n return adminStore.EditRole(values).catch(\r\n error => ({\r\n [FORM_ERROR]: error\r\n })\r\n )\r\n }}\r\n initialValues={role} \r\n render={({ handleSubmit, values }) => (\r\n\r\n
\r\n (\r\n \r\n \r\n \r\n \r\n {meta.touched && meta.error && }\r\n \r\n )} />\r\n\r\n (\r\n \r\n \r\n \r\n \r\n {meta.touched && meta.error && }\r\n \r\n )} /> \r\n \r\n\r\n
{JSON.stringify(values, [\"name\", \"organisation\"], 2)}
\r\n\r\n \r\n )}\r\n />\r\n \r\n
\r\n \r\n
\r\n
\r\n )) || <>Loading... \r\n \r\n \r\n );\r\n \r\n}\r\n\r\nexport default EditRole;","import React, { useEffect, useState } from 'react';\r\nimport { Link, withRouter } from 'react-router-dom';\r\nimport { Row, Col, Card, Container } from 'reactstrap';\r\nimport { IRole, IOrganisation } from \"../../app/models/user\";\r\n\r\ninterface IProps {\r\n \r\n roles: IRole[],\r\n organisations: IOrganisation[]\r\n}\r\n\r\nconst ViewOrganisation: React.FC = ({ organisations }) => {\r\n const [ organisation, setOrganisation ] = useState();\r\n let search = window.location.search;\r\n let params = new URLSearchParams(search);\r\n let name = params.get('u');\r\n\r\n useEffect(() => {\r\n console.log(name,organisations.filter(u => u.name === name)[0])\r\n setOrganisation(organisations.filter(u => u.name === name)[0])\r\n }, [])\r\n\r\n return (\r\n (organisation && (\r\n \r\n

\r\n Viewing Organisations - {organisation?.name}\r\n

\r\n \r\n \r\n
\r\n Edit  \r\n Back to Organisations  \r\n
\r\n \r\n Organisation Name: {organisation?.name}
\r\n Organisation Code: {organisation?.code}
\r\n Organisation ID: {organisation?.id}\r\n
\r\n \r\n
\r\n
\r\n )) || <>Loading...\r\n \r\n );\r\n};\r\n\r\nexport default withRouter(ViewOrganisation);","import React, { useContext, useState, useEffect } from 'react';\r\nimport { Form as FinalForm, Field } from 'react-final-form'\r\nimport { Button, Form, FormGroup, Label, Col, Row, Card, Container} from 'reactstrap';\r\nimport { IOrganisation, IEditOrganisationValues } from '../../app/models/user';\r\nimport { FORM_ERROR } from 'final-form';\r\nimport AdminStore from '../../app/stores/adminStore';\r\nimport { Link } from 'react-router-dom';\r\n\r\n\r\ninterface IProps {\r\n\r\n organisations: IOrganisation[]\r\n \r\n\r\n}\r\n const EditOrganisation: React.FC = ({ organisations }) => { \r\n const adminStore = useContext(AdminStore)\r\n const [organisation, setOrganisation ] = useState();\r\n let search = window.location.search;\r\n let params = new URLSearchParams(search);\r\n let name = params.get('u');\r\n \r\n useEffect(() => {\r\n setOrganisation(organisations.filter(u => u.name === name)[0])\r\n }, [])\r\n \r\n\r\n return (\r\n \r\n (organisation && (\r\n \r\n

\r\n Editing Organisation - {organisation?.name}\r\n

\r\n \r\n \r\n
\r\n View  \r\n Back to Organisations  \r\n
\r\n \r\n {\r\n return adminStore.EditOrganisation(values).catch(\r\n error => ({\r\n [FORM_ERROR]: error\r\n })\r\n )\r\n }}\r\n initialValues={organisation} \r\n render={({ handleSubmit, values }) => (\r\n\r\n
\r\n (\r\n \r\n \r\n \r\n \r\n {meta.touched && meta.error && }\r\n \r\n )} />\r\n\r\n (\r\n \r\n \r\n \r\n \r\n {meta.touched && meta.error && }\r\n \r\n )} />\r\n \r\n \r\n\r\n
{JSON.stringify(values, [\"name\", \"code\"], 2)}
\r\n\r\n \r\n )}\r\n />\r\n \r\n
\r\n \r\n
\r\n
\r\n ))\r\n \r\n || <>Loading... \r\n \r\n );\r\n};\r\n\r\nexport default EditOrganisation;","import React, { useContext, useEffect, useState } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { ListGroup, Row, Col, Card, Container, CardBody } from 'reactstrap';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { IUser, IRole, IOrganisation, IPractice } from \"../../app/models/user\";\r\nimport { RootStoreContext } from 'app/stores/rootStore';\r\nimport AuditStore from \"../../app/stores/auditStore\";\r\nimport { AuditValues, AuditItem } from 'app/models/audit';\r\n\r\ninterface IProps {\r\n users: IUser[],\r\n roles: IRole[],\r\n organisations: IOrganisation[],\r\n practices?: IPractice[]\r\n}\r\n\r\nconst AuditViewer: React.FC = ({ users, roles, organisations, practices }) => {\r\n \r\n const date = new Date();\r\n const rootStore = useContext(RootStoreContext);\r\n const refOrg = React.useRef(null);\r\n const refPractice = React.useRef(null);\r\n const refRole = React.useRef(null);\r\n const refUser = React.useRef(null);\r\n const [dateTo, setDateTo] = useState(new Date(date.setDate(date.getDate())));\r\n const [dateFrom, setDateFrom] = useState(new Date(date.setDate(date.getDate() - 14)));\r\n const [selectedAuditItems, setSelectedAuditItems] = useState([]);\r\n const [selectedDefaultAuditItems, setSelectedDefaultAuditItems] = useState([]);\r\n \r\n useEffect(()=> {\r\n let auditValues: AuditValues = { fromDate: dateFrom, toDate: dateTo }\r\n console.log(auditValues);\r\n rootStore.auditStore.byDate(auditValues);\r\n }, [])\r\n\r\n useEffect(() => {\r\n setSelectedAuditItems(rootStore.auditStore.sortedAudit)\r\n setSelectedDefaultAuditItems(rootStore.auditStore.sortedAudit);\r\n }, [rootStore.auditStore.isAuditLoaded])\r\n\r\n const handleFilter = () => {\r\n let organisation: string = (refOrg.current && refOrg.current.value) || \"\";\r\n let role: string = (refRole.current && refRole.current.value) || \"\";\r\n let practice: string = (refPractice.current && refPractice.current.value) || \"\";\r\n let user: string = (refUser.current && refUser.current.value) || \"\";\r\n }\r\n\r\n const handleReset = () => {\r\n if (refOrg.current) refOrg.current.selectedIndex = 0;\r\n if (refPractice.current) refPractice.current.selectedIndex = 0;\r\n if (refRole.current) refRole.current.selectedIndex = 0;\r\n if (refUser.current) refUser.current.selectedIndex = 0;\r\n handleFilter();\r\n }\r\n\r\n return (\r\n \r\n

\r\n Audit Viewer\r\n

\r\n \r\n \r\n \r\n \r\n {selectedAuditItems && selectedAuditItems.length} entries found.\r\n \r\n \r\n {selectedAuditItems && selectedAuditItems.map((audit: AuditItem, index: number) => (\r\n
\r\n
\r\n
{new Date(audit.actionDate).toLocaleDateString()}
\r\n
{new Date(audit.actionDate).toLocaleTimeString().substring(0,5)}
\r\n
\r\n {audit.username} {audit.description.replace(audit.username, \"\")}\r\n
\r\n {audit.module} \r\n {audit.module === \"PatientRecord\" && audit.patientId ?\r\n <> {audit.patientId}\r\n : <>}\r\n > {audit.action} \r\n {audit.module === \"PatientRecord\" && audit.documentId ?\r\n <> {audit.documentId}\r\n : <>}\r\n
\r\n
\r\n
\r\n
\r\n ))}\r\n
\r\n
\r\n \r\n \r\n \r\n {(rootStore.userStore.user as IUser).roles.some(a => a.name === 'System Admin') && (\r\n <>\r\n \r\n \r\n
\r\n \r\n )}\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n )\r\n}\r\nexport default observer(AuditViewer)","import { useState, useContext, useEffect } from \"react\";\r\nimport { Switch, Route } from 'react-router-dom';\r\nimport { Row, Col, Container } from 'reactstrap'\r\nimport { observer } from 'mobx-react-lite'\r\nimport OrganisationsList from \"./OrganisationsList\";\r\nimport UserAdministration from \"./UserAdministration\";\r\nimport AdminStore from '../../app/stores/adminStore';\r\nimport { IOrganisationValues } from \"../../app/models/admin\";\r\nimport RoleList from \"./RoleList\";\r\nimport { IUser } from \"../../app/models/user\";\r\nimport { RootStoreContext } from \"../../app/stores/rootStore\";\r\nimport LargeButton from \"../common/LargeButton\";\r\nimport SmallButton from \"../common/SmallButton\";\r\nimport UserView from \"./UserView\";\r\nimport UserEdit from \"./UserEdit\";\r\nimport UserCreate from \"./UserCreate\";\r\nimport CreateNewRole from \"./CreateNewRole\";\r\nimport CreateNewOrg from \"./CreateNewOrg\";\r\nimport RoleView from \"./RoleView\";\r\nimport EditRole from \"./EditRole\";\r\nimport OrganisationView from \"./OrganisationView\";\r\nimport EditOrganisation from \"./EditOrganisation\";\r\nimport AuditViewer from \"./AuditViewer\";\r\n\r\nconst AdminHomepage = () => {\r\n const organisationsAdminRoot = process.env.REACT_APP_URL_ADMIN_ORGANISATIONS_ROOT;\r\n const practicesAdminRoot = process.env.REACT_APP_URL_ADMIN_PRACTICES_ROOT;\r\n const rolesAdminRoot = process.env.REACT_APP_URL_ADMIN_ROLES_ROOT;\r\n const usersAdminRoot = process.env.REACT_APP_URL_ADMIN_USERS_ROOT;\r\n const auditAdminRoot = process.env.REACT_APP_URL_ADMIN_AUDIT_ROOT;\r\n const adminStore = useContext(AdminStore)\r\n const rootStore = useContext(RootStoreContext);\r\n const values: IOrganisationValues = { role: '' }\r\n const [selectedUsers, setSelectedUsers] = useState();\r\n const useParams = new URLSearchParams(window.location.search);\r\n\r\n useState(() => {\r\n adminStore.loadOrganisations(values);\r\n adminStore.loadUsers(values, rootStore.userStore.user);\r\n adminStore.loadPractices();\r\n adminStore.loadRoleStats(rootStore.userStore.user);\r\n setSelectedUsers(adminStore.users);\r\n });\r\n\r\n useEffect(() => { \r\n let audit = {\r\n module: \"SystemAdmin\",\r\n description: `${rootStore.userStore.user.username} has accessed ${window.location.pathname} ${useParams.has(\"u\") ? \"for {\" + useParams.get(\"u\") + \"}\" : \"\"}`,\r\n username: rootStore.userStore.user.username,\r\n action: \"Navigation\",\r\n page: window.location.pathname,\r\n documentId: null,\r\n patientId: null,\r\n visitId: null\r\n };\r\n rootStore.auditStore.addEntry(audit);\r\n },[window.location.pathname]);\r\n\r\n const checkSelectedMenu = (url: string) => window.location.pathname.startsWith(url) ? true : false;\r\n\r\n return (\r\n selectedUsers && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {(rootStore.userStore.user as IUser).roles.some(a => a.name === 'System Admin') && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n
\r\n

\r\n You are currently logged in with the following role:\r\n

\r\n
    \r\n {(rootStore.userStore.user as IUser).roles.some(a => a.name === 'System Admin') && (\r\n
  • System Administrator
  • \r\n ) || (rootStore.userStore.user as IUser).roles.some(a => a.name.startsWith(\"Business Unit Admin\")) && (\r\n
  • Business Unit Administrator
  • \r\n )}\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n )\r\n )\r\n}\r\nexport default observer(AdminHomepage)\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import React, { Fragment, useContext, useEffect, useState } from 'react';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { Card, CardTitle, CardBody } from 'reactstrap';\r\nimport { useIsAuthenticated, useAccount, useMsal } from '@azure/msal-react';\r\nimport Loader from 'react-loader-spinner'\r\n\r\nconst NoRoles = () => {\r\n const isAuthenticated = useIsAuthenticated();\r\n const rootStore = useContext(RootStoreContext);\r\n const { user, loading } = rootStore.userStore;\r\n const { accounts } = useMsal();\r\n const account = useAccount(accounts[0] || {});\r\n const [name, setName] = useState(\"\");\r\n\r\n useEffect(() => {\r\n if (account && account.name) \r\n setName(account.name);\r\n }, [account]);\r\n\r\n return (\r\n \r\n {loading ? (\r\n \r\n ) : (\r\n \r\n \r\n {user && (\r\n Currently no roles assigned to user {user.username}\r\n )}\r\n {isAuthenticated && !user && (\r\n Currently no roles as`signed to AD user : {name}\r\n )}\r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default NoRoles","import { observable, action, runInAction } from 'mobx'\r\nimport agent from \"../api/agent\"\r\n\r\nimport { createContext } from 'react';\r\nimport { ICareHomeCapacity } from '../models/carehomes';\r\n\r\nclass CareHomeStore {\r\n\r\n @observable carehomes: ICareHomeCapacity[] = [];\r\n @observable isCareHomesLoaded = false;\r\n \r\n\r\n @action loadCapacity = () => {\r\n this.carehomes = [];\r\n this.isCareHomesLoaded = false;\r\n agent.CareHome.get()\r\n .then(carehomes => {\r\n runInAction(() => {\r\n this.carehomes = carehomes;\r\n this.isCareHomesLoaded = true;\r\n })\r\n })\r\n }\r\n\r\n}\r\nexport default createContext(new CareHomeStore());","import React, { useContext, useState } from 'react'\r\nimport { observer } from 'mobx-react-lite'\r\nimport CareHomeStore from '../../../app/stores/carehomeStore';\r\n\r\n\r\nconst CareHomeCapacityTable = () => {\r\n\r\n \r\n const carehomeStore = useContext(CareHomeStore); \r\n\r\n \r\n useState(() => {\r\n carehomeStore.loadCapacity()\r\n });\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {carehomeStore.carehomes && carehomeStore.isCareHomesLoaded && (\r\n carehomeStore.carehomes.map((carehome, index) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n ))\r\n )}\r\n \r\n
General ResidentialDementia ResidentialGeneral NursingDementia NursingMental Health NursingTransitional
Care HomeTotalVacantTotalVacantTotalVacantTotalVacantTotalVacantTotalVacant
{carehome.name}{carehome.vacancies.map((vacancy, index) => (vacancy.bedType === 'General Residential') ? (vacancy.total) :(null) )}{carehome.vacancies.map((vacancy, index) => (vacancy.bedType === 'General Residential') ? (vacancy.spare) : (null))}{carehome.vacancies.map((vacancy, index) => (vacancy.bedType === 'Dementia Residential') ? (vacancy.total) : (null))}{carehome.vacancies.map((vacancy, index) => (vacancy.bedType === 'Dementia Residential') ? (vacancy.spare) : (null))}{carehome.vacancies.map((vacancy, index) => (vacancy.bedType === 'General Nursing') ? (vacancy.total) : (null))}{carehome.vacancies.map((vacancy, index) => (vacancy.bedType === 'General Nursing') ? (vacancy.spare) : (null))}{carehome.vacancies.map((vacancy, index) => (vacancy.bedType === 'Dementia Nursing') ? (vacancy.total) : (null))}{carehome.vacancies.map((vacancy, index) => (vacancy.bedType === 'Dementia Nursing') ? (vacancy.spare) : (null))}{carehome.vacancies.map((vacancy, index) => (vacancy.bedType === 'Mental Health Nursing') ? (vacancy.total) : (null))}{carehome.vacancies.map((vacancy, index) => (vacancy.bedType === 'Mental Health Nursing') ? (vacancy.spare) : (null))}{carehome.vacancies.map((vacancy, index) => (vacancy.bedType === 'Transitional') ? (vacancy.total) : (null))}{carehome.vacancies.map((vacancy, index) => (vacancy.bedType === 'Transitional') ? (vacancy.spare) : (null))}
\r\n )\r\n\r\n}\r\nexport default observer(CareHomeCapacityTable)","import React, { Fragment } from 'react'\r\nimport { Container } from 'reactstrap'\r\nimport { observer } from 'mobx-react-lite'\r\nimport CareHomeCapacityTable from './CareHomeCapacityTable'\r\n\r\n\r\nconst CareHomeCapacityMain = () => {\r\n return (\r\n \r\n \r\n

Care Homes

\r\n

Care Homes data is provided by Rotherham Metropolitan Borough Council's Connect to Support service.

\r\n \r\n
\r\n
\r\n )\r\n\r\n}\r\nexport default observer(CareHomeCapacityMain)","import * as React from \"react\";\r\n\r\nconst NhsNumber: React.FC<{nhsNumber:string}> = ({nhsNumber}) => { \r\n return (\r\n <>\r\n {nhsNumber.substr(0,3)} {nhsNumber.substr(3,3)} {nhsNumber.substr(6,4)}\r\n \r\n )\r\n}\r\nexport default NhsNumber;\r\n","import { observable, action, runInAction } from 'mobx'\r\nimport agent from \"../api/agent\"\r\nimport { createContext } from 'react';\r\nimport { Patient, PatientValues } from '../models/inpatient';\r\nimport { ISearchSubmitValues } from '../models/search';\r\n\r\nclass SearchStore {\r\n @observable isPatientsLoaded = false;\r\n @observable isSearchPending = false;\r\n @observable patient: Patient;\r\n @observable patients: Patient[] = [];\r\n @action ByName = (values: ISearchSubmitValues) => {\r\n this.patients = [];\r\n this.isPatientsLoaded = false;\r\n this.isSearchPending = true;\r\n agent.Search.ByName(values)\r\n .then(patients => {\r\n runInAction(() => {\r\n this.patients = patients;\r\n this.isPatientsLoaded = true;\r\n this.isSearchPending = false;\r\n })\r\n })\r\n }\r\n\r\n @action Search = (values: ISearchSubmitValues) => {\r\n this.patients = [];\r\n console.log(values);\r\n this.isSearchPending = true;\r\n if (values !== null) {\r\n console.table(values);\r\n this.isPatientsLoaded = false;\r\n agent.Search.Advanced(values)\r\n .then(patients => {\r\n runInAction(() => {\r\n this.patients = patients;\r\n this.isPatientsLoaded = true;\r\n this.isSearchPending = false;\r\n })\r\n })\r\n }\r\n }\r\n\r\n @action setPatient = (patient:Patient) => {\r\n runInAction(() => { this.patient = patient; })\r\n }\r\n\r\n @action setIsSearchPending = (isPending: boolean) => {\r\n runInAction(() => { this.isSearchPending = isPending; })\r\n }\r\n\r\n @action clearPatients = () => \r\n runInAction (() => { \r\n this.patients = [];\r\n this.isPatientsLoaded = false;\r\n });\r\n\r\n @action getPatient = (patientId: string, isAnonymous) => {\r\n let patientValues: PatientValues = { systemIdentifier: patientId, isAnonymised: isAnonymous }\r\n return new Promise((resolve, reject) => {\r\n agent.Patient.Get(patientValues)\r\n .then(patient => {\r\n runInAction(() => {\r\n this.patient = patient;\r\n resolve();\r\n })\r\n })\r\n })\r\n }\r\n\r\n @action searchByNumber = (patientId: string, isAnonymous) => {\r\n let patientValues: PatientValues = { systemIdentifier: patientId, isAnonymised: isAnonymous }\r\n this.patients = [];\r\n this.isSearchPending = true;\r\n agent.Patient.Get(patientValues)\r\n .then(patient => {\r\n runInAction(() => {\r\n this.patients.push(patient);\r\n this.isPatientsLoaded = true;\r\n this.isSearchPending = false;\r\n })\r\n });\r\n }\r\n}\r\n\r\nexport default createContext(new SearchStore());","import * as React from 'react';\r\n \r\nexport function ShortDateTimeFormat (date: Date) { return Intl.DateTimeFormat(\"en-GB\", {\r\n year: \"numeric\",\r\n month: \"numeric\",\r\n day: \"numeric\",\r\n hour: \"numeric\",\r\n minute: \"numeric\",\r\n hour12: false\r\n}).format(new Date(date)) }\r\n\r\nexport function ShortDateOnlyFormat (date: Date) { return Intl.DateTimeFormat(\"en-GB\", {\r\n year: \"numeric\",\r\n month: \"numeric\",\r\n day: \"numeric\"\r\n}).format(new Date(date)) }\r\n\r\nexport function CompareDayMonthFormat (date: Date) { return Intl.DateTimeFormat(\"en-GB\", {\r\n month: \"numeric\",\r\n day: \"numeric\"\r\n}).format(new Date(date)) }\r\n\r\nexport function LongDateOnlyFormat (date: Date) { return Intl.DateTimeFormat(\"en-GB\", {\r\n year: \"numeric\",\r\n month: \"long\",\r\n day: \"numeric\"\r\n}).format(new Date(date)) }\r\n\r\nexport function ShortTimeOnlyFormat (date: Date) { return Intl.DateTimeFormat(\"en-GB\", {\r\n hour: \"numeric\",\r\n minute: \"numeric\",\r\n hour12: false\r\n}).format(new Date(date)) }","import  React, { useContext } from \"react\";\r\nimport {Link} from 'react-router-dom'\r\nimport { Patient } from '../../app/models/inpatient';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { Card, Row, Col } from 'reactstrap';\r\nimport NhsNumber from \"features/common/NhsNumber\";\r\nimport SearchStore from '../../app/stores/searchStore';\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faSpinner } from \"@fortawesome/free-solid-svg-icons\";\r\nimport DataLoadErrorAlert from \"features/patientrecord/DataLoadErrorAlert\";\r\nimport { ShortDateOnlyFormat } from \"features/patientrecord/common/DateTimeFunctions\";\r\n\r\ninterface IPatientResultsProps {\r\n results?: Patient[],\r\n isLoading: boolean,\r\n loadError: any\r\n}\r\n\r\nconst PatientResults: React.FC = ({results, isLoading, loadError}) => {\r\n const searchStore = useContext(SearchStore);\r\n \r\n return (\r\n \r\n
\r\n \r\n Search Results\r\n \r\n
\r\n
\r\n

Use the search fields and click the appropriate Search button to get started. Click the row of the patient to open the patient record.

\r\n {isLoading && (\r\n

\r\n \r\n

\r\n )}\r\n {(!isLoading && results.length) ? (\r\n <>\r\n \r\n {results.length} patient{results.length === 1 ? \"\" : \"s\"} found.\r\n \r\n
\r\n \r\n ): <>}\r\n {loadError ? : <>}\r\n
\r\n {(!isLoading && results.length > 0 && (\r\n results.map((patient:Patient, index:number) => (\r\n searchStore.setPatient(patient)} \r\n to={`/patient/summary?p=${patient.systemInternalIdentifier.value}&v=`}>\r\n \r\n \r\n {patient.nhsNumber?.value &&\r\n <>\r\n \r\n NHS:\r\n \r\n
\r\n \r\n }\r\n {patient.systemPublicIdentifier?.value &&\r\n \r\n {patient.systemPublicIdentifier?.value}\r\n \r\n }\r\n \r\n \r\n
\r\n {patient.name.forename} {patient.name.surname}\r\n {patient.gender} {patient.age}\r\n
\r\n
\r\n {patient.contactDetails && (\r\n <>\r\n {patient.contactDetails.address?.line1} \r\n {patient.contactDetails.address?.line2} \r\n {patient.contactDetails.address?.line3} \r\n {patient.contactDetails.address?.postcode}.\r\n \r\n )}\r\n
\r\n \r\n \r\n
DOB: {ShortDateOnlyFormat(patient.dateOfBirth)}
\r\n {patient.dateOfDeath !== null && (\r\n
DOD: {ShortDateOnlyFormat(patient.dateOfDeath)}
\r\n )}\r\n \r\n
\r\n \r\n ))\r\n ))}\r\n
\r\n
\r\n
\r\n )\r\n\r\n}\r\nexport default observer(PatientResults)","import React, {Dispatch} from \"react\";\r\nimport { Label, InputGroup, InputGroupAddon, Button } from 'reactstrap'\r\nimport { observer } from 'mobx-react-lite'\r\nimport { Fragment, useContext } from \"react\"; \r\nimport { RootStoreContext } from \"../../app/stores/rootStore\";\r\nimport { Form as FinalForm, Field } from \"react-final-form\";\r\nimport { ISearchSubmitValues } from \"../../app/models/search\";\r\n\r\ninterface IProps {\r\n state?: ISearchSubmitValues,\r\n stateSetter?: Dispatch>\r\n}\r\n\r\nconst PatientNameForm: React.FC = ({ state, stateSetter }) => {\r\n const rootStore = useContext(RootStoreContext);\r\n\r\n const onSubmit = (values: ISearchSubmitValues) => {\r\n console.table(values);\r\n if (values.patientNumber)\r\n stateSetter({ ...state, patientNumber: values.patientNumber });\r\n else {\r\n stateSetter({\r\n ...state,\r\n forename: values.forename || null,\r\n surname: values.surname || null,\r\n dateOfBirth: values.dateOfBirth ? values.dateOfBirth : null,\r\n addressLine1: values.addressLine1 || null,\r\n postCode: values.postCode || null\r\n });\r\n }\r\n\r\n let practice: string = \"\";\r\n if (rootStore.userStore.user.practice) {\r\n practice = rootStore.userStore.user.practice.name;\r\n }\r\n\r\n let auditDescription: string = \"\";\r\n let patientNumber: string = \"\";\r\n let actionName: string = \"\";\r\n\r\n if (values.patientNumber) {\r\n auditDescription = `${rootStore.userStore.user.username} has searched for patient ID:${values.patientNumber}`;\r\n patientNumber = values.patientNumber;\r\n actionName = \"ByNumber\";\r\n } else {\r\n auditDescription = `${rootStore.userStore.user.username} has searched for ${values.forename} ${values.surname}`;\r\n patientNumber = \"\";\r\n actionName = \"ByName\";\r\n } \r\n\r\n let audit = {\r\n module: \"Search\",\r\n description: auditDescription,\r\n username: rootStore.userStore.user.username,\r\n action: actionName,\r\n documentId: \"\",\r\n patientId: patientNumber,\r\n visitId: \"\",\r\n practiceId: practice\r\n }\r\n\r\n rootStore.auditStore.addEntry(audit)\r\n }\r\n\r\n return (\r\n \r\n (\r\n
\r\n
\r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n <>\r\n \r\n {meta.error && meta.touched}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n {({ input, meta }) => (\r\n <>\r\n \r\n {meta.error && meta.touched }\r\n \r\n )}\r\n \r\n
\r\n
\r\n \r\n {({ input, meta }) => (\r\n <>\r\n \r\n {meta.error && meta.touched}\r\n \r\n )}\r\n \r\n
\r\n
\r\n \r\n {({ input, meta }) => (\r\n <>\r\n \r\n {meta.error && meta.touched}\r\n \r\n )}\r\n \r\n
\r\n
\r\n \r\n {({ input, meta }) => (\r\n <>\r\n \r\n {meta.error && meta.touched}\r\n \r\n )}\r\n \r\n
\r\n
\r\n \r\n {({ input, meta }) => (\r\n <>\r\n \r\n {meta.error && meta.touched}\r\n \r\n )}\r\n \r\n
\r\n
\r\n \r\n {\r\n let vals = {\r\n forename: null,\r\n surname: null, \r\n dateOfBirth: null,\r\n addressLine1: null,\r\n postCode: null,\r\n patientNumber: null,\r\n isAnonymised: process.env.REACT_APP_IS_ANONYMOUS === \"true\"\r\n }\r\n stateSetter(vals);\r\n form.reset(vals);\r\n }}\r\n className=\"ml-2\" size=\"lg\"\r\n color=\"secondary\"\r\n disabled={submitting}>\r\n Reset\r\n \r\n
\r\n\r\n
\r\n )} />\r\n\r\n
\r\n )\r\n\r\n}\r\nexport default observer(PatientNameForm)","import { observable, action, runInAction, toJS } from 'mobx'\r\nimport { IInpatient, IInpatientValues, IPatientValues, ILocation, IInvestigationValues, IMedicationsValues, VisitAdmission, Patient, PatientProblem, PatientAllergy, VisitAppointment, MigResponse, MigSubmitValues, IMedication, DocumentInformation, DivisionStats, IContactValues, DocumentRows, Investigation, RecordInvestigation, IDTLocations, IDTStats, DocumentReference, IDTInpatient, CareHomesStats, PersonContactReference, VisitRequest, IdDescriptionPair, RhrDocument} from '../models/inpatient'\r\nimport agent from '../api/agent';\r\nimport { createContext } from 'react';\r\nimport { toast } from 'react-toastify';\r\nimport { ShortDateTimeFormat } from 'features/patientrecord/common/DateTimeFunctions';\r\nclass InpatientStore {\r\n @observable IsAnonymous = process.env.REACT_APP_IS_ANONYMOUS === \"true\";\r\n @observable inpatients: IInpatient[] = [];\r\n @observable discharges: IInpatient[] = [];\r\n @observable stats: DivisionStats[] = [];\r\n @observable inpatient: IInpatient;\r\n @observable patient: Patient;\r\n @observable locations: ILocation[] = [];\r\n @observable admissions: VisitAdmission[] = [];\r\n @observable problems: PatientProblem[] = [];\r\n @observable referrals: VisitRequest[] = [];\r\n @observable allergies: PatientAllergy[] = [];\r\n @observable investigations: Investigation[] = null;\r\n @observable recordinvestigations: RecordInvestigation = null;\r\n @observable CarehomesInpatients: IInpatient[] = [];\r\n @observable CarehomeStats: CareHomesStats = { all: null, covid:null }\r\n @observable CarehomesFilter: string[] = [];\r\n @observable DefaultCarehomesInpatients: IInpatient[] = [];\r\n @observable IDTInpatients: IDTInpatient[];\r\n @observable IDTLocations: IDTLocations[];\r\n @observable IDTStats: IDTStats = {all : null,accepted:null,completed:null,rejected:null,toAction:null,pdd:null,pdd1:null}\r\n @observable appointments: VisitAppointment[] = [];\r\n @observable mig: MigResponse;\r\n @observable documents: DocumentInformation[] = [];\r\n @observable medications: IMedication[] = [];\r\n @observable assessments: DocumentReference[] = [];\r\n @observable bays: string[];\r\n @observable contacts: PersonContactReference[] = [];\r\n @observable document: RhrDocument;\r\n @observable caseloads: IdDescriptionPair[] = [];\r\n @observable loadingInitial = false;\r\n @observable isLoaded = false;\r\n @observable isDischargesLoaded = false;\r\n @observable isContactsLoaded = false;\r\n @observable isImagingLoaded = false;\r\n @observable isReferralsLoaded = false;\r\n @observable isProblemsLoaded = false;\r\n @observable isObservationsLoaded = false;\r\n @observable isAllergiesLoaded = false;\r\n @observable isInvestigationsLoaded = false;\r\n @observable isMedicationsLoaded = false;\r\n @observable isCaseloadsLoaded = false;\r\n @observable isInpatientLoaded = false;\r\n @observable isPatientRecord = false;\r\n @observable isAppointmentsLoaded = 0;\r\n @observable isAdmissionsLoaded = false;\r\n @observable isMigLoaded = false;\r\n @observable isDocumentsLoaded = false;\r\n @observable IsStatsLoaded = false;\r\n @observable isDocumentLoaded = false; \r\n @action loadInpatients = (location: string, role: string, isAnonymised: boolean) => {\r\n this.inpatients = [];\r\n this.bays = [];\r\n this.isLoaded = false;\r\n let inpatientValues: IInpatientValues = { location: location, role: role, isAnonymised: isAnonymised }\r\n agent.Inpatient.list(inpatientValues)\r\n .then(inpatients => {\r\n inpatients.forEach((inpatient) => {\r\n runInAction(() => {\r\n this.inpatients.push(inpatient);\r\n })\r\n })\r\n runInAction(() => {\r\n this.bays = [...new Set(this.inpatients.map(item => item.currentLocation.room.description))];\r\n this.isLoaded = true;\r\n })\r\n\r\n })\r\n\r\n }\r\n @action loadBedInpatients = (location: string, role: string, isAnonymised: boolean,practice:string) => {\r\n this.inpatients = [];\r\n this.bays = [];\r\n this.isLoaded = false;\r\n let inpatientValues: IInpatientValues = { location: location, role: role, isAnonymised: isAnonymised }\r\n agent.Inpatient.list(inpatientValues)\r\n .then(inpatients => {\r\n inpatients.forEach((inpatient) => {\r\n runInAction(() => {\r\n this.inpatients.push(inpatient);\r\n })\r\n })\r\n runInAction(() => {\r\n if (practice !== \"\") {\r\n this.inpatients = this.inpatients.filter(x => x.patient?.gpDetails?.registeredPracticeCode === practice)\r\n }\r\n this.bays = [...new Set(this.inpatients.map(item => item.currentLocation.room.description))];\r\n this.isLoaded = true;\r\n })\r\n\r\n })\r\n\r\n }\r\n @action filterCarehomesInpatients = (value: string) => {\r\n if (value === 'All') {\r\n this.CarehomesInpatients = this.DefaultCarehomesInpatients;\r\n this.CarehomeStats.all.data = this.DefaultCarehomesInpatients;\r\n this.CarehomeStats.covid.data = this.DefaultCarehomesInpatients.filter(x => x.patient.flags.cov19);\r\n\r\n } else {\r\n this.CarehomesInpatients = this.DefaultCarehomesInpatients.filter(x => x.currentLocation.location.description === value);\r\n this.CarehomeStats.all.data = this.DefaultCarehomesInpatients.filter(x => x.currentLocation.location.description === value);\r\n this.CarehomeStats.covid.data = this.DefaultCarehomesInpatients.filter(x => x.currentLocation.location.description === value && x.patient.flags.cov19);\r\n\r\n }\r\n }\r\n @action loadCarehomesDashboard = (isAnonymised: boolean) => {\r\n this.isLoaded = false;\r\n toast.info(\"Currently Loading Data..\");\r\n this.CarehomesInpatients = [];\r\n let inpatientValues: IInpatientValues = { location: \"DAVIESCT\", role: null, isAnonymised: isAnonymised }\r\n agent.Inpatient.list(inpatientValues)\r\n .then(inpatients => {\r\n runInAction(() => {\r\n this.CarehomesInpatients = inpatients.filter(x => x.patient !== null);\r\n this.DefaultCarehomesInpatients = inpatients.filter(x => x.patient !== null);\r\n })\r\n\r\n let inpatientValues2: IInpatientValues = { location: \"ATHORPE\", role: null, isAnonymised: isAnonymised }\r\n agent.Inpatient.list(inpatientValues2).then(inpatients2 => {\r\n runInAction(() => {\r\n\r\n let filteredInpatients = inpatients2.filter(x => x.patient != null);\r\n this.CarehomesInpatients = this.CarehomesInpatients.concat(filteredInpatients);\r\n this.DefaultCarehomesInpatients = this.DefaultCarehomesInpatients.concat(filteredInpatients);\r\n })\r\n }).finally(() => {\r\n runInAction(() => {\r\n\r\n this.CarehomeStats.all = {\r\n dataItemName: 'All',\r\n title: 'All Inpatients',\r\n description: 'Any current inpatient that belongs to carehomes.',\r\n data: this.CarehomesInpatients\r\n }\r\n this.CarehomeStats.covid = {\r\n dataItemName: 'Covid',\r\n title: 'Covid Inpatients',\r\n description: 'Any current inpatient that belongs to selected carehomes with covid.',\r\n data: this.CarehomesInpatients.filter(x => x.patient.flags.cov19)\r\n }\r\n toast.success(\"Successfully loaded \" + inpatients.length + \" inpatients.\")\r\n this.CarehomesFilter = [...new Set(this.CarehomesInpatients.map(item => item.currentLocation.location.description ))];\r\n\r\n console.log(toJS(this.CarehomesInpatients));\r\n this.isLoaded = true;\r\n })\r\n \r\n })\r\n })\r\n\r\n }\r\n @action loadIDTDashboard = (isAnonymised: boolean) => {\r\n this.isLoaded = false;\r\n this.IDTInpatients = [];\r\n this.IDTLocations = [];\r\n let _referralDescription = 'IDT Single Referral Order'; \r\n agent.Patient.Assessments({})\r\n .then(assessments => {\r\n runInAction(() => {\r\n this.assessments = assessments;\r\n console.log(assessments);\r\n })\r\n \r\n })\r\n let inpatientValues: IInpatientValues = { location: null, role: null, isAnonymised: isAnonymised }\r\n agent.Inpatient.list(inpatientValues)\r\n .then(inpatients => {\r\n \r\n runInAction(() => {\r\n this.IDTInpatients = inpatients.filter(pt => pt.patient.systemInternalIdentifier.value !== '' && pt.patient.referrals && pt.patient.referrals.filter(rf => rf.procedure.description === _referralDescription).length > 0);\r\n for (let i = 0; i < this.IDTInpatients.length; i++) { \r\n if (this.IDTInpatients[i].patient.systemInternalIdentifier.value !== '' && this.IDTInpatients[i].patient.referrals && this.IDTInpatients[i].patient.referrals.filter(rf => rf.type.description === _referralDescription).length > 0) {\r\n this.IDTInpatients[i].idtReferral = this.IDTInpatients[i].patient.referrals.filter(rf => rf.procedure.description === _referralDescription).sort((a, b) => b.requestDateTime - a.requestDateTime)[0];\r\n this.IDTInpatients[i].idtInfo = this.assessments.filter(a => a.accountLinkId === this.IDTInpatients[i].systemInternalIdentifier.value);\r\n if (this.MedicallyFit(this.IDTInpatients[i].idtInfo)) {\r\n this.IDTInpatients[i].notes = this.Notes(this.IDTInpatients[i].idtInfo);\r\n this.IDTInpatients[i].mffd = this.Mffd(this.IDTInpatients[i].idtInfo);\r\n this.IDTInpatients[i].exitStrategy = this.ExitStrategy(this.IDTInpatients[i].idtInfo);\r\n this.IDTInpatients[i].pdd = this.Pdd(this.IDTInpatients[i].idtInfo);\r\n this.IDTInpatients[i].dtoc = this.dtoc(this.IDTInpatients[i].idtInfo);\r\n }\r\n }\r\n }\r\n this.IDTStats.all = {\r\n dataItemName: 'All',\r\n title: 'All Referred Inpatients',\r\n description: 'Any current inpatient that has a IDT Single Referral order submitted.',\r\n data: this.IDTInpatients\r\n }\r\n this.IDTStats.accepted = {\r\n dataItemName: 'Accepted',\r\n title: 'Accepted Referred Inpatients',\r\n description: 'Any current inpatient that has a IDT Single Referral order submitted and is accepted by IDT.',\r\n data: this.IDTInpatients.filter(inpatient => inpatient.idtReferral.resultStatus === 'Accept')\r\n }\r\n this.IDTStats.rejected = {\r\n dataItemName: 'Rejected',\r\n title: 'Rejected Referred Inpatients',\r\n description: 'Any current inpatient that has a IDT Single Referral order submitted and is rejected by IDT.',\r\n data: this.IDTInpatients.filter(inpatient => inpatient.idtReferral.resultStatus === 'Reject')\r\n }\r\n this.IDTStats.toAction = {\r\n dataItemName: 'toAction',\r\n title: 'Incoming Referrals',\r\n description: 'Any current inpatient that has a IDT Single Referral order submitted and is awaiting action by IDT.',\r\n data: this.IDTInpatients.filter(inpatient => inpatient.idtReferral.status === 'In Process')\r\n }\r\n this.isLoaded = true;\r\n })\r\n \r\n\r\n })\r\n\r\n }\r\n @action loadRecentlyDischarged = (location: string, isAnonymised: boolean) => {\r\n this.discharges = [];\r\n this.isDischargesLoaded = false;\r\n \r\n let inpatientValues: IInpatientValues = { location: location, isAnonymised: isAnonymised, role:null, patientId:null }\r\n agent.Inpatient.discharges(inpatientValues)\r\n .then(inpatients => {\r\n inpatients.forEach((inpatient) => {\r\n runInAction(() => {\r\n if (inpatient.patient !== null || inpatient.systemInternalIdentifier !== null) {\r\n let query = inpatient.patient.queries.filter(x => x.grouping === 'Discharge Information');\r\n inpatient.dischargeSummary = { nursingComments: null, additionalInformation: null, managementPlan: null, servicesArranged: null };\r\n inpatient.dischargeSummary.nursingComments = query.filter(f => f.query.id === 'GEN.NDC')[0];\r\n inpatient.dischargeSummary.managementPlan = query.filter(f => f.query.id === 'GEN.SMPFU3')[0];\r\n inpatient.dischargeSummary.servicesArranged = query.filter(f => f.query.id === 'SD.DC1')[0];\r\n inpatient.dischargeSummary.additionalInformation = query.filter(f => f.query.id === 'GEN.ADI')[0];\r\n\r\n this.discharges.push(inpatient); \r\n\r\n }\r\n\r\n }\r\n )\r\n })\r\n runInAction(() => {\r\n this.isDischargesLoaded = true;\r\n })\r\n\r\n })\r\n\r\n }\r\n\r\n @action loadlocations = () => {\r\n this.locations = [];\r\n agent.Location.list()\r\n .then(locations => {\r\n locations.forEach((location) => {\r\n runInAction(() => {\r\n this.locations.push(location);\r\n }\r\n\r\n )\r\n })\r\n runInAction(() => {\r\n\r\n })\r\n\r\n\r\n })\r\n\r\n }\r\n @action setInpatient = (inpatient: IInpatient) => {\r\n runInAction(() => {\r\n this.inpatient = inpatient;\r\n })\r\n }\r\n @action getInpatient = (isAnonymised = false, visitId:string,patientId:string) => {\r\n this.isPatientRecord = false;\r\n if (visitId !== null) {\r\n let inpatientValues: IInpatientValues = { location: '', isAnonymised: false, patientId: visitId, role: '' }\r\n agent.Inpatient.get(inpatientValues)\r\n .then(inpatient => {\r\n runInAction(() => {\r\n this.setInpatient(inpatient);\r\n this.isPatientRecord = true;\r\n })\r\n })\r\n \r\n }\r\n }\r\n @action setModalInpatient = (inpatient:IInpatient) => {\r\n this.inpatient = inpatient;\r\n }\r\n @action loadContacts = (patient :Patient , isAnonymous:boolean) => {\r\n this.isContactsLoaded = false;\r\n if (this.inpatient !== undefined) {\r\n this.inpatient.patient.contacts = [];\r\n }\r\n let patientValues: IContactValues = { systemIdentifier: patient.systemInternalIdentifier.value, isAnonymous: isAnonymous }\r\n agent.Patient.Contacts(patientValues)\r\n .then(contacts => {\r\n runInAction(() => {\r\n if (this.inpatient !== undefined) {\r\n\r\n this.inpatient.patient.contacts = contacts;\r\n } else {\r\n this.contacts = contacts;\r\n }\r\n this.isContactsLoaded = true;\r\n\r\n\r\n })\r\n })\r\n\r\n }\r\n\r\n @action loadProblems = (inpatient: IInpatient) => {\r\n this.isProblemsLoaded = false;\r\n //this.inpatient.patient.problems = [];\r\n let patientValues: IPatientValues = { systemIdentifier: inpatient.patient.systemInternalIdentifier.value, patientIdentifier: null, visitIdentifier: null }\r\n agent.Patient.Problems(patientValues)\r\n .then(problems => {\r\n runInAction(() => {\r\n this.inpatient.patient.problems = problems\r\n this.isProblemsLoaded = true;\r\n\r\n })\r\n })\r\n\r\n\r\n }\r\n @action loadPatientProblems = (patientId :string) => {\r\n this.isProblemsLoaded = false;\r\n this.problems = [];\r\n let patientValues: IPatientValues = { systemIdentifier: patientId, patientIdentifier: null, visitIdentifier: null }\r\n agent.Patient.Problems(patientValues)\r\n .then(problems => {\r\n runInAction(() => {\r\n this.problems = problems\r\n this.isProblemsLoaded = true;\r\n\r\n })\r\n })\r\n\r\n\r\n }\r\n @action loadAppointments = (inpatient: IInpatient) => {\r\n this.isAppointmentsLoaded = 1;\r\n this.inpatient.patient.appointments = [];\r\n let patientValues: IPatientValues = { systemIdentifier: inpatient.patient.systemInternalIdentifier.value, patientIdentifier: null, visitIdentifier: null }\r\n agent.Patient.Appointments(patientValues)\r\n .then(appointments => {\r\n runInAction(() => {\r\n this.inpatient.patient.appointments = appointments;\r\n this.isAppointmentsLoaded = 2;\r\n\r\n })\r\n })\r\n\r\n\r\n }\r\n @action loadPatientAppointments = (patientId:string) => {\r\n this.isAppointmentsLoaded = 1;\r\n this.appointments = [];\r\n let patientValues: IPatientValues = { systemIdentifier: patientId, patientIdentifier: patientId, visitIdentifier: null }\r\n agent.Patient.Appointments(patientValues)\r\n .then(appointments => {\r\n runInAction(() => {\r\n this.appointments = appointments;\r\n this.isAppointmentsLoaded = 2;\r\n })\r\n })\r\n\r\n }\r\n @action loadImaging = (inpatient: IInpatient) => {\r\n this.isImagingLoaded = false;\r\n this.inpatient.patient.imaging = [];\r\n\r\n let patientValues: IPatientValues = { systemIdentifier: null, patientIdentifier: inpatient.patient.systemInternalIdentifier.value, visitIdentifier: null }\r\n agent.Patient.Imaging(patientValues)\r\n .then(imaging => {\r\n runInAction(() => {\r\n\r\n this.inpatient.patient.imaging = imaging;\r\n this.isImagingLoaded = true;\r\n })\r\n })\r\n\r\n runInAction(() => {\r\n })\r\n\r\n }\r\n @action loadCaseloads = (patient: Patient) => {\r\n this.isCaseloadsLoaded = false;\r\n if (this.inpatient !== undefined) {\r\n this.inpatient.patient.caseloads = [];\r\n }\r\n let patientValues: IPatientValues = { systemIdentifier: null, patientIdentifier: patient.systemInternalIdentifier.value, visitIdentifier: null }\r\n agent.Patient.Caseloads(patientValues)\r\n .then(caseloads => {\r\n runInAction(() => {\r\n if (this.inpatient !== undefined) {\r\n this.inpatient.patient.caseloads = caseloads;\r\n } else {\r\n this.caseloads = caseloads;\r\n }\r\n this.isCaseloadsLoaded = true;\r\n\r\n })\r\n })\r\n\r\n runInAction(() => {\r\n })\r\n\r\n }\r\n @action loadPatientInvestigations = (patientId:string, startDate:Date, endDate:Date) => {\r\n this.isInvestigationsLoaded = false;\r\n this.investigations = null;\r\n let investigationValues: IInvestigationValues = { systemIdentifier: patientId, fromDate: startDate, toDate:endDate }\r\n agent.Patient.RecordInvestigations(investigationValues)\r\n .then(investigations => {\r\n runInAction(() => {\r\n console.log(investigations);\r\n\r\n this.recordinvestigations = investigations;\r\n this.isInvestigationsLoaded = true;\r\n\r\n })\r\n })\r\n\r\n\r\n }\r\n @action loadInvestigations = (inpatient: IInpatient) => {\r\n this.isInvestigationsLoaded = false;\r\n this.inpatient.patient.investigations = null;\r\n let date = new Date();\r\n date.setMonth(date.getMonth() - 1);\r\n let fromDate: Date = inpatient.admissionDetails ? inpatient.admissionDetails.admissionDateTime : date;\r\n let investigationValues: IInvestigationValues = { systemIdentifier: inpatient.patient.systemInternalIdentifier.value, fromDate:fromDate , toDate : new Date() }\r\n agent.Patient.Investigations(investigationValues)\r\n .then(investigations => {\r\n runInAction(() => {\r\n console.log(investigations);\r\n this.inpatient.patient.investigations = investigations;\r\n this.isInvestigationsLoaded = true;\r\n\r\n })\r\n })\r\n\r\n\r\n }\r\n \r\n @action loadReferrals= (patient: Patient) => {\r\n this.isReferralsLoaded = false;\r\n if (this.inpatient !== undefined) {\r\n this.inpatient.patient.referrals = [];\r\n }\r\n let patientValues: IPatientValues = { systemIdentifier: null, patientIdentifier: patient.systemInternalIdentifier.value, visitIdentifier: null }\r\n agent.Patient.Referrals(patientValues)\r\n .then(referrals => {\r\n runInAction(() => {\r\n if (this.inpatient !== undefined) {\r\n this.inpatient.patient.referrals = referrals;\r\n } else {\r\n this.referrals = referrals;\r\n }\r\n this.isReferralsLoaded = true;\r\n\r\n })\r\n })\r\n\r\n\r\n }\r\n @action loadStats = (isCarehomes :boolean) => {\r\n this.IsStatsLoaded = false;\r\n let patientValues: IInpatientValues;\r\n if (isCarehomes) {\r\n patientValues = { isAnonymised: false, patientId: null, location: \"carehomes\", role: null }\r\n } else {\r\n patientValues = { isAnonymised: false, patientId: null, location: null, role: null }\r\n\r\n }\r\n agent.Inpatient.stats(patientValues)\r\n .then(stats => {\r\n runInAction(() => {\r\n this.stats = stats;\r\n console.log(stats);\r\n this.IsStatsLoaded = true;\r\n\r\n })\r\n })\r\n\r\n\r\n }\r\n @action loadObservations = (inpatient: IInpatient) => {\r\n this.isObservationsLoaded = false;\r\n this.inpatient.patient.observations = [];\r\n\r\n let patientValues: IPatientValues = { systemIdentifier: null, patientIdentifier:null, visitIdentifier: inpatient.systemInternalIdentifier.value }\r\n agent.Patient.Observations(patientValues)\r\n .then(observations => {\r\n runInAction(() => {\r\n this.inpatient.patient.observations = observations;\r\n this.isObservationsLoaded = true;\r\n\r\n })\r\n })\r\n\r\n runInAction(() => {\r\n })\r\n\r\n }\r\n @action loadAllergies = (systemIdentifier: string) => {\r\n this.isAllergiesLoaded = false;\r\n this.inpatient.patient.observations = [];\r\n let patientValues: IPatientValues = { systemIdentifier: systemIdentifier, patientIdentifier: null, visitIdentifier: null }\r\n agent.Patient.Allergies(patientValues)\r\n .then(allergies => {\r\n runInAction(() => {\r\n this.inpatient.patient.allergies = allergies;\r\n this.isAllergiesLoaded = true;\r\n\r\n })\r\n })\r\n\r\n runInAction(() => {\r\n })\r\n\r\n }\r\n @action loadPatientAllergies = (patientId) => {\r\n this.isAllergiesLoaded = false;\r\n this.allergies = [];\r\n let patientValues: IPatientValues = { systemIdentifier: patientId, patientIdentifier: null, visitIdentifier: null }\r\n agent.Patient.Allergies(patientValues)\r\n .then(allergies => {\r\n runInAction(() => {\r\n this.allergies = allergies;\r\n this.isAllergiesLoaded = true;\r\n\r\n })\r\n })\r\n }\r\n \r\n \r\n\r\n\r\n\r\n @action loadMedications = (inpatient: IInpatient) => {\r\n this.inpatient.patient.medications = [];\r\n this.isMedicationsLoaded = false;\r\n\r\n let patientValues: IMedicationsValues = { Identifier: inpatient.systemInternalIdentifier.value }\r\n agent.Patient.Medications(patientValues)\r\n .then(medications => {\r\n runInAction(() => {\r\n this.inpatient.patient.medications = medications;\r\n this.isMedicationsLoaded = true;\r\n })\r\n })\r\n\r\n }\r\n @action loadPatientMedications = (patientId: string) => {\r\n this.medications = [];\r\n this.isMedicationsLoaded = false;\r\n\r\n let patientValues: IMedicationsValues = { Identifier: patientId }\r\n agent.Patient.Medications(patientValues)\r\n .then(medications => {\r\n runInAction(() => {\r\n this.medications = medications;\r\n this.isMedicationsLoaded = true;\r\n })\r\n })\r\n\r\n }\r\n @action loadPatientAdmissions = (patientId :string) => {\r\n this.isAdmissionsLoaded = false;\r\n this.admissions = [];\r\n let patientValues: IPatientValues = { systemIdentifier: patientId, patientIdentifier:null,visitIdentifier:null }\r\n agent.Patient.Admissions(patientValues)\r\n .then(admissions => {\r\n runInAction(() => {\r\n this.admissions = admissions;\r\n this.isAdmissionsLoaded = true;\r\n\r\n })\r\n })\r\n runInAction(() => {\r\n })\r\n }\r\n @action loadPatientDocuments = (patientId: string) => {\r\n this.isDocumentsLoaded = false;\r\n this.documents = [];\r\n let patientValues: IPatientValues = { systemIdentifier: patientId, patientIdentifier: null, visitIdentifier: null }\r\n agent.Patient.Documents(patientValues)\r\n .then(documents => {\r\n runInAction(() => {\r\n this.documents = documents;\r\n this.isDocumentsLoaded = true;\r\n\r\n })\r\n })\r\n runInAction(() => {\r\n })\r\n }\r\n @action loadPatientDocument = (docId: string) => {\r\n this.isDocumentLoaded = false;\r\n this.document = null;\r\n let patientValues: IPatientValues = { systemIdentifier: docId, patientIdentifier: null, visitIdentifier: null }\r\n agent.Patient.Document(patientValues)\r\n .then(document => {\r\n runInAction(() => {\r\n this.document = document;\r\n this.isDocumentLoaded = true;\r\n\r\n })\r\n })\r\n runInAction(() => {\r\n })\r\n }\r\n @action loadMig = (values:MigSubmitValues ) => {\r\n this.isMigLoaded = false;\r\n\r\n agent.Patient.Mig(values)\r\n .then(mig => {\r\n runInAction(() => {\r\n console.log(values,mig);\r\n mig.content = mig.content.replace(/\\\\/g, \"\");\r\n this.mig = mig;\r\n this.isMigLoaded = true;\r\n })\r\n })\r\n\r\n runInAction(() => {\r\n })\r\n\r\n }\r\n getQuery(document, query) {\r\n if (document && document.sections) {\r\n let questions = document.sections.map(s => s.questions)[0];\r\n if (questions.length) {\r\n let question = questions.filter(q => q.queryType.id === query);\r\n if (question) {\r\n return question[0];\r\n }\r\n }\r\n }\r\n return;\r\n }\r\n MedicallyFit(array) {\r\n return toJS(array.filter(a => a.document.id === \"TOC.MEDFFD\"))[0];\r\n }\r\n dtoc(array) {\r\n let query = this.getQuery(toJS(this.MedicallyFit(array)), 'TOC.START');\r\n let response = query ? query.responseValue : undefined;\r\n return response;\r\n }\r\n Mffd(array) {\r\n let query = this.getQuery(toJS(this.MedicallyFit(array)), 'TOC.STATUS');\r\n let value = query ? query.responseValue : '';\r\n return value;\r\n }\r\n\r\n StatusColour(status:string) {\r\n switch (status) {\r\n case 'Accept':\r\n return \"rgba(0, 150, 50)\";\r\n case 'Reject':\r\n return \"rgba(150, 0, 50)\";\r\n default:\r\n return \"rgba(0, 60, 180)\";\r\n }\r\n }\r\n Pdd(array) {\r\n let query = this.getQuery(toJS(this.MedicallyFit(array)), 'PDD');\r\n let response = query ? query.responseValue : undefined;\r\n return response;\r\n }\r\n ExitStrategy(array) {\r\n let query = this.getQuery(toJS(this.MedicallyFit(array)), 'TOC.EXIT');\r\n let value = query ? query.responseValue : '';\r\n return value;\r\n }\r\n Notes(array) {\r\n let query = this.getQuery(toJS(this.MedicallyFit(array)), 'TOC.NOTES');\r\n let value = query ? query.responseValue : '';\r\n\r\n if (value) {\r\n value = value.replace(/\\[AND\\]/g, '
\\n');\r\n value = value.replace(/\\x20MFFD/g, ' MFFD');\r\n value = value.replace(/\\x20NMFFD/g, ' NMFFD');\r\n value = value.replace(/^\\x20?(\\d+[-\\/]\\d+(\\/\\d+)?)(.+)$/gm, '$1
  • $3
  • ');\r\n }\r\n return value;\r\n }\r\n getMomentDate(jsonDate) {\r\n return ShortDateTimeFormat(jsonDate);\r\n }\r\n}\r\n\r\nfunction pad(str, max) {\r\n str = str.toString();\r\n return str.length < max ? pad(\"0\" + str, max) : str;\r\n}\r\nconst inpatientStore = createContext(new InpatientStore());\r\n\r\nexport default inpatientStore;\r\n\r\n\r\n\r\n\r\n","import React, { useState, useEffect, useContext } from \"react\";\r\nimport { Row, Col, Container, Card, CardBody } from \"reactstrap\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport PatientResults from \"./PatientResults\";\r\nimport PatientNameForm from \"./PatientNameForm\";\r\nimport { ISearchSubmitValues } from \"../../app/models/search\";\r\nimport InpatientStore from \"../../app/stores/inpatientStore\";\r\nimport agent from \"app/api/agent\";\r\nimport { Patient } from '../../app/models/inpatient';\r\n\r\nconst PatientSearch: React.FC = () => {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n const inpatientStore = useContext(InpatientStore);\r\n const [results, setResults] = useState([]);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [error, setError] = useState();\r\n const [searchParams, setSearchParams] = useState({\r\n forename: null,\r\n surname: null,\r\n addressLine1: null,\r\n dateOfBirth: null,\r\n postCode: null,\r\n patientNumber: null,\r\n isAnonymised: inpatientStore.IsAnonymous,\r\n });\r\n\r\n useEffect(() => {\r\n if (urlParams.get(\"number\")) {\r\n setSearchParams({\r\n ...searchParams, patientNumber: urlParams.get(\"number\")\r\n });\r\n } else if (urlParams.get(\"name\")) {\r\n let name = urlParams.get(\"name\");\r\n if (name.indexOf(' ') > -1) {\r\n setSearchParams({\r\n ...searchParams, forename: name.split(\" \")[0], surname: name.split(\" \")[1]\r\n });\r\n } else {\r\n setSearchParams({\r\n ...searchParams, surname: name.split(\" \")[0]\r\n });\r\n }\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (searchParams.patientNumber !== null && searchParams.patientNumber !== undefined && searchParams.patientNumber !== \"\") {\r\n setIsLoading(true)\r\n setResults([]);\r\n agent.Patient.Get({ \r\n systemIdentifier: searchParams.patientNumber,\r\n isAnonymised: inpatientStore.IsAnonymous\r\n })\r\n .then(resp => { setResults([resp]); setError(undefined); })\r\n .catch(err => setError(err))\r\n .finally(() => setIsLoading(false));\r\n } else {\r\n if (\r\n searchParams.forename !== null ||\r\n searchParams.surname !== null ||\r\n searchParams.addressLine1 !== null ||\r\n searchParams.postCode !== null\r\n ) {\r\n setIsLoading(true);\r\n setResults([]);\r\n agent.Search.Advanced(searchParams)\r\n .then(resp => { setResults(resp); setError(undefined); })\r\n .catch(err => setError(err))\r\n .finally(() => setIsLoading(false));\r\n \r\n }\r\n }\r\n }, [searchParams]);\r\n\r\n useEffect(() => {\r\n \r\n }, [results]);\r\n\r\n return (\r\n \r\n \r\n \r\n

    Patient Search

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

     

    \r\n \r\n \r\n
    \r\n
    \r\n );\r\n};\r\nexport default observer(PatientSearch);\r\n","import React, { useContext } from \"react\";\r\nimport { Patient } from \"../../../app/models/inpatient\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { Link } from \"react-router-dom\";\r\nimport SearchStore from \"../../../app/stores/searchStore\";\r\nimport { ShortDateOnlyFormat } from \"features/patientrecord/common/DateTimeFunctions\";\r\n\r\ninterface IProps {\r\n handleSelectPatient;\r\n}\r\n\r\nconst CareHomeResults: React.FC = ({ handleSelectPatient }) => {\r\n const searchStore = useContext(SearchStore);\r\n\r\n return (\r\n <>\r\n
    \r\n
    \r\n

    Search Results

    \r\n
    \r\n
    \r\n {searchStore.isPatientsLoaded &&\r\n searchStore.patients &&\r\n searchStore.patients.length > 0 &&\r\n searchStore.patients.map((patient: Patient, index) => (\r\n <>\r\n
    \r\n
    \r\n
    \r\n
    \r\n handleSelectPatient(patient)}>\r\n \r\n {patient.systemPublicIdentifier.value}\r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n Born:{\" \"}\r\n \r\n {ShortDateOnlyFormat(patient.dateOfBirth)}\r\n \r\n \r\n \r\n \r\n {patient.name.forename} {patient.name.surname}\r\n \r\n
    \r\n {patient.contactDetails && (\r\n \r\n {patient.contactDetails.address.line1}\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ))}\r\n
    \r\n
    \r\n \r\n );\r\n};\r\nexport default observer(CareHomeResults);\r\n","import React, { useState, Fragment, useContext, useEffect } from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { RootStoreContext } from \"../../../app/stores/rootStore\";\r\nimport InpatientStore from \"../../../app/stores/inpatientStore\";\r\nimport SearchStore from \"../../../app/stores/searchStore\";\r\nimport PatientNameForm from \"../../search/PatientNameForm\";\r\nimport CareHomeResults from \"./CareHomeResults\";\r\nimport { Patient } from \"../../../app/models/inpatient\";\r\n\r\nconst CarehomesMainLayout: React.FC = () => {\r\n const inpatientStore = useContext(InpatientStore);\r\n const [toggle, setToggle] = useState(false);\r\n const rootStore = useContext(RootStoreContext);\r\n const [patient, setPatient] = useState();\r\n const searchStore = useContext(SearchStore);\r\n\r\n let practice: string = \"\";\r\n if (rootStore.userStore.user.practice) {\r\n practice = rootStore.userStore.user.practice.code;\r\n }\r\n const handleSelectPatient = (value: Patient) => {\r\n searchStore\r\n .getPatient(\r\n value.systemInternalIdentifier.value,\r\n inpatientStore.IsAnonymous\r\n )\r\n .then(() => {\r\n setPatient(searchStore.patient);\r\n });\r\n setToggle(!toggle);\r\n };\r\n const handleToggle = () => {\r\n setToggle(!toggle);\r\n };\r\n\r\n let auditEntry = {\r\n module: \"Dashboards\",\r\n description: \"Accessed Carehomes Dashboard\",\r\n patientId: \"\",\r\n documentId: \"\",\r\n visitId: \"\",\r\n page: window.location.pathname,\r\n action: \"Carehomes Dashboard\",\r\n username: rootStore.userStore.user.username,\r\n practiceId: practice,\r\n };\r\n useEffect(() => {\r\n rootStore.auditStore.addEntry(auditEntry);\r\n }, []);\r\n\r\n const canvasStyle = {\r\n backgroundColor: \"rgba(0,0,0,.1)\",\r\n };\r\n\r\n return (\r\n \r\n \r\n
    \r\n
    \r\n

    \r\n Carehomes View\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {!toggle ? (\r\n \r\n ) : (<>\r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\nexport default observer(CarehomesMainLayout);\r\n","import { observable, action, runInAction } from 'mobx'\r\nimport agent from \"../api/agent\"\r\nimport { createContext } from 'react';\r\nimport { Patient, PatientAllergy } from '../models/inpatient';\r\n\r\nclass PatientRecordStore {\r\n @observable IsAnonymous = process.env.REACT_APP_IS_ANONYMOUS === \"true\";\r\n @observable isPatientLoaded = false;\r\n @observable isAllergiesLoaded = false;\r\n @observable patient: Patient = null;\r\n @observable allergies: PatientAllergy[] = null;\r\n\r\n @action getPatient = (patientId: string) => { \r\n this.isPatientLoaded = false;\r\n this.patient = null;\r\n this.allergies = null;\r\n \r\n agent.Patient.Get({ systemIdentifier: patientId, isAnonymised: this.IsAnonymous })\r\n .then(patient => {\r\n runInAction(() => {\r\n this.patient = patient;\r\n this.isPatientLoaded = true;\r\n this.loadPatientAllergies(patientId);\r\n })\r\n })\r\n }\r\n\r\n @action loadPatientAllergies = (patientId) => {\r\n this.isAllergiesLoaded = false;\r\n this.allergies = null;\r\n\r\n agent.Patient.Allergies({ systemIdentifier: patientId, patientIdentifier: null, visitIdentifier: null })\r\n .then(allergies => {\r\n runInAction(() => {\r\n this.allergies = allergies;\r\n this.isAllergiesLoaded = true;\r\n })\r\n })\r\n }\r\n}\r\n\r\nexport default createContext(new PatientRecordStore());","import React, { useContext, Fragment, useEffect, useState } from \"react\";\r\nimport { PopoverHeader, PopoverBody, UncontrolledPopover, Card, ListGroup, ListGroupItem } from 'reactstrap'\r\nimport { observer } from \"mobx-react-lite\";\r\nimport Loader from 'react-loader-spinner'\r\nimport NhsNumber from \"features/common/NhsNumber\";\r\nimport PatientRecordStore from \"app/stores/patientRecordStore\";\r\nimport { Patient, PatientAllergy } from \"app/models/inpatient\";\r\nimport { ShortDateTimeFormat } from \"./common/DateTimeFunctions\";\r\n\r\nconst PatientRecordHeader: React.FC = () => {\r\n const patientRecordStore = useContext(PatientRecordStore);\r\n const [ patient, setPatient ] = useState(null)\r\n const [ allergies, setAllergies ] = useState(null)\r\n let urlParams = new URLSearchParams(window.location.search); \r\n\r\n useEffect(() => {\r\n if (!patientRecordStore.patient || patientRecordStore.patient.systemInternalIdentifier.value !== urlParams.get('p')) {\r\n patientRecordStore.getPatient(urlParams.get('p'))\r\n } else {\r\n setPatient(patientRecordStore.patient);\r\n }\r\n }, [patientRecordStore.patient]);\r\n\r\n useEffect(() => {\r\n if (patientRecordStore.allergies) {\r\n setAllergies(patientRecordStore.allergies);\r\n }\r\n }, [patientRecordStore.allergies]);\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n \r\n\r\n )\r\n\r\n}\r\nexport default observer(PatientRecordHeader)","import React, { Fragment } from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { NavLink } from \"react-router-dom\";\r\nimport { IPatientNav } from \"./PatientRecordPageLayout\";\r\n\r\ninterface IPatientRecordNavBarProps {\r\n menuItems?: IPatientNav[]\r\n onPageClick?: Function\r\n}\r\n\r\nconst PatientRecordNavBar: React.FC = ({ menuItems }) => {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n const pId = urlParams.get('p');\r\n const vId = urlParams.get('v');\r\n\r\n const getPageRoute = (routePath:string) => `${process.env.REACT_APP_URL_PATIENT_RECORD}${routePath}`\r\n const getPageQuery = () => `?p=${pId}&v=${vId}`\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n )\r\n}\r\nexport default observer(PatientRecordNavBar)","import React from 'react';\r\nimport { DataLoadStatus } from \"app/api/agent\";\r\n\r\ninterface IDataLoadStatusBadgeProps {\r\n status: DataLoadStatus\r\n}\r\n\r\nconst DataLoadStatusBadge: React.FC = ({ status }) => {\r\n\r\n return (\r\n DataLoadStatus[status] === \"NotAttempted\" && (\r\n \r\n Data load not started\r\n \r\n ) ||\r\n DataLoadStatus[status] === \"Loading\" && (\r\n \r\n Loading data...\r\n \r\n ) ||\r\n DataLoadStatus[status] === \"Successful\" && (\r\n \r\n Data load complete\r\n \r\n ) ||\r\n DataLoadStatus[status] === \"Failed\" && (\r\n \r\n Data load failed\r\n \r\n ) \r\n )\r\n}\r\n\r\nexport default DataLoadStatusBadge;","import React, { useState, useEffect } from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { CardBody, FormGroup, Label } from \"reactstrap\";\r\nimport { IFilter, ISort } from \"./PatientRecordListDisplay\";\r\n\r\ninterface IListFilterProps {\r\n _filters: IFilter[];\r\n _sorts: ISort[];\r\n handleFilterFunction: (element: HTMLSelectElement) => void\r\n handleSortFunction: (element: HTMLSelectElement) => void\r\n}\r\n\r\nconst PatientRecordFilter: React.FC = ({_filters, _sorts, handleFilterFunction, handleSortFunction}) => {\r\n const [filters, setFilters] = useState();\r\n const [sorts, setSorts] = useState([]);\r\n\r\n useEffect(() => { \r\n setSorts(_sorts);\r\n setFilters(_filters);\r\n\r\n _filters.forEach((filter:any, index: number) => {\r\n if (filter?.specialType && filter.specialType === \"Date\") {\r\n let arr = [];\r\n switch (filter.specialType) {\r\n case \"Date\":\r\n arr.push(\"Last week\");\r\n arr.push(\"Last fortnight\");\r\n arr.push(\"Last month\");\r\n arr.push(\"Last 3 months\");\r\n arr.push(\"Last 6 months\");\r\n arr.push(\"Last year\");\r\n break;\r\n default:\r\n break;\r\n }\r\n filter.values = arr;\r\n }\r\n })\r\n }, []);\r\n \r\n return ( \r\n filters || sorts ? (\r\n (filters && filters.length) ? (\r\n \r\n

    Filters

    \r\n {filters.map((filter:IFilter, index:number) => (\r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n ))}\r\n {sorts && sorts.length ? ( \r\n \r\n \r\n \r\n ) : <>}\r\n \r\n
    \r\n\r\n\r\n \r\n
    \r\n
    \r\n
    \r\n ) : (No filters or sorting available) \r\n ) : (<>) \r\n ) \r\n}\r\n\r\nexport default observer(PatientRecordFilter);","import React, { useEffect, useState } from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\n\r\ninterface IListCountProps {\r\n total: number,\r\n filtered: number,\r\n recordsPerPage: number,\r\n currentPage: number\r\n}\r\n\r\nconst PatientRecordCounts: React.FC = ({total, filtered, recordsPerPage, currentPage}) => { \r\n const [ pages, setPages ] = useState(Math.ceil(filtered / recordsPerPage));\r\n\r\n useEffect(() => {\r\n setPages(Math.ceil(filtered / recordsPerPage));\r\n }, [filtered])\r\n \r\n return ( \r\n <>\r\n {total === 0 ?\r\n
    \r\n There were no records found for this patient.\r\n
    \r\n :\r\n
    \r\n {total} records loaded. \r\n {total !== filtered && (\r\n <> {filtered} records displayed (filtered).\r\n )}\r\n {filtered > recordsPerPage && (\r\n <> Currently viewing page {currentPage} of {pages}.\r\n )}\r\n
    }\r\n \r\n )\r\n}\r\n\r\nexport default observer(PatientRecordCounts);","import React, { useEffect, useState } from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faAngleRight, faAngleLeft, faAngleDoubleLeft, faAngleDoubleRight } from '@fortawesome/free-solid-svg-icons';\r\n\r\ninterface IListPagingProps {\r\n records: number,\r\n perPage: number,\r\n currentPage: number,\r\n handlePagingClick: (pageNumber: number) => void\r\n}\r\n\r\nconst PatientRecordPaging: React.FC = ({records, perPage, currentPage, handlePagingClick}) => { \r\n const [ pages, setPages ] = useState({\r\n total: Math.ceil(records / perPage),\r\n min: 1,\r\n max: 0\r\n });\r\n const [ arr, setArr ] = useState([]);\r\n\r\n const createArray = () => {\r\n let arr = [];\r\n for(let i = pages.min; i <= pages.max; i++) \r\n arr.push(i)\r\n return arr;\r\n }\r\n\r\n useEffect(() => {\r\n setPages({\r\n total: Math.ceil(records / perPage),\r\n min: currentPage - 4 <= 0 ? 1 : currentPage - 4,\r\n max: ((currentPage - 4 <= 0 ? 1 : currentPage - 4) + 8 > Math.ceil(records / perPage) ? Math.ceil(records / perPage) : (currentPage - 4 <= 0 ? 1 : currentPage - 4) + 8)\r\n });\r\n }, [records])\r\n\r\n useEffect(() => {\r\n setArr(createArray());\r\n }, [pages])\r\n\r\n useEffect(() => {\r\n setPages({\r\n total: Math.ceil(records / perPage),\r\n min: currentPage - 4 <= 0 ? 1 : currentPage - 4,\r\n max: ((currentPage - 4 <= 0 ? 1 : currentPage - 4) + 8 > pages.total ? pages.total : (currentPage - 4 <= 0 ? 1 : currentPage - 4) + 8)\r\n });\r\n }, [currentPage])\r\n\r\n \r\n return ( \r\n records > perPage && (\r\n
    \r\n \r\n
    ) \r\n )\r\n}\r\n\r\nexport default observer(PatientRecordPaging);","import React, { useState, useEffect } from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport DataLoadStatusBadge from \"../DataLoadStatusBadge\";\r\nimport DataLoadErrorAlert from \"../DataLoadErrorAlert\";\r\nimport { DataLoadStatus } from \"app/api/agent\";\r\nimport PatientRecordListFilter from \"./PatientRecordListFilter\";\r\nimport PatientRecordListCounts from \"./PatientRecordListCounts\";\r\nimport Loader from \"react-loader-spinner\";\r\nimport PatientRecordListPaging from \"./PatientRecordListPaging\";\r\n\r\nexport interface IFilter {\r\n label: string;\r\n accessPath: string;\r\n values?: string[];\r\n}\r\n\r\nexport interface ISpecialFilter extends IFilter {\r\n specialType: string;\r\n}\r\n\r\nexport interface ISort {\r\n label: string;\r\n accessPath: string;\r\n type: string;\r\n}\r\n\r\ninterface IDataItemListProps {\r\n _filters: any[];\r\n _sorts: ISort[];\r\n recordsPerPage?: number;\r\n _agentCall: () => Promise\r\n _displayTemplate: (dataItem: T, index: number) => React.ReactNode;\r\n}\r\n\r\nconst PatientRecordListDisplay: React.FC> = ({_filters, _sorts, _agentCall, _displayTemplate, recordsPerPage = 20}) => {\r\n const [data, setData] = useState([]);\r\n const [filteredData, setFilteredData] = useState([]);\r\n const [filteredDataCount, setFilteredDataCount] = useState(-1);\r\n const [pagingSlice, setPagingSlice] = useState([]);\r\n const [currentPage, setCurrentPage] = useState(1);\r\n const [error, setError] = useState(\"\");\r\n const [status, setStatus] = useState(DataLoadStatus.NotAttempted);\r\n\r\n useEffect(() => {\r\n loadData();\r\n }, []); \r\n\r\n const loadData = () => {\r\n if (status !== DataLoadStatus.Loading) {\r\n setStatus(DataLoadStatus.Loading);\r\n _agentCall()\r\n .then((response) => {\r\n setData(response); \r\n setStatus(DataLoadStatus.Successful);\r\n })\r\n .catch((ex) => {\r\n setStatus(DataLoadStatus.Failed);\r\n setError(ex);\r\n });\r\n }\r\n }\r\n\r\n useEffect(() => { \r\n if (data.length) {\r\n setFilteredData(data);\r\n _filters.forEach((f:any, i) => {\r\n if (f?.specialType) {\r\n if (f.specialType === \"Clinician\") {\r\n f.values = [...new Set(data.map(d => resolvePath(d, `${f.accessPath}.forename`, \"\") + \" \" + resolvePath(d, `${f.accessPath}.surname`, \"\")))];\r\n }\r\n }\r\n else \r\n f.values = [...new Set(data.filter(d => resolvePath(d, f.accessPath, \"\") !== \"\").map(d => resolvePath(d, f.accessPath, \"\")))];\r\n \r\n if (f.values && f.values.length)\r\n f.values.sort()\r\n })\r\n }\r\n }, [data]);\r\n \r\n useEffect(() => { \r\n if (data.length && filteredData) {\r\n let arr = filteredData.slice((currentPage - 1) * recordsPerPage, currentPage * recordsPerPage);\r\n setFilteredDataCount(filteredData.length);\r\n setPagingSlice(arr);\r\n } else {\r\n setFilteredDataCount(0);\r\n }\r\n }, [currentPage,filteredData]);\r\n \r\n const resolvePath = (object, path, defaultValue) => path\r\n .split('.')\r\n .reduce((o, p) => o ? o[p] : defaultValue, object)\r\n \r\n const handleFilterFunction = (e: HTMLSelectElement) => {\r\n let d = data;\r\n \r\n _filters.forEach((filter:IFilter | ISpecialFilter, idx:number) => {\r\n const element = document.getElementById(`${filter.label.toLowerCase()}Filter`) as HTMLSelectElement;\r\n const value = element.selectedOptions[0].value;\r\n const path = element.dataset.accessPath;\r\n if (value) {\r\n let f = filter as ISpecialFilter;\r\n if (f.specialType) {\r\n switch (f.specialType) {\r\n case \"Date\": \r\n d = handleDateFilterFunction(d, element, value, path);\r\n break;\r\n case \"Clinician\": \r\n d = handleClinicianFilterFunction(d, element, value, path);\r\n break;\r\n default:\r\n break;\r\n }\r\n } else { \r\n d = d.filter(dataItem => resolvePath(dataItem, path, \"\") === value)\r\n }\r\n }\r\n }) \r\n setCurrentPage(1);\r\n setFilteredDataCount(d.length);\r\n setFilteredData(d);\r\n }\r\n\r\n const handleClinicianFilterFunction = (d: any[], e: HTMLSelectElement, value: string, path: string) : any[] => { \r\n return d.filter(dataItem => resolvePath(dataItem, `${path}.forename`, \"\") + \" \" + resolvePath(dataItem, `${path}.surname`, \"\") === value);\r\n }\r\n\r\n const handleDateFilterFunction = (d: any[], e: HTMLSelectElement, value: string, path: string) : any[] => {\r\n let dt = new Date();\r\n\r\n switch (value) {\r\n case \"Last week\":\r\n dt.setDate(dt.getDate() - 7);\r\n break;\r\n case \"Last fortnight\":\r\n dt.setDate(dt.getDate() - 14);\r\n break;\r\n case \"Last month\":\r\n dt.setDate(dt.getDate() - 30);\r\n break;\r\n case \"Last 3 months\":\r\n dt.setDate(dt.getDate() - 91);\r\n break;\r\n case \"Last 6 months\":\r\n dt.setDate(dt.getDate() - 181);\r\n break;\r\n case \"Last year\":\r\n dt.setFullYear(dt.getFullYear() - 1);\r\n break;\r\n default:\r\n break;\r\n }\r\n return d.filter(dataItem => dt <= new Date(resolvePath(dataItem, path, \"\")));\r\n }\r\n\r\n const handlePagingClick = (pageNumber: number) => {\r\n setCurrentPage(pageNumber);\r\n }\r\n\r\n const handleSortChange = (e: HTMLSelectElement) => {\r\n const element = document.getElementById(\"sortSelect\") as HTMLSelectElement;\r\n const path = element.selectedOptions[0].value;\r\n const label = element.selectedOptions[0].dataset.label;\r\n const type = element.selectedOptions[0].dataset.type;\r\n const direction = element.selectedOptions[0].dataset.direction;\r\n\r\n filteredData.sort((a,b) => {\r\n let aValue = resolvePath(a, path, \"\");\r\n let bValue = resolvePath(b, path, \"\");\r\n \r\n if (direction === \"ascending\") {\r\n if (type === \"Date\") {\r\n return new Date(String(aValue)).getTime() - new Date(String(bValue)).getTime();\r\n } else if (type === \"Number\") {\r\n return Number(aValue) - Number(bValue);\r\n } else {\r\n return String(aValue).localeCompare(String(bValue));\r\n }\r\n } else {\r\n if (type === \"Date\") {\r\n return new Date(String(bValue)).getTime() - new Date(String(aValue)).getTime();\r\n } else if (type === \"Number\") {\r\n return Number(bValue) - Number(aValue);\r\n } else {\r\n return String(bValue).localeCompare(String(aValue));\r\n }\r\n }\r\n });\r\n\r\n setFilteredDataCount(filteredData.length);\r\n setPagingSlice(filteredData.slice((currentPage - 1) * recordsPerPage, currentPage * recordsPerPage));\r\n }\r\n\r\n return ( \r\n <>\r\n \r\n \r\n {data && pagingSlice && filteredDataCount > -1 && status === DataLoadStatus.Successful ? (\r\n <>\r\n \r\n \r\n \r\n
      \r\n {pagingSlice.length > 0 && pagingSlice.map((dataItem, index) => (\r\n _displayTemplate(dataItem, index)\r\n ))}\r\n
    \r\n \r\n \r\n ) : status === DataLoadStatus.Loading ? \r\n \r\n : <>\r\n \r\n \r\n }\r\n \r\n )\r\n}\r\n\r\nexport default observer(PatientRecordListDisplay);","import React from \"react\";\r\nimport { PatientAllergy } from \"../../app/models/inpatient\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport agent from \"app/api/agent\";\r\nimport PatientRecordListDisplay from \"./common/PatientRecordListDisplay\";\r\nimport { ShortDateTimeFormat } from \"./common/DateTimeFunctions\";\r\n\r\nconst SelectedInpatientAllergiesList: React.FC = () => {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n const loadData = () => {\r\n return agent.Patient.Allergies({\r\n systemIdentifier: urlParams.get(\"p\"),\r\n patientIdentifier: null,\r\n visitIdentifier: null,\r\n })\r\n };\r\n\r\n\r\n const displayTemplate = (allergy:PatientAllergy, index: number) => {\r\n return (allergy.allergy.id === \"NKA\" ? (\r\n \r\n
    \r\n
    \r\n \r\n {allergy.status}\r\n \r\n \r\n {ShortDateTimeFormat(allergy.addedDateTime)}\r\n \r\n
    \r\n
    \r\n
    \r\n {\" \"}\r\n {allergy.allergy.description}\r\n
    \r\n
    \r\n
    \r\n \r\n ) : (\r\n
  • \r\n
    \r\n
    \r\n
    \r\n {allergy.status}\r\n
    \r\n
    {allergy.allergy.description}
    \r\n
    \r\n {allergy.reaction} {allergy.severity}\r\n
    \r\n
    {allergy.comment}
    \r\n
    \r\n
    \r\n
    {allergy.type}
    \r\n
    \r\n Added{\" \"}\r\n {ShortDateTimeFormat(allergy.addedDateTime)}\r\n
    \r\n
    \r\n
    \r\n
  • \r\n ))\r\n } \r\n\r\n return (\r\n \r\n );\r\n};\r\nexport default observer(SelectedInpatientAllergiesList);\r\n","import React from \"react\";\r\nimport { PatientProblem } from \"../../app/models/inpatient\";\r\nimport { ListGroupItem } from \"reactstrap\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport agent from \"app/api/agent\";\r\nimport PatientRecordListDisplay from \"./common/PatientRecordListDisplay\";\r\nimport { ShortDateTimeFormat } from \"./common/DateTimeFunctions\";\r\n\r\nconst PatientRecordProblemsList: React.FC = () => {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n\r\n const loadData = () => {\r\n return agent.Patient.Problems({\r\n systemIdentifier: urlParams.get(\"p\"),\r\n patientIdentifier: null,\r\n visitIdentifier: null,\r\n })\r\n }\r\n\r\n const displayTemplate = (problem: PatientProblem, index: number) => {\r\n return (\r\n \r\n
    \r\n\r\n
    \r\n
    {problem.code.description}
    \r\n
    \r\n {problem.comment}\r\n
    \r\n
    \r\n \r\n Added {ShortDateTimeFormat(problem.addedDateTime)}\r\n
    \r\n
    \r\n SNOMED Concept: {problem.code.primaryCode}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {problem.status}\r\n
    \r\n
    \r\n
    \r\n
    {problem.code.primaryCode}
    \r\n \r\n Added {ShortDateTimeFormat(problem.addedDateTime)}\r\n \r\n
    \r\n \r\n
    \r\n )\r\n }\r\n\r\n return (\r\n \r\n )\r\n}\r\nexport default observer(PatientRecordProblemsList);\r\n","import React from \"react\";\r\nimport { Link } from 'react-router-dom';\r\nimport { VisitAppointment } from \"../../app/models/inpatient\";\r\nimport { Row, Col } from \"reactstrap\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport agent from \"app/api/agent\";\r\nimport PatientRecordListDisplay, { IFilter, ISpecialFilter, ISort } from \"./common/PatientRecordListDisplay\";\r\nimport { ShortDateOnlyFormat, ShortTimeOnlyFormat } from \"./common/DateTimeFunctions\";\r\n\r\nconst SelectedInpatientAppointmentsList: React.FC = () => {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n\r\n const loadData = () => {\r\n return agent.Patient.Appointments({\r\n systemIdentifier: urlParams.get(\"p\"),\r\n patientIdentifier: null,\r\n visitIdentifier: null,\r\n })\r\n };\r\n\r\n const sorts: ISort[] = [\r\n { label: \"Date\", accessPath: \"appointmentDateTime\", type: \"Date\" },\r\n { label: \"Type\", accessPath: \"type.description\", type: \"String\" }\r\n ]\r\n\r\n const filters: IFilter[] = [\r\n { label: \"Clinician\", accessPath: \"clinician.name\", specialType: \"Clinician\" } as ISpecialFilter,\r\n { label: \"Status\", accessPath: \"status\"},\r\n { label: \"Location\", accessPath: \"location.location.description\" },\r\n { label: \"Date\", accessPath: \"appointmentDateTime\", specialType: \"Date\" } as ISpecialFilter\r\n ]\r\n\r\n const statusToBadge = (status: string) => {\r\n let newStatus = \"\";\r\n let color = {\r\n foreground: \"white\",\r\n background: \"secondary\"\r\n }\r\n switch (status) {\r\n case \"DNA\":\r\n case \"dna\":\r\n newStatus = \"dna\";\r\n color.background = \"danger\";\r\n break;\r\n case \"BOOKED\":\r\n case \"booked\":\r\n newStatus = \"booked\";\r\n color.background = \"info\";\r\n break;\r\n case \"ATTENDED\":\r\n case \"attended\":\r\n newStatus = \"attended\";\r\n color.background = \"success\";\r\n break;\r\n case \"CANCELLED\":\r\n case \"cancelled by patient\":\r\n case \"cancelled by unit\":\r\n newStatus = \"cancelled\";\r\n color.background = \"warning\";\r\n color.foreground = \"dark\";\r\n break;\r\n default: \r\n newStatus = status;\r\n break;\r\n }\r\n return {newStatus}\r\n}\r\n\r\nconst onAppointmentClick = (appointment: VisitAppointment) => {\r\n document.querySelectorAll(\"a.appointment-item\").forEach((el) => {\r\n el.classList.remove('active');\r\n });\r\n\r\n document.querySelector(`a.appointment-item[data-visit='${appointment.systemInternalIdentifier.value}']`).classList.add('active');\r\n}\r\n\r\nconst displayTemplate = (appointment: VisitAppointment, index: number) => {\r\n return (\r\n onAppointmentClick(appointment)}>\r\n \r\n \r\n
    \r\n {ShortDateOnlyFormat(appointment.appointmentDateTime)}\r\n
    \r\n
    \r\n {ShortTimeOnlyFormat(appointment.appointmentDateTime)}\r\n
    \r\n \r\n \r\n {appointment.type.description}  \r\n
    \r\n {appointment.plannedDuration && {appointment.plannedDuration} min appointment } \r\n {appointment.clinician?.name?.nickname && with {appointment.clinician.name.nickname}} \r\n {appointment.referralDetails?.specialty?.description && of {appointment.referralDetails.specialty.description}}\r\n {appointment.location?.location?.description && at {appointment.location.location.description}}\r\n {appointment.referralDetails?.reason?.description && for {appointment.referralDetails.reason.description}}\r\n
    \r\n \r\n \r\n {statusToBadge(appointment.status)}\r\n \r\n \r\n {appointment.systemPublicIdentifier.value ? appointment.systemPublicIdentifier.value : \"via SystmOne\"}\r\n \r\n
    \r\n \r\n )\r\n} \r\n\r\n return (\r\n \r\n )\r\n};\r\nexport default observer(SelectedInpatientAppointmentsList);\r\n","import React from \"react\";\r\nimport { VisitAdmission } from '../../app/models/inpatient';\r\nimport { Row, Col } from 'reactstrap'\r\nimport { Link } from 'react-router-dom';\r\nimport { observer } from \"mobx-react-lite\";\r\nimport agent from \"app/api/agent\";\r\nimport PatientRecordListDisplay, { IFilter, ISpecialFilter, ISort } from \"./common/PatientRecordListDisplay\";\r\nimport { ShortDateOnlyFormat } from \"./common/DateTimeFunctions\";\r\n\r\nconst SelectedInpatientAdmissionsList: React.FC = () => {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n \r\n const loadData = () => {\r\n return agent.Patient.Admissions({\r\n systemIdentifier: urlParams.get(\"p\"),\r\n patientIdentifier: null,\r\n visitIdentifier: null,\r\n })\r\n };\r\n\r\n const statusToVerb = (status: string) => {\r\n let newStatus = \"\";\r\n switch (status) {\r\n case \"ADM IN\":\r\n newStatus = \"Current inpatient\";\r\n break;\r\n case \"PRE IN\":\r\n newStatus = \"Pre-admitted\";\r\n break;\r\n case \"DIS IN\":\r\n newStatus = \"Discharged\";\r\n break;\r\n case \"SCH IN\":\r\n newStatus = \"Scheduled\";\r\n break;\r\n case \"PRE REF\":\r\n case \"REG REF\":\r\n case \"DEP REF\":\r\n newStatus = \"Referral\";\r\n break;\r\n default: \r\n break;\r\n }\r\n return newStatus;\r\n }\r\n\r\n const statusToBadge = (status: string) => {\r\n let newStatus = \"\";\r\n let color = {\r\n foreground: \"white\",\r\n background: \"secondary\"\r\n }\r\n switch (status) {\r\n case \"ADM IN\":\r\n newStatus = \"in-progress\";\r\n color.background = \"danger\";\r\n break;\r\n case \"PRE IN\":\r\n newStatus = \"pre-adm\";\r\n color.background = \"info\";\r\n break;\r\n case \"DIS IN\":\r\n newStatus = \"finished\";\r\n color.background = \"success\";\r\n break;\r\n case \"SCH IN\":\r\n newStatus = \"booked\";\r\n color.background = \"primary\";\r\n break;\r\n case \"PRE REF\":\r\n case \"REG REF\":\r\n case \"DEP REF\":\r\n newStatus = \"referral\";\r\n color.background = \"warning\";\r\n color.foreground = \"dark\";\r\n break;\r\n default: \r\n break;\r\n }\r\n return {newStatus}\r\n }\r\n\r\n const onAdmissionClick = (admission: VisitAdmission) => {\r\n document.querySelectorAll(\"a.admission-item\").forEach((el) => {\r\n el.classList.remove('active');\r\n });\r\n\r\n document.querySelector(`a.admission-item[data-visit='${admission.systemInternalIdentifier.value}']`).classList.add('active');\r\n }\r\n\r\n const displayTemplate = (admission: VisitAdmission, index: number) => {\r\n return (\r\n onAdmissionClick(admission)}>\r\n \r\n \r\n {admission.admissionDetails?.specialty?.description} {statusToVerb(admission.status.id)} account \r\n
    \r\n {admission.managementIntent?.description && {admission.managementIntent.description}}\r\n {admission.admissionDetails?.method?.description && {admission.admissionDetails.method.description} }\r\n {admission.admissionDetails?.priority?.description} admission\r\n {admission.admissionDetails?.reason &&  for “{admission.admissionDetails?.reason}”} \r\n {admission.admissionDetails?.attendingClinician?.name?.surname && (\r\n <> \r\n  with {admission.admissionDetails?.attendingClinician?.name?.forename} \r\n {admission.admissionDetails?.attendingClinician?.name?.surname} in \r\n {admission.admissionDetails?.attendingClinician?.primarySpecialty?.description}\r\n \r\n )}\r\n
    \r\n {admission.status.id === \"DIS IN\" && (\r\n
    \r\n Discharged \r\n {admission.dischargeDetails?.destination?.description && to {admission.dischargeDetails.destination.description} }\r\n {admission.dischargeDetails?.reason?.description && {admission.dischargeDetails.reason.description} }\r\n {admission.dischargeDetails?.dischargeDateTime && on {ShortDateOnlyFormat(admission.dischargeDetails.dischargeDateTime)} }\r\n
    \r\n )}\r\n \r\n \r\n {ShortDateOnlyFormat(admission.admissionDetails.admissionDateTime)}\r\n \r\n \r\n {admission.systemPublicIdentifier.value}\r\n {statusToBadge(admission.status.id)}\r\n \r\n
    \r\n \r\n )\r\n } \r\n\r\n const filters: IFilter[] = [\r\n { label: \"Attending\", accessPath: \"admissionDetails.attendingClinician.name\", specialType: \"Clinician\" } as ISpecialFilter,\r\n { label: \"Specialty\", accessPath: \"admissionDetails.specialty.description\" },\r\n { label: \"Intent\", accessPath: \"managementIntent.description\" },\r\n { label: \"Date\", accessPath: \"admissionDetails.admissionDateTime\", specialType: \"Date\" } as ISpecialFilter\r\n ];\r\n\r\n const sorts: ISort[] = [\r\n { label: \"Date\", accessPath: \"admissionDetails.admissionDateTime\", type: \"Date\" }\r\n ]\r\n\r\n return (\r\n \r\n )\r\n\r\n}\r\nexport default observer(SelectedInpatientAdmissionsList)\r\n","import React, { Fragment } from \"react\";\r\nimport { Card, CardBody, CardHeader } from 'reactstrap';\r\nimport { observer } from \"mobx-react-lite\";\r\nimport agent from \"app/api/agent\";\r\nimport { IMedication } from \"app/models/inpatient\";\r\nimport PatientRecordListDisplay, { IFilter, ISpecialFilter, ISort } from \"./common/PatientRecordListDisplay\";\r\nimport { ShortDateOnlyFormat, ShortTimeOnlyFormat } from \"./common/DateTimeFunctions\";\r\n\r\n\r\nconst PatientRecordMedicationsList: React.FC = () => {\r\n let urlParams = new URLSearchParams(window.location.search); \r\n\r\n const loadData = () => {\r\n return agent.Patient.Medications({\r\n Identifier: urlParams.get(\"v\")\r\n })\r\n };\r\n\r\n const displayTemplate = (medication: IMedication, index: number) => {\r\n return ( \r\n
  • \r\n
    \r\n
    \r\n \r\n
    \r\n {medication.status === \"Active\" ? (\r\n \r\n Active\r\n \r\n ) :\r\n medication.status === \"Discontinue\" ? (\r\n Discontinued\r\n ):\r\n medication.status === \"Unverified\" && (\r\n Unverified\r\n )}\r\n
    \r\n
    \r\n {medication.medicineDetails.name?.description}\r\n
    \r\n
    \r\n
    \r\n {medication.medicineDetails?.dose}\r\n {medication.medicineDetails?.units}\r\n
    \r\n
    \r\n {medication.medicineDetails?.administrationRoute}\r\n
    \r\n
    \r\n {medication.medicineDetails.direction?.id}\r\n
    \r\n
    \r\n {medication.medicineDetails?.schedule}\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Start\r\n \r\n {medication.startDateTime && (new Date(medication.startDateTime).getFullYear() !== 0o1) ? (\r\n \r\n
    {ShortTimeOnlyFormat(medication.startDateTime)}
    \r\n
    {ShortDateOnlyFormat(medication.startDateTime)}
    \r\n
    \r\n ) :\r\n 00:00\r\n }\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {medication.stopDateTime && (new Date(medication.stopDateTime).getFullYear() !== 0o1) ? (\r\n \r\n Stop\r\n \r\n \r\n
    {ShortTimeOnlyFormat(medication.startDateTime)}
    \r\n
    {ShortDateOnlyFormat(medication.startDateTime)}
    \r\n
    \r\n \r\n
    \r\n
    \r\n ) : \r\n \r\n \r\n Stop\r\n \r\n 00:00\r\n
    Not stopped
    \r\n
    \r\n
    \r\n
    \r\n }\r\n
    \r\n
    \r\n {medication.lastAdmin && (new Date(medication.lastAdmin).getFullYear() !== 0o1) ? (\r\n \r\n Last Admin\r\n \r\n \r\n
    {ShortTimeOnlyFormat(medication.lastAdmin)}
    \r\n
    {ShortDateOnlyFormat(medication.lastAdmin)}
    \r\n
    \r\n
    \r\n
    \r\n ) :\r\n \r\n \r\n Last Admin\r\n \r\n 00:00\r\n
    Not admin
    \r\n
    \r\n
    \r\n
    \r\n }\r\n
    \r\n
    \r\n {medication.nextAdmin && (new Date(medication.nextAdmin).getFullYear() !== 0o1) ? (\r\n \r\n Next Admin\r\n \r\n \r\n
    {ShortTimeOnlyFormat(medication.nextAdmin)}
    \r\n
    {ShortDateOnlyFormat(medication.nextAdmin)}
    \r\n
    \r\n
    \r\n
    \r\n ) :\r\n \r\n \r\n Next Admin\r\n \r\n 00:00\r\n
    Not admin
    \r\n
    \r\n
    \r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {medication.status === \"Active\" ? (\r\n Active\r\n ) :\r\n medication.status === \"Discontinue\" ? (\r\n Discontinued\r\n ) :\r\n medication.status === \"Unverified\" && (\r\n Unverified\r\n )}\r\n
    \r\n
    \r\n
    \r\n
  • \r\n )}\r\n\r\n const filters: IFilter[] = [\r\n { label: \"Status\", accessPath: \"status\" }\r\n ];\r\n \r\n const sorts: ISort[] = [\r\n { label: \"Start Date\", accessPath: \"startDateTime\", type: \"Date\" },\r\n { label: \"Name\", accessPath: \"medicineDetails.name.description\", type: \"String\" }\r\n ];\r\n\r\n return (\r\n \r\n )\r\n\r\n}\r\nexport default observer(PatientRecordMedicationsList)\r\n\r\n","import React, { Fragment, useContext, useEffect, useState } from \"react\";\r\nimport { ListGroup, ListGroupItem, Card } from \"reactstrap\";\r\nimport Loader from \"react-loader-spinner\";\r\nimport \"react-date-range/dist/styles.css\"; // main style file\r\nimport \"react-date-range/dist/theme/default.css\"; // theme css file\r\nimport { RootStoreContext } from \"../../app/stores/rootStore\";\r\nimport AuditStore from \"../../app/stores/auditStore\";\r\nimport { DateRange } from \"react-date-range\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { addDays } from \"date-fns\";\r\nimport InpatientStore from \"../../app/stores/inpatientStore\";\r\nimport { AddEntry } from \"../../app/models/audit\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { Collapse, Table, UncontrolledCollapse } from \"reactstrap\";\r\nimport {\r\n faMinus,\r\n faPlus,\r\n faChevronDown,\r\n faHeartbeat,\r\n} from \"@fortawesome/free-solid-svg-icons\";\r\nimport { ShortDateOnlyFormat } from \"./common/DateTimeFunctions\";\r\n\r\ninterface IProps {}\r\n\r\nconst SelectedInpatientAllergiesList: React.FC = () => {\r\n const inpatientStore = useContext(InpatientStore);\r\n let urlParams = new URLSearchParams(window.location.search);\r\n let rootStore = useContext(RootStoreContext);\r\n const [state, setState] = useState([\r\n {\r\n startDate: addDays(new Date(), -30),\r\n endDate: new Date(),\r\n key: \"selection\",\r\n },\r\n ]);\r\n useState(() => {\r\n let audit: AddEntry = {\r\n module: \"PatientRecord\",\r\n description:\r\n rootStore.userStore.user.username + \" has accessed investigations\",\r\n username: rootStore.userStore.user.username,\r\n action: \"Investigations\",\r\n documentId: \"\",\r\n patientId: urlParams.get(\"p\"),\r\n visitId: urlParams.get(\"v\"),\r\n };\r\n inpatientStore.loadPatientInvestigations(\r\n urlParams.get(\"p\"),\r\n state[0].startDate,\r\n state[0].endDate\r\n );\r\n\r\n rootStore.auditStore.addEntry(audit);\r\n });\r\n const [isOpen, setIsOpen] = useState(true);\r\n const toggle = () => setIsOpen(!isOpen);\r\n\r\n useEffect(() => {\r\n inpatientStore.loadPatientInvestigations(\r\n urlParams.get(\"p\"),\r\n state[0].startDate,\r\n state[0].endDate\r\n );\r\n }, [state]);\r\n return (\r\n <>\r\n
    \r\n setState([item.selection])}\r\n />\r\n
    \r\n {inpatientStore.isInvestigationsLoaded &&\r\n inpatientStore.recordinvestigations ? (\r\n inpatientStore.recordinvestigations.investigationSets.length > 0 ? (\r\n \r\n
    \r\n
    \r\n {isOpen ? (\r\n
    \r\n \r\n
    \r\n ) : (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n {\" \"}\r\n ICE Investigation Results\r\n \r\n
    \r\n \r\n \r\n {inpatientStore.recordinvestigations.investigationSets.map(\r\n (investigation, index) => (\r\n \r\n
    \r\n {ShortDateOnlyFormat(investigation.rows[0].items[0].resultDateTime)}{\" \"}\r\n -{\" \"}\r\n {ShortDateOnlyFormat(investigation.rows[0].items[investigation.rows[0].items.length - 1].resultDateTime)}\r\n \r\n
    \r\n\r\n {investigation.name}\r\n {/*{investigation.rows.length}*/}\r\n\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n {investigation.rows[0].items.map((item, index) => (\r\n \r\n {\" \"}{ShortDateOnlyFormat(item.resultDateTime)}\r\n \r\n )\r\n )}\r\n \r\n {investigation.rows.map(\r\n (row, index) => (\r\n \r\n {row.name}\r\n {row.items.map(\r\n (item, index1) => (\r\n \r\n {item.value}\r\n \r\n {item.uom}\r\n \r\n \r\n )\r\n )}\r\n \r\n )\r\n )}\r\n \r\n \r\n \r\n
    \r\n \r\n \r\n )\r\n )}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : (\r\n <>\r\n {\" \"}\r\n
  • \r\n No investigations recorded for this patient.\r\n
  • \r\n \r\n )\r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n};\r\nexport default observer(SelectedInpatientAllergiesList);\r\n","import React, { Fragment, useContext, useEffect, useState } from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport \"../patientrecord/mig.css\"\r\nimport agent from \"../../app/api/agent\";\r\nimport PatientRecordListDisplay from \"./common/PatientRecordListDisplay\";\r\nimport { RootStoreContext } from \"app/stores/rootStore\";\r\nimport PatientRecordStore from \"app/stores/patientRecordStore\";\r\n\r\n\r\nconst PatientRecordMig: React.FC = () => {\r\n let [ selectedTab, setSelectedTab ] = useState(\"Summary\");\r\n let [ selectedTabHtml, setSelectedTabHtml ] = useState(<>);\r\n let rootStore = useContext(RootStoreContext);\r\n let searchStore = useContext(PatientRecordStore);\r\n\r\n let migList = [\"Summary\", \"Demographics\", \"Risks/Warnings\", \"Medications\", \"Problems\", \"Diagnoses\", \"Procedures\", \"Examinations\", \"Encounters\"]\r\n let urlParams = new URLSearchParams(window.location.search);\r\n const view = urlParams.get('view');\r\n\r\n const loadData = () => {\r\n let user = rootStore.userStore.user;\r\n let patient = searchStore.patient; \r\n let migRequest = { \r\n nhsNumber: patient.nhsNumber?.value, \r\n forename: user.displayName ? user.displayName.split(' ')[0] : '', \r\n surname: user.displayName ? user.displayName.split(' ')[1] : '', \r\n practiceCode: patient.gpDetails?.registeredPracticeCode, \r\n username: user.username, \r\n type: selectedTab\r\n }\r\n return agent.Patient.Mig(migRequest)\r\n .then(mig => mig.content.replace(/\\\\/g, \"\"))\r\n .then(content => [content]) \r\n }\r\n\r\n useEffect(() => {\r\n if (selectedTabHtml === \"loading...\") {\r\n setSelectedTabHtml()\r\n }\r\n }, [selectedTabHtml])\r\n\r\n useEffect(() => {\r\n setSelectedTabHtml(\"loading...\");\r\n }, [selectedTab])\r\n\r\n const getMenu = () => {\r\n return (\r\n \r\n )\r\n }\r\n\r\n const displayTemplate = (mig: string, index: number) => {\r\n return (\r\n
    \r\n )\r\n }\r\n\r\n return (\r\n \r\n {getMenu()}\r\n {selectedTabHtml !== <> ? selectedTabHtml : <>Uh oh}\r\n \r\n )\r\n}\r\nexport default observer(PatientRecordMig)","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAB2AAAAdgB+lymcgAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAsZSURBVHiczZt7lFVVHcc/v3POfc4ww2MY0PKRr1Kr1UottSwxEbRFCcj0EhlQIYTBnLJWmXYLI1eLpAaLaJnYSlt2kXKVNQwQKBbaMnPZizARVF4yvJn7mHvP2b/+OHOHOy/mzsy9l/n+M7P32Xt/f7/v3Y/f2XsfoQBs+N2Gy9R4PwJ5XzaT2eGp3jflM1OeKqRuDut/u75BRBsVRiSTyW3WCPvTU6ZMOTCQNkoB6evB0tjSGhu7qqamZuT4d4xbjzAawHVdkomkFwyExk/5fGEObHiq5SZFVufSqWQKz3Nf27n9zUkAoVDo8B1fv+PwUJ0ZDJz8xLLYsnNs244BNwIjAFzP7SKTMQZjjA3cAjxYCIlBpucrbTwPzzPn2ba9HXxRmxY3HQTitmd/Z0Fswb4h+DQgWLl/mhY3XWfb9j+BmUBIkK3AS8D/cmVUlXQ63VHTvF0oiaDHc/+72SxZ10UE7Wg/x1ENzPds79/L719+6ZC8GgAEYPni5e9S9J9AhagsdY373btidx0B2LRpk5Pcn/ivZ8y52UwGYwy2bR+aOnPaWBExhZA0r2m+zM26W4znOZlsBhQCTvCJG2fe+LlcmR9+94fjLLUeQKkH9ruee2FjrPFQCXzuAgtA0RhQoeiyhvsa7s45DzBhwgQ3a45PUOP+2bKsPYFAYF00XHF+oc4DXD/9+hc99W5W1W2O47wRCgUfyHce4Ev3fOnthnsa5gC/BmoDduArxXHx5BBVleX3Lz8MRD3Pq813/lTgoSUPXWA8s02QrQ33NlxUaj5rxQMrRuKPv52n2nmAhd9Y+CqQVPSscvBZ9mi7DcgCY1S1z2WxXFgZWxkFwsDRcvBZ8+bNywL/AUY3LWm6uBykJ0NWsh/Bn5teKQdfbhncAGAZa2I5SE8GFb2u4+/6cvBZAGJkPYCqDgcBJgJYxiqfANkR2c1AGuHjTU1NoXIQ94YVsRW1wPuBtxfeu/Bf5eC0ABobG1PAFiAqR+WKchD3BtdyrwVE0fUiouXg7AyFRU79MFDL5xaVsnR/yBPAGOOTCqduHlA+4RvDxnJRdgpw2Bx+GWgFLlkaW1pTLgNyWLZ42YXAGcC/FsUW7SoXb6cAsVjMABsBK+SEJpTLgBwcHH/5ozzLXw5WfkI4dfNAjrNcy18OXQQwnsmRX1dOI1auXBlAuArIWGo9V07uLgLcGbvzTZRXgbN+HPvxeeUyItWaugKoArYsiC1oKxcvdBMAAGE9gGd7ZRsGnSF4B3c50UOAXAwuKmUTQMTn6lyKy4geAqQD6Y3twSq3ddxFk+Y3p99dagPuWL37ygM1F17WFqg+dvp7Tv97qfm6o8f7f/06PV9cd6tajo1qSlQuXXWD/KcU5LNa9GNidCMi9svHjFY71sWbp8nWUnD1hR49QAyT1HJsPyERI9xWKnIxzEfEThs47lniwexScfWFnnOA8nqXjBKFxrGYWogf+h7J+nmO4eVScJ0MPQTwLJ4FMrm0wMWzW/SMYhO/fjmXAmMBWrPgCOZZQ7zYPP2hhwC/nCQJID8YEaN8rnu5ocIWvgDQbvweMMJhJ3XiFZunP/SMAwCEX3VNMndGXIPFIv380zpKlZsB9raDAhFhVbHaHwh6FSBosQYhlZd1bmU1i4pFGnT4FjC63cDuNAQFc9jj+8VqfyDoVYCfTZSjKE35eaosvmWtfmiohLObdRKwEOD1FHjAqCBr/l0nmZPXLA16HwJA1rBElda8rLAFT93aou8dLFn9Wr1KhThgv5WG1gxELDI1AeoH2+ZQ0acAj98gxw663JNV8s8AT/OUzbPX6qcHxKIqs9fqbGAdUNWagZ0pn3xUgPm/nyLJQVlfBPR7EjThKY2PCzAjbPd4tEZgyarJctLwdVaLfkyU+8Bf8/ekYXvKn/jGh3hkyzS5dZC290A8Hg/SxlRBb8CSc1CCKPuwZLOKPlE3q2539zr9H4WpyuW/ZeMoh6vH9b4OvISwUQz/AFo9C0uUsZZwCcpEhQsBMgrbE/6aL8DYEPEXpslnhubyCcRXxScL/AR4Vx9F0u3p9l8E3w4tqovV5cc5heGKNfp42vDZs8JYIwOFG5ZVf6nblQZXwRZ0bIgHt0yVoh1/xx+NzxXlJ0DPfpqHdDpN4lhyv1fpnbtggb/v0Occ0B3PT5cvVAT55Ospjv7tmD+Gj7q+g/lQhZSBfRn4bwL+esQv6ypUO+w5LcIlRXX+kfg1hTgPYDsOmUymNpAK/CWXN6jT4Kt+o3e1eXz1mMt4BWwBR8BoT0EsgWqHHVGb+56bKo8Nhq8vxONxWxK8AnQe6gpCTe0YqkZXY1kWqWSSA/sOkk6ncV2X1n3+va7qqsr6WXfO+cWQjsOvfkzfmQkxL2txjQ1Xuuor6gjGwLOO8Efj8sjzdVKUqy4Nf9TQQUM0l554dO2EyszxNbm0iHD2eWdTOaKyS73jR9pobd3PoQOHOdTqmxIKh/437+55F3S5JTZQPHOz7ALunRHXJRVV5C9lxx6dLNcMpW2AW5r1/bZQp3C9wpnHoSaYN2hbA6dRmem8f8WoMaN6OO9DGTt2LPt2nbjX5bruOdDtmtxwQX2zno3F91Fu6uhUvY7ViJvokq6qrupRxngeqv649PTEu5bnevbDDz88etgJUN+sVyM8iTImq3A4C2kDXi9HpReZrpkiXWVSlFSy/cTzbjIGsoHIsBJgTrN+1AhrPSW0IwV7M/6qkoMtIH4MBcB+E5H8Rb8tkaCyyh8CnuuRTqXxXP9XF4Fk24lRKpborPmzdg8bAeas09ONYY2nhF45Dm0dvbXS4UiVzU+DLg9trJMukdyHV62eASc2UQ7tP0hFJArq//r5eGPHm13SgUBgDwyjOcAzfFug9tWE77wAtSFWPz9N6vqqk0llNrQl2tKRSDgcDPlh6u5duxl/2nhs2+4c+29s38nePV0vtlqO9VMYZBzQHTPiGum2Chx5dLKMKrT+Lev1TPHYnnBx/t4xqdcG+d0L06Xfl66fP/jzFYlE4ou9PROkR08ACAYD+7/4tfnjYACRYCkhLjcKOAc6NkejNskXpjG1kLq3Nt46PxwOv9Tbs96cdxy73Y46l+fSw0MAuBYg2THuR9g8yQCu4s69e+6lkYrIb/rrz6FQaFc4GDn/9obbd+TyhocAwjvB3x0CCNo8OdA2bm+8fXq0KvrBUCS02Qk4CcuyFAHbsbOhcHBbtCK6YN5X550x58tz3sqvNywmQRVq83urY9g2mHZuW3Tby8DHB1JnWPQAtOubXNYlWy7q4SHAKcSwEsAreNorHoolgEdeiKoDnFty5ds7WohUkS6SXf2iKAKs9vf0O7/6Eqis36QjC6k7s0UrBMZk1D8mswVaJsveYthVCIo5BF7LT2iGTxZSyTbcAMiBjpe2sNXlRKrkKKYAT+cnRPnm3N9rtK/CAPWbNIzwLaPwVocAEYe/FdGmflE8AZRfAu15Oe/JODwxs0Ureis+I64R2nkcuPjNtN/9RaBC+HbRbCoARf1Epn6t/gBozM9TeE2E77lK82OTZW/9H3Q8FpMRvg5c0JqBrR0bO2OCvPLidPlAMW3qD8UVYJOGybAJ5fL+S8NbaX/LXIEKm2Stw5l/miYHi2lTfyj6R1KfXaenp9tpqbR5r9PLAFPgaNZ3/FhH8F9hkxhpceVzN8k/im1PfyjJV2LXxrW6zeZpV7kyamMFxN/TS3fcBsl0rPcWMDrAi1Gb656ZKqfkk72Sfib3iTV6WQJiKY+PtCuVWYMdsPCCQlvUYUvY4TvPfEpeKKUN/eH/K59ChTNKYaUAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDcuMS1jMDAwIDc5LjljY2M0ZGU5MywgMjAyMi8wMy8xNC0xNDowNzoyMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIzLjMgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjExMjBBQkU3RDQ4OTExRUQ5MTQ2QjBFNjBGNDg5NDE1IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjExMjBBQkU4RDQ4OTExRUQ5MTQ2QjBFNjBGNDg5NDE1Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MTEyMEFCRTVENDg5MTFFRDkxNDZCMEU2MEY0ODk0MTUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MTEyMEFCRTZENDg5MTFFRDkxNDZCMEU2MEY0ODk0MTUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4pInT5AAASYElEQVR42rxa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\"","import React from \"react\";\r\nimport { DocumentInformation, IDocumentValues,} from \"../../app/models/inpatient\";\r\nimport { ListGroupItem, PopoverBody, UncontrolledPopover, ListGroup} from \"reactstrap\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { faUserMd } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport agent from \"app/api/agent\";\r\nimport PatientRecordListDisplay, { ISpecialFilter, ISort } from \"./common/PatientRecordListDisplay\";\r\nimport { useHistory } from \"react-router-dom\"\r\nimport { ShortDateOnlyFormat, ShortTimeOnlyFormat } from \"./common/DateTimeFunctions\";\r\n\r\nconst PatientRecordDocumentsList: React.FC = () => {\r\n let history = useHistory();\r\n const urlParams = new URLSearchParams(window.location.search);\r\n const _filters: any[] = [\r\n { \r\n label: \"Specialty\", \r\n accessPath: \"visit.admissionDetails.specialty.description\"\r\n }, \r\n { \r\n label: \"Status\", \r\n accessPath: \"status\"\r\n }, \r\n { \r\n label: \"Account\", \r\n accessPath: \"visit.systemPublicIdentifier.value\"\r\n },\r\n { \r\n label: \"Date\", \r\n accessPath: \"saveDateTime\", \r\n specialType: \"Date\" \r\n } as ISpecialFilter\r\n ]\r\n const _sorts: ISort[] = [ \r\n { label: \"Date\", accessPath: \"saveDateTime\", type: \"Date\" },\r\n { label: \"Name\", accessPath: \"type.description\", type: \"String\" },\r\n { label: \"Account #\", accessPath: \"visit.systemPublicIdentifier.value\", type: \"String\" }\r\n ]\r\n\r\n const loadData = () => {\r\n return agent.Patient.Documents({\r\n systemIdentifier: urlParams.get(\"p\"),\r\n patientIdentifier: null,\r\n visitIdentifier: null,\r\n })\r\n .then(d => d.filter(doc => doc.status !== \"Deleted\" && doc.status !== \"Pending\"))\r\n };\r\n\r\n const DownloadDocument = (visitId: string, docId: string) => {\r\n let values: IDocumentValues = { systemIdentifier: visitId, docId: docId };\r\n agent.Patient.CacheDocument(values).then((response) => {\r\n agent.Patient.PdfDocument(values).then((blob) => {\r\n const url = URL.createObjectURL(\r\n new Blob([blob], { type: \"application/pdf\" })\r\n );\r\n window.open(url);\r\n });\r\n });\r\n };\r\n\r\n const onClick = (document) => {\r\n if (document.status === \"Scanned\")\r\n DownloadDocument(document.visit.systemInternalIdentifier.value,document.systemInternalIdentifier.value);\r\n else \r\n history.push(`${process.env.REACT_APP_URL_PATIENT_RECORD}/document?p=${urlParams.get(\"p\")}&v=${urlParams.get(\"v\")}&d=${document.systemInternalIdentifier.value}`)\r\n }\r\n\r\n const displayTemplate = (document: DocumentInformation, index: number) => {\r\n return (\r\n onClick(document)}\r\n >\r\n
    \r\n \r\n
    \r\n
    {document.type.description}
    \r\n {document.author.name?.surname && (\r\n
    \r\n Author\r\n \r\n \r\n {document.author.name.forename}{\" \"}\r\n {document.author.name.surname}\r\n \r\n \r\n \r\n \r\n {document.author.name.forename}{\" \"}\r\n {document.author.name.surname}\r\n \r\n
    {\" \"}\r\n {document.author.primarySpecialty.description}\r\n
    \r\n {document.author.role}\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n {document.visit.systemPublicIdentifier.value}\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n {\" \"}\r\n {document.status}\r\n \r\n
    \r\n
    \r\n {ShortDateOnlyFormat(document.saveDateTime)}\r\n
    \r\n
    \r\n {ShortTimeOnlyFormat(document.saveDateTime)}\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n )}\r\n\r\n return (\r\n \r\n \r\n )\r\n};\r\nexport default observer(PatientRecordDocumentsList);\r\n","import React from 'react';\r\nimport { observer } from \"mobx-react-lite\";\r\n\r\ninterface IProps {\r\n response: string\r\n}\r\n\r\nconst MeditechQueryResponseFix: React.FC = ({ response }) => {\r\n\r\n const fix = (value: string) => {\r\n let expr: RegExp = /\\x18?([a-zA-Z\\?\\x20]+)[\\x09\\x20]?([0-9]+)([BDIU]*[abcdrg]?)[\\r\\n]|\\x18([a-zA-Z\\?\\x20]+)[\\x09\\x20]?([0-9]+)([BDIU]*[abcdrg]?)/g;\r\n let matches: IterableIterator = value.matchAll(expr);\r\n let results: RegExpMatchArray[] = [...matches];\r\n \r\n for (let result of results) { \r\n const [match, fontName, size, style] = result; \r\n let fontFamily = \"'Roboto'\";\r\n switch (fontName)\r\n {\r\n case \"Symbol\":\r\n case \"Wingdings\":\r\n case \"Webdings\":\r\n case \"Courier New\":\r\n case \"Times New Roman\":\r\n fontFamily = fontName;\r\n break;\r\n default:\r\n break;\r\n }\r\n let fontSize = (size == \"38\" ? \"text-xl\" : (size == \"5\" || size == \"37\" ? \"text-lg\" : (size == \"3\" ? \"text-sm\" : \" \")));\r\n let fontWeight = \"\";\r\n \r\n if (style) {\r\n if (style.includes(\"B\"))\r\n fontWeight += \"font-weight-bold text-plum \";\r\n else\r\n fontWeight += \"text-normal\";\r\n if (style.includes(\"U\"))\r\n fontWeight += \" text-decoration-underline \";\r\n if (style.includes(\"I\"))\r\n fontWeight += \" text-italic \";\r\n if (style.includes(\"r\"))\r\n fontWeight += \" text-danger \";\r\n if (style.includes(\"b\"))\r\n fontWeight += \" text-primary \";\r\n if (style.includes(\"g\"))\r\n fontWeight += \" text-success \";\r\n }\r\n let replaceText = ` `;\r\n value = value.replace(match, replaceText);\r\n }\r\n \r\n value = value.replaceAll(/\\\"\\\"/g, \"\");\r\n value = value.replaceAll(\" \", \"  \");\r\n value = value.replaceAll(\"\\r\\n\\r\\n\\r\\n\", \"\");\r\n value = value.replaceAll(\"\\r\\n\\r\\n\", \"\");\r\n value = value.replaceAll(\"\\r\\r\", \"
    \");\r\n value = value.replaceAll(\"\\r\", \"
    \");\r\n value = value.replaceAll(\"\\n\\n\\n\", \"\");\r\n value = value.replaceAll(/[\\x07\\x18\\x12\\x16]/g, \"\");\r\n value = value.trim();\r\n value = value.replaceAll(\"\u0007\\r\", \"\");\r\n value = value.replaceAll(\"\u0007\", \"\");\r\n value = value.replaceAll(\"\u0018\", \"\");\r\n value = value.replaceAll(\"\u0014\", \"• \");\r\n value = value.replaceAll(\"\u0011\", \"\");\r\n value = value.replaceAll(\"\u0010\", \"\");\r\n \r\n return value;\r\n }\r\n\r\n return (\r\n
    \r\n )\r\n}\r\nexport default observer(MeditechQueryResponseFix);","import React from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { RhrDocumentQuestion } from \"app/models/inpatient\";\r\nimport MeditechQueryResponseFix from \"features/common/MeditechQueryResponseFix\";\r\n\r\ninterface IQuestionProps {\r\n question: RhrDocumentQuestion;\r\n groupingName: string;\r\n}\r\n\r\nconst DocumentQuestion: React.FC = ({ question, groupingName }) => {\r\n\r\n return (\r\n question.type === \"Query\" ? (\r\n
    \r\n
    \r\n {question.name.description}\r\n
    \r\n
    \r\n {question.subType === \"group\" ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
    \r\n
    \r\n ) : (\r\n <>\r\n
    \r\n
    \r\n

    \r\n {question.name.description}\r\n

    \r\n
    \r\n
    \r\n {question.type === \"Group\" ? (\r\n \r\n ) : (\r\n \r\n )}\r\n )\r\n )\r\n};\r\nexport default observer(DocumentQuestion);\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { RhrDocumentQuestionSet } from \"app/models/inpatient\";\r\nimport DocumentQuestion from \"./DocumentQuestion\";\r\n\r\ninterface IQuestionProps {\r\n grouping: RhrDocumentQuestionSet;\r\n sectionName: string;\r\n}\r\n\r\nconst DocumentQuestionGroup: React.FC = ({ grouping, sectionName }) => {\r\n\r\n return (\r\n
    \r\n {grouping.name.description !== sectionName && (\r\n
    \r\n
    \r\n

    {grouping.name.description}

    \r\n
    \r\n
    \r\n )}\r\n {grouping.questions.length > 0 && (\r\n grouping.questions.map((question, index) => \r\n \r\n ))}\r\n
    \r\n )\r\n};\r\nexport default observer(DocumentQuestionGroup);\r\n","import React, { Fragment } from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { RhrDocumentSection } from \"app/models/inpatient\";\r\nimport DocumentQuestionGroup from \"./DocumentQuestionGroup\";\r\n\r\ninterface IQuestionProps {\r\n section: RhrDocumentSection,\r\n index: number\r\n}\r\n\r\nconst DocumentSection: React.FC = ({ section, index }) => {\r\n\r\n return (\r\n \r\n

    {section.name.description}

    \r\n {section.questionGroups.length > 0 && (\r\n section.questionGroups.map((grouping, index) => \r\n \r\n ))}\r\n
    \r\n )\r\n};\r\nexport default observer(DocumentSection);\r\n","import React, { useContext, useState } from \"react\";\r\nimport Loader from \"react-loader-spinner\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport InpatientStore from \"../../app/stores/inpatientStore\";\r\nimport { Link } from 'react-router-dom';\r\nimport DocumentSection from \"./documents/DocumentSection\";\r\n\r\nconst PatientRecordDocumentsView: React.FC = () => {\r\n const inpatientStore = useContext(InpatientStore);\r\n const urlParams = new URLSearchParams(window.location.search);\r\n\r\n useState(() => {\r\n inpatientStore.loadPatientDocument(urlParams.get(\"d\"));\r\n });\r\n\r\n return inpatientStore.isDocumentLoaded && inpatientStore.document !== undefined ? (\r\n <>\r\n
    \r\n Back to documents\r\n
    \r\n
    \r\n

    {inpatientStore.document.name.description}

    \r\n {inpatientStore.document.sections.map((section, index) => (\r\n \r\n ))}\r\n
     
    \r\n
    \r\n \r\n ) : (\r\n \r\n );\r\n};\r\nexport default observer(PatientRecordDocumentsView);\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { ShortDateOnlyFormat, ShortTimeOnlyFormat } from \"./DateTimeFunctions\";\r\n\r\ninterface IDateTimeTileProps {\r\n date?: Date,\r\n label: string\r\n}\r\n\r\nconst DateTimeTile: React.FC = ({date, label}) => { \r\n \r\n return ( \r\n
    \r\n
    \r\n {label}\r\n
    \r\n
    \r\n {date ?\r\n {ShortTimeOnlyFormat(date)} :\r\n --:--\r\n } \r\n
    \r\n {date ?\r\n {ShortDateOnlyFormat(date)} :\r\n  \r\n } \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default observer(DateTimeTile);","import React from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { Row, Col } from 'reactstrap'\r\nimport { VisitEmergencyDepartment } from \"app/models/emergencydepartment\";\r\nimport agent from \"app/api/agent\";\r\nimport PatientRecordListDisplay, { IFilter, ISpecialFilter, ISort } from \"./common/PatientRecordListDisplay\";\r\nimport DateTimeTile from \"./common/DateTimeTile\";\r\n\r\nconst PatientRecordAttendancesList: React.FC = () => {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n\r\n const loadData = () => {\r\n return agent.Patient.Attendances({\r\n systemIdentifier: urlParams.get(\"p\"),\r\n patientIdentifier: null,\r\n visitIdentifier: null,\r\n })\r\n };\r\n\r\n const statusToVerb = (status: string) => {\r\n let newStatus = \"\";\r\n switch (status) {\r\n case \"ADM IN\":\r\n newStatus = \"Current inpatient\";\r\n break;\r\n case \"PRE IN\":\r\n newStatus = \"Pre-admitted\";\r\n break;\r\n case \"DIS IN\":\r\n newStatus = \"Discharged\";\r\n break;\r\n case \"SCH IN\":\r\n newStatus = \"Scheduled\";\r\n break;\r\n case \"PRE REF\":\r\n case \"REG REF\":\r\n case \"DEP REF\":\r\n newStatus = \"Referral\";\r\n break;\r\n default: \r\n break;\r\n }\r\n return newStatus;\r\n}\r\n\r\nconst statusToBadge = (status: string) => {\r\n let newStatus = \"\";\r\n let color = {\r\n foreground: \"white\",\r\n background: \"secondary\"\r\n }\r\n switch (status) {\r\n case \"ADM IN\":\r\n newStatus = \"in-progress\";\r\n color.background = \"danger\";\r\n break;\r\n case \"PRE IN\":\r\n newStatus = \"pre-adm\";\r\n color.background = \"info\";\r\n break;\r\n case \"DIS IN\":\r\n newStatus = \"finished\";\r\n color.background = \"success\";\r\n break;\r\n case \"SCH IN\":\r\n newStatus = \"booked\";\r\n color.background = \"primary\";\r\n break;\r\n case \"PRE REF\":\r\n case \"REG REF\":\r\n case \"DEP REF\":\r\n newStatus = \"referral\";\r\n color.background = \"warning\";\r\n color.foreground = \"dark\";\r\n break;\r\n default: \r\n break;\r\n }\r\n return {newStatus}\r\n}\r\n\r\nconst displayTemplate = (attendance: VisitEmergencyDepartment, index: number) => {\r\n return (\r\n
  • \r\n \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n
      \r\n
    • Presented with complaint {attendance.complaint?.description ? attendance.complaint.description : \"(no complaint recorded)\" }
    • \r\n
    • Attended via {attendance.admissionDetails.method.description}
    • \r\n {attendance.admissionDetails.source?.description ? (\r\n
    • Source {attendance.admissionDetails.source?.description}
    • \r\n ) : <>}\r\n
    • Discharge outcome was {attendance.dischargeDetails.outcome.description}
    • \r\n
    • Discharge destination was {attendance.dischargeDetails.destination.description}
    • \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n {attendance.systemPublicIdentifier.value}\r\n {statusToBadge(attendance.status.id)}\r\n \r\n
    \r\n
  • \r\n )\r\n} \r\n\r\nconst filters: IFilter[] = [\r\n { label: \"Attending\", accessPath: \"admissionDetails.attendingClinician.name\", specialType: \"Clinician\" } as ISpecialFilter,\r\n { label: \"Priority\", accessPath: \"admissionDetails.priority.description\" },\r\n { label: \"Method\", accessPath: \"admissionDetails.method.description\" },\r\n { label: \"Arrival\", accessPath: \"admissionDetails.admissionDateTime\", specialType: \"Date\" } as ISpecialFilter\r\n];\r\n\r\nconst sorts: ISort[] = [\r\n { label: \"Arrival Date\", accessPath: \"admissionDetails.admissionDateTime\", type: \"Date\" }\r\n ]\r\n\r\n return (\r\n \r\n )\r\n};\r\nexport default observer(PatientRecordAttendancesList);\r\n","import React from 'react';\r\nimport { DataLoadStatus } from \"app/api/agent\";\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faCheckDouble, faEllipsisH, faSpinner, faTimes } from '@fortawesome/free-solid-svg-icons';\r\n\r\ninterface IDataLoadStatusBadgeProps {\r\n status: DataLoadStatus\r\n}\r\n\r\nconst DataLoadStatusBadgeSummary: React.FC = ({ status }) => {\r\n\r\n return (\r\n \r\n {DataLoadStatus[status] === \"NotAttempted\" && (\r\n \r\n ) ||\r\n DataLoadStatus[status] === \"Loading\" && (\r\n \r\n ) ||\r\n DataLoadStatus[status] === \"Successful\" && (\r\n \r\n ) ||\r\n DataLoadStatus[status] === \"Failed\" && ( \r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default DataLoadStatusBadgeSummary;","import React, { ReactNode, useEffect, useState } from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { DataLoadStatus } from \"app/api/agent\";\r\nimport DataLoadStatusBadgeSummary from \"../DataLoadStatusBadgeSummary\";\r\nimport DataLoadErrorAlert from \"../DataLoadErrorAlert\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faCircleNotch } from \"@fortawesome/free-solid-svg-icons\";\r\n\r\ninterface IDataItemSummaryProps {\r\n _title: string,\r\n _agentCall: () => Promise,\r\n _displayTemplate: (data: any, status: DataLoadStatus, loader: ReactNode) => React.ReactNode\r\n}\r\n\r\nconst PatientRecordSummaryDisplay: React.FC> = ({ _title, _agentCall, _displayTemplate }) => {\r\n const [data, setData] = useState(null);\r\n const [error, setError] = useState(\"\");\r\n const [status, setStatus] = useState(DataLoadStatus.NotAttempted);\r\n\r\n useEffect(() => {\r\n loadData();\r\n }, []); \r\n\r\n const loadData = () => {\r\n if (status !== DataLoadStatus.Loading) {\r\n setStatus(DataLoadStatus.Loading);\r\n _agentCall()\r\n .then((response) => {\r\n setData(response); \r\n setStatus(DataLoadStatus.Successful);\r\n })\r\n .catch((ex) => {\r\n setStatus(DataLoadStatus.Failed);\r\n setError(ex);\r\n });\r\n }\r\n }\r\n\r\n const loader = () : ReactNode => {\r\n return (\r\n
    \r\n )\r\n }\r\n\r\n return ( \r\n
    \r\n
    \r\n {_title}\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {_displayTemplate(data, status, loader())}\r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default observer(PatientRecordSummaryDisplay);","import React, { useEffect, useState } from \"react\";\r\nimport { PatientProblem } from \"../../app/models/inpatient\";\r\nimport { ListGroup, ListGroupItem, Table } from \"reactstrap\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport agent, { DataLoadStatus } from \"app/api/agent\";\r\nimport { ShortDateOnlyFormat, ShortDateTimeFormat } from \"./common/DateTimeFunctions\";\r\nimport PatientRecordSummaryDisplay from \"./common/PatientRecordSummaryDisplay\";\r\n\r\nconst PatientRecordSummaryProblems: React.FC = () => {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n\r\n const loadData = () => \r\n agent.Patient.Problems({\r\n systemIdentifier: urlParams.get(\"p\"),\r\n patientIdentifier: null,\r\n visitIdentifier: null\r\n })\r\n\r\n const displayTemplate = (data: any, status: DataLoadStatus, loader: React.ReactNode) => {\r\n\r\n if (status === DataLoadStatus.Loading)\r\n return loader;\r\n \r\n if (status === DataLoadStatus.Failed)\r\n return <>;\r\n \r\n return (\r\n <>\r\n
    \r\n Only the latest 10 Active, Acute and Chronic problems are displayed on this panel.\r\n
    \r\n \r\n \r\n \r\n {data && data.length > 0 ? \r\n \r\n data\r\n .filter((item: PatientProblem) => item.status === \"Acute\" || item.status === \"Chronic\" || item.status === \"Active\")\r\n .slice(0,10)\r\n .map((item: PatientProblem, index: number) => (\r\n \r\n \r\n \r\n \r\n )) : \r\n }\r\n \r\n
    {item.status}\r\n
    \r\n {ShortDateOnlyFormat(item.addedDateTime).substring(6,10)}\r\n
    \r\n {item.problem?.description}
    No problems recorded.
    \r\n \r\n )}\r\n \r\n return (\r\n \r\n )\r\n}\r\nexport default observer(PatientRecordSummaryProblems);\r\n","import React, { ReactNode, useEffect, useState } from \"react\";\r\nimport { PatientAllergy } from \"../../app/models/inpatient\";\r\nimport { ListGroup, ListGroupItem, Table } from \"reactstrap\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport agent, { DataLoadStatus } from \"app/api/agent\";\r\nimport { ShortDateOnlyFormat, ShortDateTimeFormat } from \"./common/DateTimeFunctions\";\r\nimport PatientRecordSummaryDisplay from \"./common/PatientRecordSummaryDisplay\";\r\n\r\nconst PatientRecordSummaryAllergies: React.FC = () => {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n\r\n const loadData = () => \r\n agent.Patient.Allergies({\r\n systemIdentifier: urlParams.get(\"p\"),\r\n patientIdentifier: null,\r\n visitIdentifier: null\r\n })\r\n\r\n const displayTemplate = (data: any, status: DataLoadStatus, loader: ReactNode) => {\r\n\r\n if (status === DataLoadStatus.Loading)\r\n return loader;\r\n \r\n if (status === DataLoadStatus.Failed)\r\n return <>;\r\n\r\n return (\r\n \r\n \r\n {data && data.length > 0 ?\r\n data.map((item: PatientAllergy, index: number) => (\r\n \r\n \r\n \r\n \r\n )) : \r\n }\r\n
    \r\n {item.status}\r\n \r\n {item.allergy.description} ({item.reaction})\r\n
    \r\n {ShortDateOnlyFormat(item.addedDateTime).substring(6,10)}\r\n
    \r\n
    No allergies recorded.
    \r\n )}\r\n \r\n return (\r\n \r\n )\r\n}\r\nexport default observer(PatientRecordSummaryAllergies);\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { IdDescriptionPair } from \"../../app/models/inpatient\";\r\nimport { ListGroup, ListGroupItem, Table } from \"reactstrap\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport agent, { DataLoadStatus } from \"app/api/agent\";\r\nimport { ShortDateTimeFormat } from \"./common/DateTimeFunctions\";\r\nimport PatientRecordSummaryDisplay from \"./common/PatientRecordSummaryDisplay\";\r\n\r\nconst PatientRecordSummaryCaseloads: React.FC = () => {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n\r\n const loadData = () => \r\n agent.Patient.Caseloads({\r\n systemIdentifier: urlParams.get(\"p\"),\r\n patientIdentifier: urlParams.get(\"p\"),\r\n visitIdentifier: null\r\n })\r\n\r\n const displayTemplate = (data: any, status: DataLoadStatus, loader: React.ReactNode) => {\r\n\r\n if (status === DataLoadStatus.Loading)\r\n return loader;\r\n \r\n if (status === DataLoadStatus.Failed)\r\n return <>;\r\n \r\n return (\r\n \r\n \r\n {data && data.length > 0 ?\r\n data.map((item: IdDescriptionPair, index: number) => (\r\n \r\n \r\n \r\n \r\n ))\r\n : }\r\n \r\n
    \r\n {item.description}\r\n
    {item.code.description}
    \r\n
    No caseloads found.
    \r\n )}\r\n \r\n return (\r\n \r\n )\r\n}\r\nexport default observer(PatientRecordSummaryCaseloads);\r\n","import React from \"react\";\r\nimport { PersonContactReference } from \"../../app/models/inpatient\";\r\nimport { Table } from \"reactstrap\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport agent, { DataLoadStatus } from \"app/api/agent\";\r\nimport PatientRecordSummaryDisplay from \"./common/PatientRecordSummaryDisplay\";\r\n\r\nconst PatientRecordSummaryContacts: React.FC = () => {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n\r\n const loadData = () => \r\n agent.Patient.Contacts({\r\n systemIdentifier: urlParams.get(\"p\"),\r\n isAnonymous: process.env.REACT_APP_IS_ANONYMOUS === \"true\"\r\n })\r\n\r\n const displayTemplate = (data: any, status: DataLoadStatus, loader: React.ReactNode) => {\r\n\r\n if (status === DataLoadStatus.Loading)\r\n return loader;\r\n \r\n if (status === DataLoadStatus.Failed)\r\n return <>;\r\n \r\n return (\r\n \r\n \r\n {data && data.length > 0 ?\r\n data.map((item: PersonContactReference, index: number) => (\r\n \r\n \r\n \r\n \r\n )) : \r\n }\r\n
    {item.type?.description}\r\n
    {item.relationship?.description}
    \r\n
    {item.name?.forename} {item.name?.surname}
    \r\n
    {item.contactDetails?.address.houseNumberName} {item.contactDetails?.address.line1}
    \r\n
    {item.contactDetails?.address.line2}
    \r\n
    {item.contactDetails?.address.line3}
    \r\n
    {item.contactDetails?.address.line4}
    \r\n
    {item.contactDetails?.address.postcode}
    \r\n
    \r\n
    Landline #: {item.contactDetails?.landlineNumber}
    \r\n
    Mobile #: {item.contactDetails?.otherNumber}
    \r\n
    No contacts found.
    \r\n )}\r\n \r\n return (\r\n \r\n )\r\n}\r\nexport default observer(PatientRecordSummaryContacts);\r\n","import React, { Fragment } from \"react\";\r\nimport { Queries } from \"../../app/models/inpatient\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport agent, { DataLoadStatus } from \"app/api/agent\";\r\nimport { ShortDateTimeFormat } from \"./common/DateTimeFunctions\";\r\nimport PatientRecordSummaryDisplay from \"./common/PatientRecordSummaryDisplay\";\r\nimport { UncontrolledPopover, Popover, PopoverHeader, PopoverBody, ListGroup, ListGroupItem, Col, Row, Table } from \"reactstrap\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faBars, faBug, faCannabis, faClock, faExternalLinkSquareAlt, faFistRaised, faPills, faRunning, faShieldAlt, IconDefinition } from \"@fortawesome/free-solid-svg-icons\";\r\n\r\ninterface IQueryDisplay {\r\n queries: Queries[],\r\n icon: IconDefinition,\r\n title: string,\r\n color: string\r\n}\r\n\r\nconst PatientRecordSummaryQueries: React.FC = () => {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n\r\n const loadData = () => {\r\n let queries = agent.Patient.Queries({\r\n systemIdentifier: urlParams.get(\"p\"),\r\n patientIdentifier: null,\r\n visitIdentifier: null\r\n })\r\n queries.then(q => console.log(q));\r\n return queries;\r\n }\r\n\r\n const QuerySets = (queries: Queries[]) : IQueryDisplay[] => {\r\n \r\n return queries && [\r\n { queries: queries.filter((item: Queries) => item.grouping === \"Safeguarding\"), icon: faShieldAlt, title: \"Safeguarding\", color: \"danger\" },\r\n { queries: queries.filter((item: Queries) => item.grouping === \"Social Services\"), icon: faExternalLinkSquareAlt, title: \"Social Services\", color: \"female\" },\r\n { queries: queries.filter((item: Queries) => item.grouping === \"Infection Control\"), icon: faBug, title: \"Infection Control\", color: \"danger\" },\r\n { queries: queries.filter((item: Queries) => item.query.id === \"SI.VA\"), icon: faFistRaised, title: \"Violent/Abusive\", color: \"danger\" },\r\n { queries: queries.filter((item: Queries) => item.query.id === \"HX.OTH.DRU\" && item.responseValue.startsWith(\"Y\")), icon: faCannabis, title: \"Hx Drug/Substance Abuse\", color: \"success\" },\r\n { queries: queries.filter((item: Queries) => item.query.id === \"FALLS.RISK\" && item.responseValue.startsWith(\"Y\")), icon: faRunning, title: \"Falls Risk\", color: \"info\" },\r\n { queries: queries.filter((item: Queries) => item.query.id === \"SI.DOLS\"), icon: faBars, title: \"Deprivation of Liberties Safeguarding\", color: \"danger\" },\r\n { queries: queries.filter((item: Queries) => item.query.id === \"SI.LD\"), icon: faBars, title: \"Learning Disabilities\", color: \"dark\" },\r\n // { queries: queries.filter((item: Queries) => item.query.id === \"SI.DEM\"), icon: \"fas fa-flower\", title: \"Known Dementia Diagnosis\", color: \"dark\" },\r\n { queries: queries.filter((item: Queries) => item.query.id === \"SI.MDS\"), icon: faPills, title: \"Medicines Dosage System (MDS)\", color: \"dark\" },\r\n { queries: queries.filter((item: Queries) => item.query.id === \"PDD\"), icon: faClock, title: \"Estimated Date of Discharge\", color: \"success\" }\r\n ] || []\r\n } \r\n \r\n\r\n const QuerySetCount = (queries: Queries[]) : number => {\r\n return QuerySets(queries).filter(qs => qs.queries.length > 0).length;\r\n } \r\n\r\n const displayTemplate = (data: any, status: DataLoadStatus, loader: React.ReactNode) => {\r\n\r\n if (status === DataLoadStatus.Loading)\r\n return loader;\r\n \r\n if (status === DataLoadStatus.Failed)\r\n return <>;\r\n \r\n return (\r\n
    \r\n {QuerySetCount(data) > 0 ?\r\n <>\r\n
    \r\n Hover each icon for more information about the flag or indicator.\r\n
    \r\n {QuerySets(data).map((querySet: IQueryDisplay, index: number) => (\r\n \r\n {querySet.queries.length > 0 &&\r\n <>\r\n
    \r\n \r\n
    \r\n \r\n {querySet.title}\r\n \r\n \r\n {querySet.queries.map((query, index) => (\r\n \r\n \r\n \r\n {query.query?.description}\r\n \r\n \r\n {query.responseValue}\r\n
    {ShortDateTimeFormat(query.responseDateTime)}
    \r\n \r\n
    \r\n
    \r\n ))}\r\n
    \r\n
    \r\n
    \r\n \r\n }\r\n
    \r\n ))} : \r\n
    No flags or indicators found.
    \r\n }\r\n
    \r\n )}\r\n \r\n return (\r\n \r\n )\r\n}\r\nexport default observer(PatientRecordSummaryQueries);\r\n","import React from \"react\";\r\nimport { VisitRequest } from \"../../app/models/inpatient\";\r\nimport { Table } from \"reactstrap\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport agent, { DataLoadStatus } from \"app/api/agent\";\r\nimport { ShortDateOnlyFormat } from \"./common/DateTimeFunctions\";\r\nimport PatientRecordSummaryDisplay from \"./common/PatientRecordSummaryDisplay\";\r\n\r\nconst PatientRecordSummaryReferrals: React.FC = () => {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n\r\n const loadData = () => \r\n agent.Patient.Referrals({\r\n systemIdentifier: urlParams.get(\"p\"),\r\n patientIdentifier: urlParams.get(\"p\"),\r\n visitIdentifier: null\r\n })\r\n\r\n const displayTemplate = (data: any, status: DataLoadStatus, loader: React.ReactNode) => {\r\n\r\n if (status === DataLoadStatus.Loading)\r\n return loader;\r\n \r\n if (status === DataLoadStatus.Failed)\r\n return <>;\r\n \r\n return (\r\n \r\n \r\n {data && data.length > 0 ?\r\n data.map((item: VisitRequest, index: number) => (\r\n \r\n \r\n \r\n \r\n \r\n ))\r\n : }\r\n \r\n
    \r\n {item.priority}\r\n {ShortDateOnlyFormat(item.requestDateTime)} - {item.procedure.description}
    {item.requestComment}
    No referrals found.
    \r\n )}\r\n \r\n return (\r\n \r\n )\r\n}\r\nexport default observer(PatientRecordSummaryReferrals);\r\n","import React, { useContext, useEffect, useState } from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { Row, Col } from \"reactstrap\";\r\nimport PatientRecordSummaryProblems from \"./PatientRecordSummaryProblems\";\r\nimport PatientRecordSummaryAllergies from \"./PatientRecordSummaryAllergies\";\r\nimport PatientRecordSummaryCaseloads from \"./PatientRecordSummaryCaseloads\";\r\nimport PatientRecordSummaryContacts from \"./PatientRecordSummaryContacts\";\r\nimport PatientRecordSummaryQueries from \"./PatientRecordSummaryQueries\";\r\nimport PatientRecordSummaryReferrals from \"./PatientRecordSummaryReferrals\";\r\nimport PatientRecordStore from \"app/stores/patientRecordStore\";\r\nimport { CompareDayMonthFormat, LongDateOnlyFormat } from \"./common/DateTimeFunctions\";\r\n\r\nconst PatientRecordSummary: React.FC = () => {\r\n const patientRecordStore = useContext(PatientRecordStore);\r\n const patient = patientRecordStore.patient;\r\n\r\n const subjectPronoun = patient.gender === \"M\" ? \"He\" : \"She\";\r\n const possessivePronoun = patient.gender === \"M\" ? \"His\" : \"Her\";\r\n const forename = patient.name.forename;\r\n const surname = patient.name.surname;\r\n const name = forename + \" \" + surname;\r\n const tense = patient.dateOfDeath === null ? \"is\" : \"was\";\r\n\r\n return (\r\n <>\r\n \r\n \r\n

    \r\n This Summary page shows the latest or \"Active\" Allergies, Problems, Contacts, Queries/Indicators, Community Caseloads \r\n and Internal Referrals. Full details can be found on the other Patient Record tabs.

    \r\n \r\n
    \r\n \r\n {patient.dateOfDeath !== null ?\r\n
    \r\n \r\n {name}\r\n has sadly passed away. {(patient.gender == \"M\" ? \"He\" : \"She\")} lived {LongDateOnlyFormat(patient.dateOfBirth)} - {LongDateOnlyFormat(patient.dateOfDeath)}.\r\n
    :\r\n CompareDayMonthFormat(patient.dateOfBirth) === CompareDayMonthFormat(new Date()) &&\r\n
    \r\n Remember to wish {forename} a Happy Birthday today!\r\n
    \r\n }\r\n
    \r\n {name} {tense} a {patient.age} yr old {patient.gender === \"M\" ? \"male\" : \"female\"} born {LongDateOnlyFormat(patient.dateOfBirth)}.\r\n {patient.careHome?.description && <> {subjectPronoun} currently resides in the nursing/care home \"{patient.careHome?.description}\". }\r\n {patient.religion.id && ![\"Not Known\",\"None\"].includes(patient.religion.description) ? \r\n <> {subjectPronoun} {tense} of {patient.religion?.description} religion : \r\n patient.religion.description !== \"None\" ? \r\n <> {possessivePronoun} religion {tense} not known :\r\n <> {subjectPronoun} {tense} not religious} and \r\n {patient.maritalStatus?.id && ![\"NOTKNOWN\"].includes(patient.maritalStatus.id) ? \r\n <> is {patient.maritalStatus?.id.toLowerCase()} : \r\n !patient.maritalStatus.id ? \r\n <> {possessivePronoun.toLowerCase()} marital status {tense} not known :\r\n <>}.\r\n {patient.ethnicity?.description && ![\"Not stated\"].includes(patient.ethnicity.description) ? \r\n <> {subjectPronoun} {tense} of {patient.ethnicity?.description.toLowerCase()} ethnicity : \r\n !patient.ethnicity.description ? \r\n <> {possessivePronoun} ethnicity {tense} not known :\r\n <> {possessivePronoun} ethnicity is not stated} \r\n {patient.language?.id && ![\"Not known\"].includes(patient.language.id) ? \r\n <>{patient.ethnicity?.description && ![\"Not stated\"].includes(patient.ethnicity.description) ? \" and\" : \", but\"} {patient.language?.id.toLowerCase()} {tense} {possessivePronoun.toLowerCase()} primary language : \r\n !patient.language.id ? \r\n <>{patient.ethnicity?.description && ![\"Not stated\"].includes(patient.ethnicity.description) ? \", but\" : \" and\"} {possessivePronoun.toLowerCase()} primary language {tense} not known :\r\n <>}.\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\nexport default observer(PatientRecordSummary);\r\n","import { FhirJwtToken, IFhirAvailability, IFhirBundle } from 'app/models/fhir';\r\nimport { IUser } from 'app/models/user';\r\n\r\nlet yhcrJwt: FhirJwtToken = null;\r\nlet yhcrJwtNhs: string = null;\r\nlet tknRequestDetails: IJwtRequest = null;\r\nlet dtJwtExpires = null;\r\n\r\nexport interface tokenValidity {\r\n valid: boolean,\r\n nhsNumber: string,\r\n expires: Date,\r\n token: FhirJwtToken\r\n}\r\n\r\nconst headers = (withBearer: boolean) => {\r\n const token = window.localStorage.getItem('jwt');\r\n let h:any = {\r\n \"Content-Type\": \"application/json\", \r\n \"Accept\": \"application/json\",\r\n }\r\n if (withBearer)\r\n h[\"Authorization\"] = `Bearer ${token}`; \r\n \r\n return h;\r\n}\r\n\r\nconst headerDocuments = (withBearer: boolean) => {\r\n const token = window.localStorage.getItem('jwt');\r\n let h:any = {\r\n \"Content-Type\": \"application/json\", \r\n \"Content-Disposition\": \"inline; filename=YhcrDocument\",\r\n \"Accept\": \"application/pdf\"\r\n }\r\n if (withBearer)\r\n h[\"Authorization\"] = `Bearer ${token}`; \r\n \r\n return h;\r\n}\r\n\r\nconst validateYhcrJwt = (nhsNumber: string) : Promise => {\r\n return new Promise((resolve) => {\r\n return resolve({ \r\n valid: nhsNumber === yhcrJwtNhs && new Date() < dtJwtExpires,\r\n nhsNumber: yhcrJwtNhs,\r\n expires: dtJwtExpires,\r\n token: yhcrJwt\r\n })});\r\n}\r\n\r\nconst updateToken = (tkn:FhirJwtToken, nhsNumber: string) => {\r\n dtJwtExpires = new Date(); \r\n dtJwtExpires = new Date(dtJwtExpires.getTime() + (tkn.expires_in * 1000));\r\n yhcrJwt = tkn;\r\n yhcrJwtNhs = nhsNumber;\r\n}\r\n\r\nconst getToken = (req: IJwtRequest) => {\r\n tknRequestDetails = {\r\n nhsNumber: req.nhsNumber,\r\n isAnonymous: isAnonymous(),\r\n username: req.username,\r\n forename: req.forename,\r\n surname: req.surname\r\n }\r\n return Jwt.post(tknRequestDetails)\r\n .then(tkn => { return updateToken(tkn, req.nhsNumber) })\r\n}\r\n\r\nconst getBaseUri = () => process.env.REACT_APP_YHCRAPI_BASE_URI;\r\nconst isAnonymous = () => process.env.REACT_APP_IS_ANONYMOUS === \"true\";\r\n\r\nconst requests = { \r\n post: async (url: string, body: any) => fetch(`${getBaseUri()}${url}`, { method: \"post\", headers: headers(true), body: JSON.stringify(body)}),\r\n postNoHeader: async (url: string, body: any) => fetch(`${getBaseUri()}${url}`, { method: \"post\", headers: headers(false), body: JSON.stringify(body)}),\r\n resource: async (url: string, body: any) : Promise => { \r\n let uri = `${getBaseUri()}${url}`;\r\n return fetch(uri, { method: \"post\", headers: headers(true)})\r\n .then(resp => resp.json())\r\n .then(obj => {console.log(obj);return obj })\r\n },\r\n document: async (url: string, body: IFhirDocumentRequest) => { \r\n if (!yhcrJwt || dtJwtExpires < new Date()) \r\n await getToken(tknRequestDetails); \r\n\r\n return fetch(`${getBaseUri()}${url}`, \r\n { \r\n method: \"post\", \r\n headers: headerDocuments(true), \r\n body: JSON.stringify({\r\n yhcrJwt: body.yhcrJwt,\r\n isAnonymous: body.isAnonymous,\r\n documentId: body.documentId,\r\n \r\n }) })\r\n } \r\n}\r\n\r\nconst Jwt = {\r\n post: (values: IJwtRequest): Promise => \r\n requests\r\n .post(`/jwt`, values)\r\n .then(resp => resp.json())\r\n .then(function(t) { window.localStorage.setItem(\"yhcrJwt\", t.access_token); return t})\r\n}\r\n\r\nconst Fhir = {\r\n get: (req: IFhirRequest): Promise => requests.post(`/fhir/`, req).then(r => r.json()),\r\n paging: (req: IFhirPagingRequest): Promise => requests.post(`/fhirPaging`, req).then(r => r.json()),\r\n das: (req: IFhirAvailabilityRequest): Promise => requests.post(`/das`, req).then(r => r.json()),\r\n document: (req: IFhirDocumentRequest): Promise => requests.post(`/document`, req)\r\n}\r\n\r\nconst JWT = {\r\n renew: (req: IJwtRequest) : Promise => getToken(req),\r\n exists: (): boolean => !!yhcrJwt,\r\n isValid: (): boolean => (yhcrJwt || dtJwtExpires < new Date()) ? true : false,\r\n validate: (nhsNumber: string) => validateYhcrJwt(nhsNumber)\r\n}\r\n\r\nexport interface IJwtRequest {\r\n nhsNumber: string,\r\n isAnonymous: boolean,\r\n username:string,\r\n forename: string,\r\n surname: string\r\n}\r\nexport interface IFhirRequest {\r\n resource: string,\r\n nhsNumber: string,\r\n countPerPage: number,\r\n isAnonymous: boolean,\r\n user: IUser,\r\n yhcrJwt: string\r\n}\r\nexport interface IFhirAvailabilityRequest {\r\n nhsNumber: string,\r\n isAnonymous: boolean,\r\n yhcrJwt: string\r\n}\r\nexport interface IFhirDocumentRequest {\r\n user: IUser,\r\n isAnonymous: boolean,\r\n documentId: string,\r\n nhsNumber: string,\r\n yhcrJwt: string\r\n}\r\nexport interface IFhirPagingRequest {\r\n searchGuid: string,\r\n pageOffset: number,\r\n countPerPage: number,\r\n isAnonymous: boolean,\r\n yhcrJwt: string\r\n}\r\n\r\nexport default {\r\n Fhir, \r\n JWT\r\n}","import React, { Fragment, useContext, useEffect, useState } from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { RootStoreContext } from \"app/stores/rootStore\";\r\nimport PatientRecordStore from \"app/stores/patientRecordStore\";\r\nimport yhcragent from \"app/api/yhcragent\";\r\nimport { IFhirAvailability } from \"app/models/fhir\";\r\nimport UserStore from \"app/stores/userStore\";\r\n\r\nconst PatientRecordYHCR: React.FC = () => {\r\n const rootStore = useContext(RootStoreContext);\r\n const patientRecordStore = useContext(PatientRecordStore);\r\n const [ availability, setAvailability ] = useState()\r\n\r\n const loadData = () => { \r\n\r\n let req = { \r\n nhsNumber: process.env.REACT_APP_IS_ANONYMOUS === \"true\" ? window.localStorage.getItem(\"yhcrSandpitPatient\") : patientRecordStore.patient?.nhsNumber?.value, \r\n isAnonymous: process.env.REACT_APP_IS_ANONYMOUS === \"true\",\r\n yhcrJwt: window.localStorage.getItem(\"yhcrJwt\")\r\n }\r\n return yhcragent.Fhir.das(req);\r\n }\r\n\r\n useEffect(() => { \r\n let nhs = process.env.REACT_APP_IS_ANONYMOUS === \"true\" ? window.localStorage.getItem(\"yhcrSandpitPatient\") : patientRecordStore.patient?.nhsNumber?.value\r\n \r\n if (nhs) {\r\n yhcragent.JWT.validate(nhs)\r\n .then(t => {\r\n console.log(t);\r\n if (!t.valid) {\r\n yhcragent.JWT.renew({\r\n nhsNumber: nhs,\r\n isAnonymous: process.env.REACT_APP_IS_ANONYMOUS === \"true\",\r\n username: rootStore.userStore.user.username,\r\n forename: rootStore.userStore.user.displayName.includes(\" \") ? rootStore.userStore.user.displayName.split(\" \")[0] : rootStore.userStore.user.displayName,\r\n surname: rootStore.userStore.user.displayName.includes(\" \") ? rootStore.userStore.user.displayName.split(\" \")[1] : rootStore.userStore.user.displayName,\r\n })\r\n .then(() => loadData().then(das => setAvailability(das)))\r\n } else {\r\n loadData().then(das => setAvailability(das))\r\n }\r\n })\r\n .catch(e => {\r\n console.log(e);\r\n })\r\n }\r\n }, [])\r\n\r\n const SandpitPatients = () : string[] => ['9657702402', '9657702100', '9657702070'] \r\n\r\n const setSandpitPatient = (nhsNumber: string) => {\r\n window.localStorage.setItem(\"yhcrSandpitPatient\", nhsNumber);\r\n let user = rootStore.userStore.user;\r\n yhcragent.JWT.renew({ \r\n nhsNumber: nhsNumber, \r\n username: user.username,\r\n forename: user.displayName.indexOf(' ') > -1 ? user.displayName.split(' ')[0] : user.displayName,\r\n surname: user.displayName.indexOf(' ') > -1 ? user.displayName.split(' ')[1] : user.displayName, \r\n isAnonymous: process.env.REACT_APP_IS_ANONYMOUS === \"true\"});\r\n loadData().then((das: IFhirAvailability) => setAvailability(das))\r\n }\r\n\r\n\r\n return (\r\n
    \r\n

    \r\n The Yorkshire and Humber Care Record (YHCR) allows professionals with a Direct Care\r\n relationship to view shared information from other health and social organisations in \r\n the Yorkshire and Humber region.\r\n

    \r\n {process.env.REACT_APP_IS_ANONYMOUS === \"true\" ? \r\n

    \r\n You're using the Sandpit environment where you must select an NHS number below\r\n to see any data:\r\n

      \r\n {SandpitPatients().map((p, i) => (\r\n
    • setSandpitPatient(p)} key={`pi_${i}`}>{p}
    • \r\n ))}\r\n
    \r\n

    : <>}\r\n
    \r\n

    \r\n The following organisations have data available for this patient:\r\n

    \r\n
      \r\n {availability && availability.detail && availability.detail.length > 0 ? availability.detail?.map(d => d.organization?.dataProviders.map((p, i) => (\r\n
    • \r\n {p.name} {p.prefix ? {p.prefix} : <>}\r\n
    • \r\n ))) :
    • No data available.
    • }\r\n
    \r\n
    \r\n

    \r\n Click a tab from the menu to show the data.\r\n

    \r\n
    \r\n );\r\n};\r\nexport default observer(PatientRecordYHCR);\r\n","import React, { useEffect, useContext } from \"react\";\r\nimport { Switch, Route } from 'react-router-dom';\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { Row, Col, Container, Card } from 'reactstrap'\r\nimport { RootStoreContext } from \"../../app/stores/rootStore\";\r\nimport PatientRecordHeader from \"./PatientRecordHeader\";\r\nimport PatientRecordNavBar from \"./PatientRecordNavBar\";\r\nimport PatientRecordAllergiesList from \"./PatientRecordAllergiesList\";\r\nimport PatientRecordProblemsList from \"./PatientRecordProblemsList\";\r\nimport PatientRecordAppointmentsList from \"./PatientRecordAppointmentsList\";\r\nimport PatientRecordAdmissionsList from \"./PatientRecordAdmissionsList\";\r\nimport PatientRecordMedicationsList from \"./PatientRecordMedicationsList\";\r\nimport PatientRecordInvestigationsList from \"./PatientRecordInvestigationsList\";\r\nimport PatientRecordMig from \"./PatientRecordMig\";\r\nimport problemsImg from '../../app/images/stethoscope.png';\r\nimport allergiesImg from '../../app/images/rash.png';\r\nimport appointmentsImg from '../../app/images/medical-appointment.png';\r\nimport attentanceImg from '../../app/images/ambulance.png';\r\nimport admissionImg from '../../app/images/hospital-bed.png';\r\nimport documentImg from '../../app/images/file.png';\r\nimport medicationImg from '../../app/images/medication.png';\r\nimport summaryImg from '../../app/images/summary.png';\r\nimport resultImg from '../../app/images/flask.png';\r\nimport yhcrImg from '../../app/images/yhcr.png';\r\nimport doctorImg from '../../app/images/doctor.png';\r\nimport PatientRecordDocumentsList from \"./PatientRecordDocumentsList\";\r\nimport PatientRecordDocumentView from \"./PatientRecordDocumentView\";\r\nimport PatientRecordAttendancesList from \"./PatientRecordAttendancesList\";\r\nimport PatientRecordStore from \"app/stores/patientRecordStore\";\r\nimport PatientRecordSummary from \"./PatientRecordSummary\";\r\nimport PatientRecordYHCR from \"./PatientRecordYHCR\";\r\nexport interface IPatientNav {\r\n route: string,\r\n displayOnMenu: boolean,\r\n imageSrc: string,\r\n title: string,\r\n component: React.ReactNode\r\n}\r\n\r\nconst PatientRecordPageLayout: React.FC = () => {\r\n const rootStore = useContext(RootStoreContext);\r\n const { user } = rootStore.userStore; \r\n const patientRecordStore = useContext(PatientRecordStore);\r\n const urlParams = new URLSearchParams(window.location.search);\r\n const getPageRoute = (routePath:string) => `${process.env.REACT_APP_URL_PATIENT_RECORD}${routePath}`\r\n \r\n let menuItems: IPatientNav[] = [\r\n { route: \"/summary\", title: \"Summary\", displayOnMenu: user.roles.filter(r => r.userAccess?.some(ua => [\"Patient Record\", \"Patient Record (Summary Only)\"].includes(ua.name))).length > 0, imageSrc: summaryImg, component: },\r\n { route: \"/problems\", title: \"Problems\", displayOnMenu: user.roles.filter(r => r.userAccess?.some(ua => [\"Patient Record\", \"Patient Record (Problems Only)\"].includes(ua.name))).length > 0, imageSrc: problemsImg, component: },\r\n { route: \"/allergies\", title: \"Allergies\", displayOnMenu: user.roles.filter(r => r.userAccess?.some(ua => [\"Patient Record\", \"Patient Record (Allergies Only)\"].includes(ua.name))).length > 0, imageSrc: allergiesImg, component: },\r\n { route: \"/appointments\", title: \"Appointments\", displayOnMenu: user.roles.filter(r => r.userAccess?.some(ua => [\"Patient Record\", \"Patient Record (Appointments Only)\"].includes(ua.name))).length > 0, imageSrc: appointmentsImg, component: },\r\n { route: \"/admissions\", title: \"Admissions\", displayOnMenu: user.roles.filter(r => r.userAccess?.some(ua => [\"Patient Record\", \"Patient Record (Admissions Only)\"].includes(ua.name))).length > 0, imageSrc: admissionImg, component: },\r\n { route: \"/attendances\", title: \"Attendances\", displayOnMenu: user.roles.filter(r => r.userAccess?.some(ua => [\"Patient Record\", \"Patient Record (Attendances Only)\"].includes(ua.name))).length > 0, imageSrc: attentanceImg, component: },\r\n { route: \"/medications\", title: \"Medications\", displayOnMenu: user.roles.filter(r => r.userAccess?.some(ua => [\"Patient Record\", \"Patient Record (Medications Only)\"].includes(ua.name))).length > 0, imageSrc: medicationImg, component: },\r\n { route: \"/document\", title: \"Document\", displayOnMenu: false, imageSrc: documentImg, component: },\r\n { route: \"/documents\", title: \"Documents\", displayOnMenu: process.env.REACT_APP_IS_ANONYMOUS === \"false\" && user.roles.filter(r => r.userAccess?.some(ua => [\"Patient Record\", \"Patient Record (Documents Only)\"].includes(ua.name))).length > 0 ? true : false, imageSrc: documentImg, component: },\r\n { route: \"/investigations\", title: \"Investigations\", displayOnMenu: user.roles.filter(r => r.userAccess?.some(ua => [\"Patient Record\", \"Patient Record (Investigations Only)\"].includes(ua.name))).length > 0, imageSrc: resultImg, component: },\r\n { route: \"/yhcr\", title: \"YHCR\", displayOnMenu: user.roles.filter(r => r.userAccess?.some(ua => ua.name === 'YHCR')).length > 0, imageSrc: yhcrImg, component: },\r\n { route: \"/mig\", title: \"GP Data (MIG)\", displayOnMenu: user.roles.filter(r => r.userAccess?.some(ua => [\"Patient Record\", \"Patient Record (MIG Only)\"].includes(ua.name))).length > 0, imageSrc: doctorImg, component: }\r\n ];\r\n\r\n useEffect(() => { \r\n let mis = menuItems.filter(mi => getPageRoute(mi.route) === window.location.pathname);\r\n if (mis.length) {\r\n let audit = {\r\n module: \"PatientRecord\",\r\n description: `${rootStore.userStore.user.username} has accessed ${mis[0].title}`,\r\n username: rootStore.userStore.user.username,\r\n action: mis[0].title,\r\n page: window.location.pathname,\r\n documentId: urlParams.get(\"d\"),\r\n patientId: urlParams.get(\"p\"),\r\n visitId: urlParams.get(\"v\")\r\n };\r\n rootStore.auditStore.addEntry(audit);\r\n } \r\n },[,window.location.pathname]);\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n {patientRecordStore.patient ? \r\n \r\n {menuItems.map((menuItem: IPatientNav, index: number) => \r\n <>\r\n

    {menuItem.title}

    \r\n {menuItem.component}\r\n }\r\n />\r\n )}\r\n
    \r\n : <>Loading... }\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n\r\n}\r\nexport default observer(PatientRecordPageLayout)","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAABuwAAAbsBOuzj4gAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAwoSURBVHicxVtpcBxHFf66Z2aP2UvSrqVdnT4Sx3J8YSfEJBT4AqewDSnAwnHyg3CEKmJSEEJRQHE4VAUKqKISEpEUoXLhA9ukIKk4XL7ikIATEcexY9mSLdmWJVlHJO29OzP9+KHDknelPWY2fP+2p/ub977ped3vTS8jIpQaTU1N0oAUuB3gGwioBkMQQBkYukDoIOA8GGv3RtIvv/jik/GSGzQJrNQCrL5r2xYQfgmgNo/uAyA8onPx+NEdzUMlNWwMJRVg1V33/ZARe6iIoVGAHpmlVz60Z8+P05YbNgklE2Dd3fcv1IV4lwHcBM1xgN15aOdvWi0z7BqYMW5GGEJsN+k8ACwjRi1r7vrGvZYYlQUlmQFrt9w/T3DRBoBZxUnA9w/vfOxnVvGNoyQzgCRaCwudxyjZw6u2fuMeKzkBC2fA6ru/vhKCbQHYZwDMtoQ0EzojccfBXc0vW0VoiQCrtt63iYG9AEA2b9LMIIY4DFp1ePfjb1rBZ9rgtXfedytjbE+xXI3VBuYHDVR6BZwKoaNfQtsVCWd6JGR7NIyggrNHANxqyvAJPpMzYPXWbXsBfL6QMU4b4bMr0rh9cRq1FSJrn/N9Ep5/3Y4jrcp0Qqw7uOuxA0WYfA2PCQGampqkfrlyAEDZ5HaHQlhSZ2BRrY6acoHWbgnHOhRcGOD4xI0avrY6Cb87u+PX4nCrgodfUqEZU9sJePXwzsc+XrTxYzAlwJot9y8lLo5PbpvlEfjVlhjq/ZkOdg9zVJfl5/hknLgk4zt/dCGtT21nklhw8PnmMwUTToKlyyBnwM82x7M6D6Ao5wFgSZ2Oez6azGgnwT5SFOEkmBNA0adYtWlZGvMqjel6m0LTLSksCGVw32KW15QACqMpGdvGZaXLWzgDtq1LTG0ktsg0r5nBf3vut30AtQGALMGYM6s0T38cC2sMBDxXXyNiuGiW04IYwA4CQE25iEklS63G7gTg1usmRULCSbOc5k0mdggAqryitI9/DLfMuyoAJ3bKLJ9pAWyKfggAPA7SzHLlg4XVEwJousHeMMtnWoDROIBTZeoHMwPKVELALdIM+POrex7tN8tnSfLyoVDyvaDb2GwFVz64MaTZQrbkBSu4LAlb31w52OhXi9vkFIMFQR2faQxvtILLfDq8t8mWciejhkdVVK9ihU050dFloJpFDLsz6saqQ5lbxAJgegZoanwxQIpd+uBmQH25DgCSFlf/vxshABCyNAIApH9wAozfSwg+YpbLtAD29X9pB3CErs1XS4hRAehf9o0vtZnlsiQIEqOnRNpA1spFCUBpHcT401ZwWSKAI6LughDNIq2VXAKR0kFETzlmdT9nBZ+13wWO3/1NcPZr6wizgOh7WPqHn1tFZ236wrEPQCmDgQCnPVYSWivAkj90AbTTUs4pYHuxeMd5KxmtT2CZeBhAKdZEAvGfWk1qvQCLd7YCbK/lvMA+LH3GdPp7LUpTwhh9UlamxxpQ1DmDnCiNAEufOQUS1hksaDuWPGe6+pMNJStipXrCcRL0H7M8JOhYb0c4ZYVN2VAyARiYLX0lUgOCmaLFYP+lWBUHVy0z7BqUtowpRK02FOtEcZtkGulLnTc0arDYqikocR0XEAntZiOWfrXQcYmIdjQeTt9cCpsmw9Kt8I5XXvE6he3DIOPm61jL4hv463eOX5PLnYcl1f5R5C7D6Ymw9tpwX3LVeMMl6Za9F+WbjksGvanbqWXz+vXvW2WzaQG2b9/Ob1xx290MtBXAGs654vaUDfk8amR2ZF+/L3psxXhfbpdPKgGXCrC52biI0DHUk0ik4vrC8baEb8U7ff7Pl0ciUXc0Eq4QQgBAOwN2GWBPbd64ztTHEVMCvPDSgZuJ0RMALbc7nJcC/srLNod9KQDneB/ZGGmp73vS50xdvA4YDQYaSVfgkC9KipwGAF0TtmRMazA0qhwfpznqOobqvjpkyL7lk26Z0HTttaGhge5YOLIGQJAxsf6zG9YfKtaHogV44eV/biCiPznstu76utpBjeSbpr8LDGei8/X6vicbZREJAEDKYIineUZ0NCT3+8P1Xzmdds5ZCYI0HWVlmbr/dFt7IBKOzTdILN+86ZMdxfhRjACs5e2TD1zo7vlFeZkPKxYv4Iwx9L4ffS8STy/MMTZaHjv2Vmhg90pGaYdBQDQtwRCAYEoqHPrcmwnfR5YBcM9E4nbaTof87kYiwmvHjlOwMvD2DfMavutyuQ6gwBUnbwHi8XjIMIwv6oZx7xtvnZjNGMPK5Ysgy6MxjQi40DvcoxkilPOmMC5XDf3lgn/k4K0EoMe19j/Dsz5dS5Bqco1VJN7TECwLsbFDeMdPnYXdpqDx+jkA0MEY+z3n/GlVVbvz8SuXAFI4HL6dMfZVABsAyO2dl3Dxci9WLl8M1emY0lk3BC70jsQEkSufmw9eufQOAPir6pbm058zFmsI+lzypK+wre2diMbiuGnplMlnANgP4Hcej2c/ZqhRZF2ShoeHGzjnX2aM3cMYmzjlTUS43NOHUGUgw3kAkCWOkN+tdg9GiCj3QcnHd7w4GyD86IFtubqCARTyu9XJzg+8P4yunj7IUkaokABsArApEol0E9HTRPR7n8+XESembISi0ejqaDT6V0mSzjPGfohrjrgPDYeRSmuoKPdNa6jqUFi5x5nzvRocHoq3d170tXde8g0Pj8Ry9S/zOEh1KBOi9g8O4/ips/CX+5DWNKS1aZPPasbYDzjn58Lh8D+i0eiayRfHBbBHIpF9RHSQiNZjmh1iNJ4AYwz+Mu+Mxvq9Tq46lBlLY088uztJRCAi/PbZ3TMmO6pDMQI+dcKm/sEhvHPqDBpqg1jSeP2obbHEtOPHwBhj64joQDQa3QnABow5GolEdgP4XC6GRDIFj1udCHwzIVjhkmSJZ60MRaPx2NlznRWyJEOWZLSeO18RjkSzzgJZ4iJY7pqY48MjEbxz6iwIo0739A3AYbcjGsv/jyZEdGc4HH4eAHg4HP4UgDvyGcgYg6bpuTsCkDhHsMKddSY1P7MjIYggSxJkSYIgQvOzO7N+4wtWuLg09t5rmo4Tp9vg8bgwp64a5T4vznVeQjKVQqQAAcZ8aQqHw7fLjLGv5ztIkWUkkiloug4lj1ngtMsI+FQMjFw1Lp5Mxk+1nQvIkgw2tpbJkozTbef90Xg86lbViT2A3+uE0371g+vJM+cgBOFDi26ATRltD1UF0HLiNNLpwgtQjLFtnIiW5DvA5xld3cKRnDFrAuUeB1xO28TvJ57dFRVCTIncsiRBCIHmp6/OAtWhoMI7saPG5d4+9A8OoXH+nAnnAcBuU+B1qxjLEQoCES3hk5e5nM6UeeFPRVD+zz/BdmQ/WCyS17hguQuKzMEYxLunz1bKkjTx9IHRV0uWJLx3tj0giAxZ4ghWXN0MCiFwrrMLoaoAqgIVGfyCRpfoQsEYq+Uo4I8Ntpaj+FjrUSgN88AMDa7mh8AH+3KO45whVOFGmdvBF90wD7KU+frIkoyF8+ci4FWlkN8NiV81q6unD7phYMF1s7PfgAhCFJXTsIIKIrY3DqD3ji/hH5oLB9wNSHx8A5Q3j+Q11m4bjQeP/uRbmF2buVueXRvC4w99G36fEw7bVIEudPWgrrpq2rhDRLDZijvtk7cALJUEi0UwxGzQdR3xRBLRQA2k7sKO6tgUBQ/euzWj/cF7t055t8eh6ToSyRRc6vRlQd0w4HRk7kzzQd4CkN0BY14jZnefwZz6ajTOrUd5yxFoy28r+KY9fYMZbd19A1n7SpyDc450Mg6WyJ7fxOIJOB32gu0ACqwJplZthOP021j20lNo/OMjgKxAWzR9GWA67Hsls36x7+WD2Q3kHHMbaiD1vwr5TPPVCyIFkI7uK/1IptIo83oKtgMo8JicmBVC/IsPgA9eATldIHXGtD0r3m09h7PnM6tYbZ1dOP5eG5YtvD7j2tz6Goiy26DjwxNtSsuD6PFuQOuAH4GKMng9eSWgGSiqKiz8VUU5DwB7909fvdo7zSwAAO6dA/LOn/htVK1Fr1GHmmAllt44f9pxuVDyf3lNRm//IP711olpr7/x35Po6u1HbXBWTi5RfwdMHxHDqACWnLjMB38/eszrz/Gy/u3Iv6Nf/sIm06e/8sX/AEupwdKh8E8QAAAAAElFTkSuQmCC\"","import React from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { PaginationItem } from \"reactstrap\";\r\nimport { Link } from 'react-router-dom';\r\n\r\n\r\ninterface IProps {\r\n total: Number,\r\n countPerPage: Number,\r\n currentPage: Number,\r\n clickEvent: (label: string) => void\r\n}\r\n\r\nconst OperationOutcome: React.FC = ({ total, countPerPage, currentPage, clickEvent }) => {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n const pageCount = Math.ceil(Number((Number.isInteger(total) ? total : 0).toFixed(2)) / Number(countPerPage.toFixed(2)));\r\n const pages = Array.from({length: pageCount}, (v, i) => String(i + 1));\r\n\r\n const linkHtml = (label, index) => \r\n \r\n clickEvent(label)} to={`${window.location.pathname}?p=${urlParams.get(\"p\")}&v=${urlParams.get(\"v\")}${label !== \"1\" ? \"&yhcrPageOffset=\" + label : \"\"}`}>\r\n {label}\r\n \r\n \r\n \r\n return (\r\n
    \r\n {pageCount > 0 ?\r\n
    \r\n Showing page {currentPage} of {pageCount}.\r\n
    : <>}\r\n
      \r\n {pages.map((page, index) => \r\n linkHtml(page, index)\r\n )}\r\n
    \r\n
    \r\n )\r\n\r\n}\r\nexport default observer(OperationOutcome)","import React, { useState, useEffect } from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport DataLoadStatusBadge from \"../DataLoadStatusBadge\";\r\nimport DataLoadErrorAlert from \"../DataLoadErrorAlert\";\r\nimport { DataLoadStatus } from \"app/api/agent\";\r\nimport Loader from \"react-loader-spinner\";\r\nimport FhirLink from \"../yhcr/FhirLink\";\r\nimport { IFhirBundle } from \"app/models/fhir\";\r\n\r\ninterface IDataItemListProps {\r\n recordsPerPage?: number;\r\n _agentCall: (id: string, pageOffset: Number, countPerPage: Number) => Promise\r\n _displayTemplate: (dataItem: T, index: number) => React.ReactNode;\r\n}\r\n\r\nconst PatientRecordYhcrListDisplay: React.FC> = ({_agentCall, _displayTemplate, recordsPerPage = 20}) => {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n const [data, setData] = useState();\r\n const [currentPage, setCurrentPage] = useState(Number(urlParams.get(\"yhcrPageOffset\")) || 1);\r\n const countPerPage = Number(window.localStorage.getItem(\"yhcrDisplayCount\")) || 10;\r\n const [error, setError] = useState(\"\");\r\n const [status, setStatus] = useState(DataLoadStatus.NotAttempted);\r\n\r\n useEffect(() => {\r\n loadData();\r\n }, [,currentPage]); \r\n\r\n const linkClick = (label: string) => {\r\n setCurrentPage(Number(label));\r\n }\r\n\r\n const loadData = () => {\r\n if (status !== DataLoadStatus.Loading) {\r\n setStatus(DataLoadStatus.Loading);\r\n _agentCall(data?.id?.value || \"\", currentPage, countPerPage)\r\n .then((response: IFhirBundle) => {\r\n setData(response); \r\n setStatus(DataLoadStatus.Successful);\r\n })\r\n .catch((ex) => {\r\n setStatus(DataLoadStatus.Failed);\r\n setError(ex); \r\n });\r\n }\r\n }\r\n\r\n const includedOrganisations = () => data && data.entry?.length ? [...new Set(data.entry.filter(e => e.search.mode?.value === \"match\").map(e => e.resource.meta.tag.filter(t => t.system?.value === \"https://yhcr.nhs.uk/Source\")[0].display?.value))] : []\r\n const failedOrganisations = () => data && data.entry?.length ? [...new Set(data.entry.filter(e => e.search.mode?.value === \"outcome\").map(e => e.resource.meta ? e.resource.meta.tag.filter(t => t.system?.value === \"https://yhcr.nhs.uk/Source\")[0]?.display?.value : undefined))] : []\r\n\r\n return ( \r\n <> \r\n {status === DataLoadStatus.Successful ?\r\n <>\r\n \r\n \r\n
    \r\n Showing data from \r\n {includedOrganisations().length > 0 ?\r\n includedOrganisations().map((org, index) => \r\n {org}\r\n ) : <>no organisations\r\n }\r\n
    \r\n {failedOrganisations().length > 0 && (\r\n
    \r\n Data failed from \r\n {failedOrganisations().filter(o => o).map((org, index) => \r\n {org}\r\n )}\r\n
    \r\n )}\r\n \r\n {((data && data.entry) && data.entry.length > 0) ? \r\n
      \r\n {data.entry.map((dataItem, index) => (\r\n _displayTemplate(dataItem, index)\r\n ))}\r\n
    : \r\n <>\r\n

    No data found for this tab.

    \r\n }\r\n \r\n \r\n : status === DataLoadStatus.Loading ? \r\n \r\n : <>\r\n \r\n \r\n }\r\n \r\n )\r\n}\r\n\r\nexport default observer(PatientRecordYhcrListDisplay);","import React, { Fragment } from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { Col, Badge } from \"reactstrap\";\r\nimport { ShortDateOnlyFormat } from \"../common/DateTimeFunctions\";\r\nimport { IFhirAllergy } from \"app/models/fhir\";\r\n\r\ninterface IFhirAllergyProps {\r\n allergy: IFhirAllergy\r\n}\r\n\r\nconst YhcrAllergies: React.FC = ({ allergy }) => {\r\n\r\n return (\r\n \r\n \r\n {allergy.code?.coding?.map((coding, index) => (\r\n
    {coding.display?.value}
    \r\n ))}\r\n \r\n {allergy.reaction &&\r\n \r\n Reaction(s):\r\n {allergy.reaction?.map((reaction) => (\r\n reaction && reaction.manifestation.map((manifestation) => (\r\n manifestation && manifestation.coding.map((coding, cIndex) => (\r\n \r\n • {coding.display?.value}\r\n \r\n ))\r\n ))\r\n ))}\r\n }\r\n
    \r\n {allergy.onsetDateTime && (\r\n <>On-set {ShortDateOnlyFormat(allergy.onsetDateTime?.value)}.\r\n )}\r\n {allergy.assertedDate && (\r\n <> Asserted {ShortDateOnlyFormat(allergy.assertedDate?.value)}\r\n )}\r\n {allergy.asserter && (\r\n <> by {allergy.asserter.display?.value}.\r\n )}\r\n
    \r\n \r\n \r\n \r\n {allergy.clinicalStatus?.value}\r\n
    \r\n {allergy.verificationStatus?.value}\r\n
    \r\n \r\n
    \r\n )\r\n\r\n}\r\nexport default observer(YhcrAllergies)","import React, { Fragment } from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { Col } from \"reactstrap\";\r\nimport { ShortDateOnlyFormat, ShortTimeOnlyFormat } from \"../common/DateTimeFunctions\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faMapMarker, faUserMd } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { IFhirAppointment, IFhirExtension_v3, IFhirExtension_v4 } from \"app/models/fhir\";\r\n\r\ninterface IFhirAppointmentProps {\r\n appointment: IFhirAppointment\r\n}\r\n\r\nconst YhcrAppointments: React.FC = ({ appointment }) => {\r\n \r\n const getParticipants = (type: string) => \r\n appointment.participant.filter(a => a.type.length && a.type[0].coding[0].display?.value === type)\r\n\r\n const locationDisplay = () => getParticipants(\"location\").map((p,i) =>
    {p.actor.display?.value}
    )\r\n const consultantDisplay = () => getParticipants(\"consultant\").map((p,i) =>
    {p.actor.display?.value} : consultant : {p.required?.value}
    )\r\n const pperformerDisplay = () => getParticipants(\"primary performer\").map((p,i) =>
    {p.actor.display?.value} : primary performer : {p.required?.value}
    )\r\n\r\n return (\r\n \r\n \r\n
    \r\n {appointment.specialty && appointment.specialty.map((s, i) => (\r\n {s.coding[0].display?.value}\r\n ))} \r\n {appointment.serviceType && appointment.serviceType.map((s, i) => (\r\n {s.coding[0].display?.value}\r\n ))} \r\n {appointment.extension?.map((e, i) => (\r\n e.url?.value === \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-DeliveryChannel-1\" &&\r\n {(e as IFhirExtension_v3).valueCode}\r\n ))} \r\n {appointment.appointmentType?.coding.map((t, i) => (\r\n {t.code?.value.toLowerCase()}\r\n ))} \r\n
    \r\n {pperformerDisplay()}\r\n {consultantDisplay()}\r\n {locationDisplay()} \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    Start
    \r\n
    \r\n
    \r\n {ShortDateOnlyFormat(appointment.start?.value)}\r\n
    \r\n
    \r\n {ShortTimeOnlyFormat(appointment.start?.value)}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    End
    \r\n
    \r\n
    \r\n {ShortDateOnlyFormat(appointment.end?.value)}\r\n
    \r\n
    \r\n {ShortTimeOnlyFormat(appointment.end?.value)}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {appointment.status?.value}\r\n
    \r\n {appointment.extension?.map((e, i) => (\r\n e.url?.value === \"https://fhir.yhcr.nhs.uk/StructureDefinition/Extension-Interweave-R4AppointmentCancellationReason\" &&\r\n {(e as IFhirExtension_v4).valueCodeableConcept.coding[0].display?.value}\r\n ))} \r\n
    \r\n \r\n
    \r\n )\r\n\r\n}\r\nexport default observer(YhcrAppointments)","import React, { Fragment } from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { Col, Row } from \"reactstrap\";\r\nimport { ShortDateOnlyFormat } from \"../common/DateTimeFunctions\";\r\nimport { IFhirCondition } from \"app/models/fhir\";\r\n\r\ninterface IFhirConditionProps {\r\n condition: IFhirCondition\r\n}\r\n\r\nconst YhcrConditions: React.FC = ({ condition }) => {\r\n \r\n return (\r\n \r\n \r\n {condition.code.coding ? condition.code.coding?.map((t, i) => (\r\n
    {t.display?.value}
    \r\n )) :
    {condition.code?.text?.value}
    } \r\n {condition.category && condition.category.map((s, i) => (\r\n
    {s.coding[0].display?.value}
    \r\n ))} \r\n \r\n \r\n \r\n
    Asserted
    {condition.assertedDate ? ShortDateOnlyFormat(condition.assertedDate?.value) : \"-\"}
    \r\n
    Asserter
    {condition.asserter?.display?.value || \"-\"}
    \r\n
    \r\n \r\n \r\n {condition.clinicalStatus?.value}\r\n \r\n
    \r\n )\r\n\r\n}\r\nexport default observer(YhcrConditions)","import React, { Fragment, useContext } from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { Col } from \"reactstrap\";\r\nimport { IFhirDocument } from \"app/models/fhir\";\r\nimport yhcragent from \"app/api/yhcragent\";\r\nimport { RootStoreContext } from \"app/stores/rootStore\";\r\nimport PatientRecordStore from \"app/stores/patientRecordStore\";\r\n\r\ninterface IFhirDocumentProps {\r\n document: IFhirDocument\r\n}\r\n\r\nconst YhcrDocuments: React.FC = ({ document }) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const patientRecordStore = useContext(PatientRecordStore);\r\n\r\n const onDocumentClick = (document: IFhirDocument) => {\r\n if (document.content && document.content.length > 0) {\r\n let id: string[] = document.content[0].attachment.url?.value.split('/');\r\n let docRequest = { \r\n documentId: id.pop(), \r\n user: rootStore.userStore.user, \r\n isAnonymous: process.env.REACT_APP_IS_ANONYMOUS === \"true\", \r\n yhcrJwt: window.localStorage.getItem(\"yhcrJwt\"), \r\n nhsNumber: process.env.REACT_APP_IS_ANONYMOUS === \"true\" ? \r\n window.localStorage.getItem(\"yhcrSandpitPatient\") : \r\n patientRecordStore.patient?.nhsNumber?.value \r\n };\r\n console.log(docRequest);\r\n yhcragent.Fhir.document(docRequest) \r\n .then((r: Response) => { \r\n console.log(r);\r\n return r.blob()\r\n })\r\n .then((b: Blob) => { \r\n console.log(b); \r\n const fileURL = URL.createObjectURL(b);\r\n window.open(fileURL);\r\n })\r\n }\r\n }\r\n\r\n return (\r\n \r\n onDocumentClick(document)}> \r\n {document.type.coding ? document.type.coding?.map((t, i) => (\r\n
    {t.display?.value}
    \r\n )) :
    {document.type?.text?.value}
    } \r\n
    {document.description?.value}
    \r\n \r\n \r\n {document.author && document.author.length > 0 ? (\r\n <>Author(s) \r\n {document.author.map((a, i) => (\r\n
    • {a.display?.value}
    \r\n ))} \r\n ) : <>} \r\n \r\n \r\n {document.docStatus?.value}\r\n \r\n
    \r\n )\r\n\r\n}\r\nexport default observer(YhcrDocuments)","import React, { Fragment } from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { Col, Row } from \"reactstrap\";\r\nimport { ShortDateOnlyFormat, ShortTimeOnlyFormat } from \"../common/DateTimeFunctions\";\r\nimport { IFhirEncounter, IFhirExtension_v4 } from \"app/models/fhir\";\r\n\r\ninterface IFhirEncounterProps {\r\n encounter: IFhirEncounter\r\n}\r\n\r\nconst YhcrEncounters: React.FC = ({ encounter }) => {\r\n\r\n const getIndividualType = (participant, index) => {\r\n return (
    \r\n • {participant.individual.display?.value} : \r\n {participant.type?.length > 0 ? participant.type[0]?.coding?.map((tc, ci) => (\r\n {tc.display?.value}\r\n )) : <>} \r\n
    )\r\n }\r\n const getLocation = (location, index) => {\r\n return (
    \r\n • {location.location.display?.value} : {location.status?.value} \r\n
    )\r\n }\r\n\r\n return (\r\n \r\n \r\n
    \r\n \r\n {encounter.extension?.map((e: IFhirExtension_v4,i) => \r\n e.url?.value === \"https://fhir.yhcr.nhs.uk/StructureDefinition/Extension-Interweave-R4EncounterServiceType\" &&\r\n e.valueCodeableConcept.coding.map((c, ci) =>\r\n
    \r\n {c.display?.value}\r\n
    \r\n ))}\r\n {encounter.class?.display?.value} \r\n
    \r\n\r\n {encounter.hospitalization?.admitSource?.coding?.map((c,i) => (\r\n
    \r\n
    Admit Source
    \r\n {c.display?.value}\r\n
    \r\n ))}\r\n {encounter.hospitalization?.extension?.map((e: IFhirExtension_v4,i) => \r\n e.url?.value === \"https://fhir.hl7.org.uk/STU3/StructureDefinition/Extension-CareConnect-AdmissionMethod-1\" &&\r\n e.valueCodeableConcept.coding.map((c, ci) =>\r\n
    \r\n
    Admission Method
    \r\n {c.display?.value}\r\n
    \r\n ))}\r\n {encounter.hospitalization?.extension?.map((e: IFhirExtension_v4,i) => \r\n e.url?.value === \"https://fhir.hl7.org.uk/STU3/StructureDefinition/Extension-CareConnect-DischargeMethod-1\" &&\r\n e.valueCodeableConcept.coding.map((c, ci) =>\r\n
    \r\n
    Discharge Method
    \r\n {c.display?.value}\r\n
    \r\n ))}\r\n {encounter.hospitalization?.dischargeDisposition?.coding?.map((c,i) => (\r\n
    \r\n
    Discharge Disposition
    \r\n {c.display?.value}\r\n
    \r\n ))}\r\n\r\n
    \r\n Location(s)\r\n {encounter.location?.map((l,i) => (\r\n {getLocation(l, i)} \r\n )) || None}\r\n
    \r\n
    \r\n Participants(s)\r\n {encounter.participant?.map((p,i) => (\r\n {getIndividualType(p, i)}\r\n )) || None}\r\n
    \r\n \r\n \r\n \r\n \r\n
    Start
    \r\n
    \r\n
    \r\n {ShortDateOnlyFormat(encounter.period.start?.value)}\r\n
    \r\n
    \r\n {ShortTimeOnlyFormat(encounter.period.start?.value)}\r\n
    \r\n
    \r\n \r\n \r\n
    End
    \r\n
    \r\n
    \r\n {encounter.period.end && ShortDateOnlyFormat(encounter.period.end?.value) || \"-\"}\r\n
    \r\n
    \r\n {encounter.period.end && ShortTimeOnlyFormat(encounter.period.end?.value) || \"-\"}\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n {encounter.status?.value}
    \r\n
    \r\n {encounter.priority?.coding.map((p,i) => (\r\n {p.display?.value}\r\n ))}\r\n
    \r\n \r\n
    \r\n )\r\n\r\n}\r\nexport default observer(YhcrEncounters)","import React, { Fragment } from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { Col, Badge, Table, Row } from \"reactstrap\";\r\nimport { ShortDateOnlyFormat, ShortTimeOnlyFormat } from \"../common/DateTimeFunctions\";\r\nimport { IFhirMedication } from \"app/models/fhir\";\r\n\r\ninterface IFhirMedicationProps {\r\n medication: IFhirMedication\r\n}\r\n\r\nconst YhcrEncounters: React.FC = ({ medication }) => {\r\n\r\n return (\r\n \r\n \r\n
    \r\n {medication.medicationReference?.display?.value || !! Error: Medication name not supplied !!} \r\n {medication.dosage?.map((dosage, dIndex) => (\r\n
    \r\n
    Direction: {dosage.text?.value}
    \r\n {dosage.route?.coding.map((adminRoute, aIndex) => (\r\n
    Route: {adminRoute.display?.value}
    \r\n ))} \r\n {dosage.patientInstruction?.value ?
    Instruction: {dosage.patientInstruction?.value}
    : <>}\r\n
    \r\n ))} \r\n
    \r\n \r\n \r\n \r\n \r\n
    Asserted
    {medication.dateAsserted ? ShortDateOnlyFormat(medication.dateAsserted?.value as Date) : \"-\"}
    \r\n
    Taken
    {medication.taken?.value || \"-\"}
    \r\n
    \r\n \r\n \r\n {medication.status?.value}
    \r\n \r\n
    \r\n )\r\n\r\n}\r\nexport default observer(YhcrEncounters)","import React, { Fragment } from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { Col, Row } from \"reactstrap\";\r\nimport { ShortDateOnlyFormat } from \"../common/DateTimeFunctions\";\r\nimport { IFhirProcedure } from \"app/models/fhir\";\r\n\r\ninterface IFhirProcedureProps {\r\n procedure: IFhirProcedure\r\n}\r\n\r\nconst YhcrProcedures: React.FC = ({ procedure }) => {\r\n\r\n return (\r\n \r\n \r\n
    \r\n {procedure.code.coding.map((c, i) => {c.display?.value} || !! Error: Procedure details not supplied !!)} \r\n {procedure.category?.coding?.map((cat,cati) => (\r\n
    \r\n {cat.display?.value}\r\n
    \r\n ))}\r\n
    \r\n {procedure.bodySite && \r\n
    Body site(s): \r\n {procedure.bodySite?.map((bs, bsi) => (\r\n • {bs.coding.map((bsc, bsci) => {bsc.display?.value})} \r\n ))} \r\n
    }\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    Performed
    \r\n {procedure.performedDateTime ? ShortDateOnlyFormat(procedure.performedDateTime?.value) : \"-\"}\r\n
    \r\n
    \r\n
    Performer
    \r\n {procedure.performer && procedure.performer.length > 0 &&\r\n procedure.performer.map((a, ai) => (
    {a.actor.display?.value}
    )) }\r\n
    \r\n
    \r\n \r\n \r\n {procedure.status?.value}
    \r\n \r\n
    \r\n )\r\n\r\n}\r\nexport default observer(YhcrProcedures)","import React, { Fragment } from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { Col, Badge } from \"reactstrap\";\r\nimport { ShortDateOnlyFormat } from \"../common/DateTimeFunctions\";\r\nimport { IFhirAllergy } from \"app/models/fhir\";\r\n\r\ninterface IFhirPatientProps {\r\n patient: IFhirAllergy\r\n}\r\n\r\nconst YhcrPatient: React.FC = ({ patient }) => {\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n\r\n}\r\nexport default observer(YhcrPatient)","import React, { useContext } from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport yhcragent from \"app/api/yhcragent\";\r\nimport PatientRecordStore from \"app/stores/patientRecordStore\";\r\nimport PatientRecordYhcrListDisplay from \"./common/PatientRecordYhcrListDisplay\";\r\nimport { ListGroupItem, Row, Col } from \"reactstrap\";\r\nimport { ShortDateTimeFormat } from \"./common/DateTimeFunctions\";\r\nimport YhcrAllergies from \"./yhcr/YhcrAllergies\";\r\nimport YhcrAppointments from \"./yhcr/YhcrAppointments\";\r\nimport YhcrConditions from \"./yhcr/YhcrConditions\";\r\nimport YhcrDocuments from \"./yhcr/YhcrDocuments\";\r\nimport YhcrEncounters from \"./yhcr/YhcrEncounters\";\r\nimport YhcrMedications from \"./yhcr/YhcrMedications\";\r\nimport YhcrProcedures from \"./yhcr/YhcrProcedures\";\r\nimport { RootStoreContext } from \"app/stores/rootStore\";\r\nimport YhcrPatient from \"./yhcr/YhcrPatient\";\r\n\r\ninterface IYhcrFhirProps {\r\n resource: string;\r\n}\r\n\r\nconst PatientRecordYhcrFhir: React.FC = ({resource}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const patientRecordStore = useContext(PatientRecordStore);\r\n\r\n const loadData = (id: string, pageNumber: number, countPerPage: number) => { \r\n if (id) {\r\n let paging = { searchGuid: id, pageOffset: pageNumber, countPerPage: countPerPage, yhcrJwt: window.localStorage.getItem(\"yhcrJwt\"), isAnonymous: process.env.REACT_APP_IS_ANONYMOUS === \"true\" };\r\n return yhcragent.Fhir.paging(paging);\r\n } else {\r\n return yhcragent.Fhir.get({ \r\n resource: resource, \r\n nhsNumber: process.env.REACT_APP_IS_ANONYMOUS === \"true\" ? window.localStorage.getItem(\"yhcrSandpitPatient\") : patientRecordStore.patient?.nhsNumber?.value, \r\n countPerPage: countPerPage, \r\n isAnonymous: process.env.REACT_APP_IS_ANONYMOUS === \"true\",\r\n user: rootStore.userStore.user ,\r\n yhcrJwt: window.localStorage.getItem(\"yhcrJwt\")\r\n })\r\n }\r\n } \r\n \r\n const displayTemplate = (data, index) => {\r\n return (\r\n data.search.mode.value === \"match\" && \r\n \r\n \r\n {window.location.pathname.split('/').pop() === \"AllergyIntolerance\" && }\r\n {window.location.pathname.split('/').pop() === \"Appointment\" && }\r\n {window.location.pathname.split('/').pop() === \"Condition\" && }\r\n {window.location.pathname.split('/').pop() === \"DocumentReference\" && }\r\n {window.location.pathname.split('/').pop() === \"Encounter\" && }\r\n {window.location.pathname.split('/').pop() === \"MedicationStatement\" && }\r\n {window.location.pathname.split('/').pop() === \"Procedure\" && }\r\n {window.location.pathname.split('/').pop() === \"Patient\" && }\r\n\r\n \r\n {data.resource?.meta?.tag.filter(t => t.system?.value === \"https://yhcr.nhs.uk/Source\").map((tag, tIndex) => (\r\n
    {tag.display?.value}
    \r\n ))}\r\n
    \r\n Updated: {data.resource?.meta?.lastUpdated?.value && ShortDateTimeFormat(data.resource.meta?.lastUpdated?.value)}\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n );\r\n};\r\nexport default observer(PatientRecordYhcrFhir);\r\n","import React, { useEffect, useContext } from \"react\";\r\nimport { Switch, Route, useParams } from 'react-router-dom';\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { Row, Col, Container, Card } from 'reactstrap'\r\nimport { RootStoreContext } from \"../../app/stores/rootStore\";\r\nimport PatientRecordHeader from \"./PatientRecordHeader\";\r\nimport PatientRecordNavBar from \"./PatientRecordNavBar\";\r\nimport summaryImg from '../../app/images/summary.png';\r\nimport problemsImg from '../../app/images/stethoscope.png';\r\nimport allergiesImg from '../../app/images/rash.png';\r\nimport appointmentsImg from '../../app/images/medical-appointment.png';\r\nimport attentanceImg from '../../app/images/ambulance.png';\r\nimport admissionImg from '../../app/images/hospital-bed.png';\r\nimport documentImg from '../../app/images/file.png';\r\nimport surgeryImg from '../../app/images/surgery.png';\r\nimport medicationImg from '../../app/images/medication.png';\r\nimport resultImg from '../../app/images/flask.png';\r\nimport yhcrImg from '../../app/images/yhcr.png';\r\nimport PatientRecordStore from \"app/stores/patientRecordStore\";\r\nimport PatientRecordSummary from \"./PatientRecordSummary\";\r\nimport PatientRecordYHCR from \"./PatientRecordYHCR\";\r\nimport PatientRecordYhcrFhir from \"./PatientRecordYhcrFhir\";\r\nexport interface IPatientNav {\r\n route: string,\r\n displayOnMenu: boolean,\r\n imageSrc: string,\r\n title: string,\r\n component: React.ReactNode\r\n}\r\n\r\nconst PatientRecordYhcrPageLayout: React.FC = () => {\r\n const rootStore = useContext(RootStoreContext);\r\n const patientRecordStore = useContext(PatientRecordStore);\r\n const urlParams = new URLSearchParams(window.location.search);\r\n const { resource } = useParams();\r\n const getPageRoute = (routePath:string) => `${process.env.REACT_APP_URL_PATIENT_RECORD}${routePath}`\r\n\r\n const menuItems: IPatientNav[] = [\r\n { route: \"/summary\", title: \"Summary\", displayOnMenu: true, imageSrc: summaryImg, component: },\r\n { route: \"/yhcr\", title: \"Home\", displayOnMenu: true, imageSrc: yhcrImg, component: },\r\n { route: \"/yhcr/AllergyIntolerance\", title: \"Allergies\", displayOnMenu: true, imageSrc: allergiesImg, component: },\r\n { route: \"/yhcr/Appointment\", title: \"Appointments\", displayOnMenu: true, imageSrc: appointmentsImg, component: },\r\n { route: \"/yhcr/Condition\", title: \"Conditions\", displayOnMenu: true, imageSrc: problemsImg, component: },\r\n { route: \"/yhcr/DocumentReference\", title: \"Documents\", displayOnMenu: true, imageSrc: documentImg, component: },\r\n { route: \"/yhcr/Encounter\", title: \"Encounters\", displayOnMenu: true, imageSrc: admissionImg, component: },\r\n { route: \"/yhcr/MedicationStatement\", title: \"Medications\", displayOnMenu: true, imageSrc: medicationImg, component: },\r\n { route: \"/yhcr/Patient\", title: \"Patient\", displayOnMenu: false, imageSrc: summaryImg, component: },\r\n // { route: \"/yhcr/Observation\", title: \"Observations\", displayOnMenu: true, imageSrc: resultImg, component: },\r\n { route: \"/yhcr/Procedure\", title: \"Procedures\", displayOnMenu: true, imageSrc: surgeryImg, component: }\r\n ];\r\n\r\n useEffect(() => { \r\n let mis = menuItems.filter(mi => getPageRoute(mi.route) === window.location.pathname);\r\n if (mis.length) {\r\n let audit = {\r\n module: \"YHCR\",\r\n page: window.location.pathname,\r\n description: `${rootStore.userStore.user.username} has accessed YHCR ${mis[0].title} (${resource})`,\r\n username: rootStore.userStore.user.username,\r\n action: `${mis[0].title}`,\r\n documentId: urlParams.get(\"d\"),\r\n patientId: urlParams.get(\"p\"),\r\n visitId: urlParams.get(\"v\")\r\n };\r\n rootStore.auditStore.addEntry(audit);\r\n } \r\n },[,window.location.pathname]);\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n {patientRecordStore.patient ? \r\n \r\n {menuItems.map((menuItem: IPatientNav, index: number) => \r\n <>\r\n

    {menuItem.title}

    \r\n {menuItem.component}\r\n }\r\n />\r\n )}\r\n
    \r\n : <>Loading... }\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n\r\n}\r\nexport default observer(PatientRecordYhcrPageLayout)","export default \"data:image/png;base64,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\"","import { useEffect, useState } from 'react';\r\nimport { Col, Row, ListGroup, ListGroupItem, Card, CardHeader, Container} from \"reactstrap\";\r\n\r\nconst PriorityList = () => {\r\n const [ data, setData ] = useState([]);\r\n const [ isLoading, setIsLoading ] = useState(false);\r\n const [ error, setError ] = useState();\r\n\r\n\r\n const Priorities = () => [\r\n { id: 1, label: \"1 - Immediate\", color: \"crimson\" },\r\n { id: 2, label: \"2 - Urgent\", color: \"tomato\" },\r\n { id: 3, label: \"3 - Moderate\", color: \"goldenrod\" },\r\n { id: 4, label: \"4 - None Urgent\", color: \"teal\" },\r\n { id: 5, label: \"5 - Routine\", color: \"CornflowerBlue\" },\r\n { id: 0, label: \"0 - Reset button/ Unable to go to CRU\", color: \"black\" }\r\n ];\r\n\r\n const dateTimeFormatter = (timeOnly) => {\r\n if (timeOnly) \r\n return new Intl.DateTimeFormat(\"en-GB\", {\r\n hour: 'numeric',\r\n minute: 'numeric'\r\n });\r\n return new Intl.DateTimeFormat(\"en-GB\", {\r\n year: 'numeric',\r\n month: 'numeric',\r\n day: 'numeric'\r\n });\r\n }\r\n\r\n useEffect(() => { \r\n\r\n // list out the API calls that you need to make\r\n // giving each one a tag to identify it after the data comes back\r\n let dataItems = [\r\n { tag: \"Inpatients\", url: 'http://sepia.xrothgen.nhs.uk/webservices/1.1/BulkData/Inpatients/TRNA4?includeTest=true' },\r\n { tag: \"Queries\", url: 'http://sepia.xrothgen.nhs.uk/webservices/1.1/BulkData/Queries/TRNA4?type=PrioritySubset' }\r\n ]\r\n\r\n // Indicate to the user that the page is loading; a return\r\n // method below shows a different view for a loading page\r\n\r\n setIsLoading(true);\r\n\r\n // Promise all executes all of the queries at once\r\n // - the 1st then for the Promise.all is an array of all of the fetch responses\r\n // that are merged together with a forEach loop on the inpatients array\r\n\r\n Promise.all(dataItems.map(dataItem =>\r\n\r\n // use fetch to bring back the response from the API\r\n // - the 1st then converts the response to JSON\r\n // - the 2nd then puts the json in to a custom class so that \r\n // it can be combined with the tag again\r\n\r\n fetch(dataItem.url)\r\n .then(r => r.json())\r\n .then(j => {\r\n return {\r\n tag: dataItem.tag,\r\n data: j\r\n }\r\n })\r\n .catch(e => {\r\n console.log(e);\r\n setError(e);\r\n setIsLoading(false)\r\n })\r\n )).then(r => {\r\n console.log(r);\r\n\r\n // gets the returned inpatients set, loops through it\r\n // adds the Queries for that patient to a Queries property\r\n\r\n let inpatients = r.filter(f => f.tag === \"Inpatients\")[0];\r\n inpatients.data.forEach((di) => {\r\n di.Queries = r.filter(f => f.tag === \"Queries\")[0]\r\n .data.filter(f => f.PatientLinkId === di.Patient.SystemInternalIdentifier.Value);\r\n })\r\n\r\n // set the state to the modified inpatients array\r\n // - the filter is used in this scenario to exclude empty beds\r\n // and filter to only those patients with a specific query\r\n\r\n inpatients = inpatients.data.filter(f => \r\n f.SystemPublicIdentifier.Value !== \"\" && \r\n f.Queries.filter(q => q.Query.Id === \"GEN.PMAN\").length > 0\r\n );\r\n\r\n setData(inpatients);\r\n\r\n // Tell the component the data is finished loading so \r\n // the correct view is displayed to the user\r\n setIsLoading(false);\r\n })\r\n\r\n }, [])\r\n\r\n // While the data is loading, display this:\r\n\r\n if (isLoading)\r\n return
    Loading... Please wait patiently while the dashboard data loads.
    \r\n\r\n // If the data fails to load, display this:\r\n\r\n if (error)\r\n return
    Error {error.message}
    \r\n\r\n // Otherwise, display this:\r\n\r\n return (\r\n <> \r\n \r\n

    Patient Priority Dashboard

    \r\n {Priorities().map(p => (\r\n \r\n \r\n \r\n
    {p.label}
    \r\n
    \r\n \r\n {data && data.length ? data.filter(f => f.Queries.filter(q => q.ResponseValue === p.label).length > 0).map((d, i) => (\r\n <>\r\n \r\n \r\n {d.SystemPublicIdentifier?.Value} \r\n {d.Patient?.Name?.Forename} {d.Patient?.Name?.Surname} \r\n {d.Queries.filter(query => query.Query?.Id === 'GEN.PMAN')\r\n .map(q => ( \r\n <>\r\n \r\n
    \r\n {dateTimeFormatter(false).format(new Date(q.ResponseDateTime))} \r\n {dateTimeFormatter(true).format(new Date(q.ResponseDateTime))}\r\n
    \r\n \r\n {d.CurrentLocation.Location?.Id}\r\n Notes \r\n \r\n ))} \r\n
    \r\n
    \r\n \r\n )) : <>}\r\n
    \r\n
    \r\n \r\n ))} \r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default PriorityList;","import React, { Fragment, useContext } from 'react';\r\nimport { Route, withRouter } from 'react-router-dom';\r\nimport HomePage from '../features/home/HomePage';\r\nimport { observer } from 'mobx-react-lite';\r\nimport AdminHomepage from '../features/admin/AdminHomepage';\r\nimport { IUser } from './models/user';\r\nimport NoRoles from '../features/home/NoRoles';\r\nimport CareHomeCapacityMain from '../features/carehomes/capacity/CareHomeCapacityMain';\r\nimport MainNavbar from '../features/nav/MainNavbar';\r\nimport PatientSearch from '../features/search/PatientSearch';\r\nimport CarehomesMainLayout from '../features/carehomes/dashboard/MainLayout';\r\nimport PatientRecordPageLayout from 'features/patientrecord/PatientRecordPageLayout';\r\nimport { RootStoreContext } from './stores/rootStore';\r\n// import WardLayout from 'features/ward-viewer/WardLayout';\r\nimport PatientRecordYhcrPageLayout from 'features/patientrecord/PatientRecordYhcrPageLayout';\r\n// import Dashboard from 'Dashboard';\r\nimport PatientPriority from '../features/PatientPriority/PriorityList';\r\n\r\ninterface IProps {\r\n user: IUser\r\n}\r\nconst ProtectedRoute: React.FC = ({ user }) => {\r\n const rootStore = useContext(RootStoreContext);\r\n \r\n return (\r\n \r\n \r\n {user && rootStore.userStore.isLoggedIn ? (\r\n\r\n \r\n \r\n \r\n {/* */}\r\n {user.roles.some(a => a.name === 'System Admin') && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n )}\r\n {user.roles.some(a => a.name.startsWith(\"Business Unit Admin\")) && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {user.roles.some(r => r.userAccess?.some(x => x.name === 'Carehomes')) && (\r\n \r\n )}\r\n {user.roles.some(r => r.userAccess?.some(x => x.name === 'Patient Record')) && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {user.roles.some(r => r.userAccess?.some(x => x.name === 'YHCR')) && (\r\n <>\r\n \r\n \r\n \r\n )}\r\n \r\n {user.roles.some(r => r.userAccess?.some(x => x.name === 'Patient Search')) && (\r\n \r\n )}\r\n {user.roles.some(r => r.userAccess?.some(x => x.name === 'Patient Record (Summary Only)')) && (\r\n <>\r\n \r\n \r\n )}\r\n {user.roles.some(r => r.userAccess?.some(x => x.name === 'Patient Record (MIG Only)')) && (\r\n <>\r\n \r\n \r\n )}\r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default withRouter(observer(ProtectedRoute));","import React, { useContext, useState, Fragment } from 'react';\r\nimport { Form as FinalForm, Field } from 'react-final-form'\r\nimport { Button, Form, FormGroup, Label, Card,CardBody, Container,Row,Col, CardHeader } from 'reactstrap';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { IUserFormValues } from '../../app/models/user';\r\nimport { FORM_ERROR } from 'final-form';\r\nimport AdminStore from '../../app/stores/adminStore';\r\nimport { IOrganisationValues } from '../../app/models/admin';\r\n\r\nconst required = value => (value ? undefined : 'Required')\r\nconst RegisterForm = () => {\r\n const rootStore = useContext(RootStoreContext);\r\n const { register } = rootStore.userStore;\r\n const adminStore = useContext(AdminStore)\r\n const values: IOrganisationValues = { role: '' }\r\n\r\n useState(() => {\r\n adminStore.loadOrganisations(values);\r\n })\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Rotherham Health Record Registration Form\r\n \r\n \r\n register(values).catch(\r\n error => ({\r\n [FORM_ERROR]: error\r\n\r\n })\r\n )}\r\n render={({ handleSubmit, pristine, form }) => (\r\n\r\n
    \r\n \r\n (\r\n \r\n \r\n \r\n {meta.touched && meta.error && }\r\n \r\n )}\r\n />\r\n (\r\n \r\n \r\n \r\n {meta.touched && meta.error && }\r\n \r\n )}\r\n />\r\n (\r\n \r\n \r\n \r\n {meta.touched && meta.error && }\r\n \r\n )}\r\n />\r\n (\r\n \r\n \r\n \r\n {meta.touched && meta.error && }\r\n \r\n )}\r\n /> \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n {adminStore.organisations.map((organisation, index) => {\r\n return (\r\n \r\n \r\n \r\n )\r\n })}\r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default RegisterForm;","import React, { useContext } from \"react\";\r\nimport { Form as FinalForm, Field } from \"react-final-form\";\r\nimport { Button, Form, FormGroup, Label, Card, CardBody, Container, Row, Col, CardHeader,} from \"reactstrap\";\r\nimport { ISetupPasswordForm } from \"../../app/models/user\";\r\nimport { RootStoreContext } from \"../../app/stores/rootStore\";\r\n\r\nconst SetupPassword = () => {\r\n let urlParams = new URLSearchParams(window.location.search);\r\n let rootStore = useContext(RootStoreContext);\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Rotherham Health Record Setup Password\r\n \r\n \r\n {\r\n values.email = urlParams.get(\"email\");\r\n values.token = urlParams.get(\"token\");\r\n\r\n rootStore.userStore\r\n .setuppassword(values)\r\n .then((response) => {});\r\n }}\r\n render={({ handleSubmit }) => (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n )}\r\n />\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default SetupPassword;\r\n","import React, { useContext } from 'react';\r\nimport InpatientStore from '../../app/stores/inpatientStore';\r\nimport { Row, Col, Container } from 'reactstrap';\r\nimport RHRLogo from '../../app/images/rhr-logo-sm.png';\r\n\r\nconst Footer = () => {\r\n const inpatientStore = useContext(InpatientStore);\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n \r\n \r\n
    IT Service Desk
    \r\n

    \r\n Contact the TRFT IT Service Desk if you have any issues with access or anything else on this portal by calling \r\n (01709) 427970 or by emailing trft.itsupport@nhs.net.\r\n

    \r\n Developed 2019-{new Date().getFullYear()} and maintained by IT Development Team, Health Informatics
    \r\n © The Rotherham NHS Foundation Trust \r\n \r\n \r\n {inpatientStore.IsAnonymous ? ( \r\n <>Demo\r\n ) : (\r\n <>Live\r\n )} version {process.env.REACT_APP_RHR_VERSION}-2023\r\n \r\n \r\n \"RHR\r\n
    Rotherham Health Record
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\nexport default Footer;","import { NavigationClient, NavigationOptions } from \"@azure/msal-browser\";\r\nimport { History } from \"history\";\r\n\r\n/**\r\n * This is an example for overriding the default function MSAL uses to navigate to other urls in your webpage\r\n */\r\nexport class CustomNavigationClient extends NavigationClient{\r\n private history: History;\r\n\r\n constructor(history: History) {\r\n super();\r\n this.history = history;\r\n }\r\n\r\n /**\r\n * Navigates to other pages within the same web application\r\n * You can use the useHistory hook provided by react-router-dom to take advantage of client-side routing\r\n * @param url \r\n * @param options \r\n */\r\n async navigateInternal(url: string, options: NavigationOptions) {\r\n const relativePath = url.replace(window.location.origin, '');\r\n if (options.noHistory) {\r\n this.history.replace(relativePath);\r\n } else {\r\n this.history.push(relativePath);\r\n }\r\n\r\n return false;\r\n }\r\n}","import { observer } from 'mobx-react-lite';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { RootStoreContext } from 'app/stores/rootStore';\r\nimport React, { useContext, useEffect } from 'react';\r\n\r\nconst AuthChecker: React.FC = () => { \r\n const history = useHistory();\r\n const rootStore = useContext(RootStoreContext);\r\n\r\n console.log(rootStore.userStore.isLoggedIn, rootStore.commonStore.isTokenValid())\r\n if (rootStore.userStore.isLoggedIn && !rootStore.commonStore.isTokenValid().valid) {\r\n // let uri = window.location.pathname + window.location.search;\r\n // history.push(`/?login_redirect=${Buffer.from(uri).toString(\"base64\")}&err=${rootStore.commonStore.isTokenValid()?.reason}`);\r\n // rootStore.userStore.logout();\r\n // console.log(\"Auth checker logged the user out of the system.\");\r\n }\r\n\r\n return (\r\n <>\r\n )\r\n}\r\nexport default observer(AuthChecker)\r\n\r\n","import '../index.css';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport React, { useContext, useEffect } from 'react';\r\nimport { Route,Switch,withRouter, useHistory} from 'react-router-dom';\r\nimport MainNavbar from '../features/nav/MainNavbar'\r\nimport { ToastContainer } from 'react-toastify';\r\nimport ProtectedRoute from '../app/ProtectedRoute';\r\nimport { RootStoreContext } from './stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\nimport RegisterForm from '../features/user/RegisterForm';\r\nimport Loader from 'react-loader-spinner'\r\nimport HomePage from '../features/home/HomePage';\r\nimport SetupPassword from '../features/user/SetupPassword';\r\nimport PasswordReset from '../features/user/PasswordReset';\r\nimport Footer from 'features/common/Footer';\r\nimport { MsalProvider, useIsAuthenticated } from \"@azure/msal-react\";\r\nimport { IPublicClientApplication } from \"@azure/msal-browser\";\r\nimport { CustomNavigationClient } from './azureauth/NavigationClient';\r\nimport LaunchInContext from 'features/home/LaunchInContext';\r\nimport AuthChecker from './AuthChecker';\r\n\r\ninterface IAppProps {\r\n pca: IPublicClientApplication\r\n}\r\n\r\nconst App: React.FC = ({ pca }) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const isAuthenticated = useIsAuthenticated();\r\n const history = useHistory();\r\n\r\n const { setAppLoaded, appLoaded, token } = rootStore.commonStore;\r\n const { getUser, user, isLoggedIn } = rootStore.userStore; \r\n\r\n const navigationClient = new CustomNavigationClient(history);\r\n pca.setNavigationClient(navigationClient);\r\n\r\n useEffect(() => {\r\n if (token) {\r\n getUser().finally(() => setAppLoaded())\r\n } else {\r\n setAppLoaded()\r\n }\r\n }, [getUser, setAppLoaded, token]);\r\n\r\n if (appLoaded) {\r\n return (\r\n (user && isLoggedIn) || isAuthenticated ? ( \r\n \r\n \r\n \r\n \r\n \r\n