{"version":3,"sources":["assets/logo.png","authConfig.js","components/SignInButton.js","components/SignOutButton.js","components/NavMenu.js","components/Layout.js","actions/searchAction.js","actionTypes/actionTypes.js","components/StateCombobox.js","components/SearchPanel.js","components/CertTypeCombobox.js","components/RequestDataTable.js","components/InstanceCombobox.js","services/AuthService.js","services/LogService.js","pages/RequestLogs.js","components/ProfileData.js","graph.js","pages/Home.js","components/PatientDetails.js","components/VaccinationTable.js","components/ForecasterTable.js","components/ImmunityTable.js","components/DetailHistoryCombobox.js","pages/Details.js","components/TestFieldItem.js","components/ErrorItemTable.js","pages/TestResult.js","pages/Sender.js","reducers/logReducer.js","store.js","App.js","index.js"],"names":["module","exports","configuration","msalConfig","auth","clientId","authority","redirectUri","cache","cacheLocation","storeAuthStateInCookie","loginRequest","scopes","tokenRequest","graphConfig","SignInButton","instance","useMsal","Button","variant","className","onClick","loginRedirect","catch","e","console","error","handleLogin","SignOutButton","logoutRedirect","handleLogout","NavMenu","props","toggleNavbar","bind","state","collapsed","this","setState","Navbar","dark","Container","NavbarBrand","tag","Link","to","src","logo","alt","NavbarToggler","Collapse","isOpen","navbar","NavItem","undefined","context","accounts","length","NavLink","name","Component","displayName","contextType","MsalContext","Layout","document","title","children","setServerInstance","type","payload","setCertificateLabel","certType","setProcessingState","processing","options","value","label","StateCombobox","useSelector","dispatch","useDispatch","styles","menu","provided","zIndex","defaultValue","searchModel","authorityName","onChange","newValue","actionMeta","SearchPanel","searchParams","selectedState","onChangeState","handleChangeProps","placeholder","requestDate","target","requestId","patientDob","patientLastName","patientFirstName","control","css","width","CertTypeCombobox","selectedCertLabel","columns","selector","row","pathname","query","authorityId","id","lastName","firstName","dob","vaccinationCount","certificateType","ignoreRowClick","cell","certificateTypeValue","meetsRequirements","button","compact","requestDetails","serverInstance","requestCertificate","log","table","handleDownloadCertificate","handleShowRequestDetails","RequestDataTable","data","fixedHeader","paginationDefaultPage","currentPage","pagination","selectableRows","onChangePage","InstanceCombobox","msalInstance","PublicClientApplication","authService","account","getAllAccounts","accessTokenRequest","acquireTokenSilent","accessTokenResponse","accessToken","headers","logService","action","controller","instanceId","getAccessToken","token","url","getUrl","fetch","method","then","response","blob","filename","window","URL","createObjectURL","a","createElement","style","display","href","download","body","appendChild","click","revokeObjectURL","json","search","JSON","stringify","topcount","logController","request","content","parse","RequestLogs","history","useHistory","searchLogEntries","getList","getRequestDetails","getDetails","searchButtonClass","searchButtonEnabled","selectedInstance","disabled","updateEntries","currentSearchMode","Object","getOwnPropertyNames","newSearchModel","assign","topCount","desc","updateSearchModel","currentLogPage","page","updateLogPageNum","push","getCertificate","ProfileData","graphData","givenName","surname","userPrincipalName","callMsGraph","Headers","bearer","append","Home","ProfileContent","useState","setGraphData","acquireTokenPopup","PatientDetails","patient","readOnly","mrn","address1","address2","city","zip","schoolName","schoolGradeLevel","guardianFirstName","guardianLastName","VaccinationTable","rowEntries","vaccinationList","aria-labelledby","map","index","antigenList","reduce","previousValue","currentValue","evaluationStatus","key","vaccineName","vaccinationDate","toString","cvxCode","lotNumber","manufacturerCode","provider","ForecasterTable","forecastEvaluationList","contents","seriesStatus","targetDoseNumber","totalDosesInSeries","earliestDate","recommendedDate","pastDueDate","vaccineGroup","ImmunityTable","immunityEventList","eventType","antigenName","antigenCode","eventDate","renderImmunityTable","DetailHistoryCombobox","detailsHistory","forEach","d","selectedDetails","Details","idcontent","immslinkMessageKey","getRequestFile","certificateLabel","certTypeValue","TestFieldItem","role","aria-label","margin","fieldKey","fieldValue","ErrorItemTable","errorItems","loading","renderTable","severity","code","details","TestResult","immucertTestResult","location","handleShowTestResult","renderTestResult","renderFaultResult","idTestId","renderTestId","getTestResult","testResult","keys","errors","item","conditionalVaccineGroups","faultResult","issue","Sender","handleSendRequest","postRequest","requestMessage","rows","setRequestMessage","validateMessage","processingState","initialSearchState","initialStoreState","modalShow","store","createStore","foundIndex","findIndex","slice","entry","find","App","NavigationContainer","exact","path","component","baseUrl","getElementsByTagName","getAttribute","rootElement","getElementById","ReactDOM","render","StrictMode","basename"],"mappings":"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","file":"static/js/main.0be5b317.chunk.js","sourcesContent":["module.exports = \"data:image/png;base64,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\"","export const configuration = {\r\n //environment: \"Development\",\r\n environment: \"Production\",\r\n version: \"2.4.0\",\r\n //baseUri: \"https://immucertadmin-usw2-prod-app01-staging.azurewebsites.net\"\r\n baseUri: \"https://immucertadmin-usw2-prod-app01.azurewebsites.net\"\r\n //baseUri: \"https://localhost:44345\"\r\n}\r\n\r\nexport const msalConfig = {\r\n auth: {\r\n clientId: \"35495585-f3cd-411e-b25b-80ba29559340\",\r\n authority: \"https://login.microsoftonline.com/9e80545a-f316-46ac-ae1f-82633bcf111e\", // This is a URL (e.g. https://login.microsoftonline.com/{your tenant ID})\r\n redirectUri: configuration.baseUri + \"/home\",\r\n },\r\n cache: {\r\n cacheLocation: \"sessionStorage\", // This configures where your cache will be stored\r\n storeAuthStateInCookie: false, // Set this to \"true\" if you are having issues on IE11 or Edge\r\n }\r\n};\r\n\r\n// Add scopes here for ID token to be used at Microsoft identity platform endpoints.\r\nexport const loginRequest = {\r\n scopes: [\"User.Read\"]\r\n};\r\n\r\nexport const tokenRequest = {\r\n scopes: [\"api://bbed8153-f2e5-4593-b9d4-09e8cc52031f/access_as_user\"]\r\n};\r\n\r\n\r\n// Add the endpoints here for Microsoft Graph API services you'd like to use.\r\nexport const graphConfig = {\r\n graphMeEndpoint: \"https://graph.microsoft.com/v1.0/me\"\r\n};\r\n","import React from \"react\";\r\nimport { useMsal } from \"@azure/msal-react\";\r\nimport { loginRequest } from \"../authConfig\";\r\nimport Button from \"react-bootstrap/Button\";\r\n\r\nfunction handleLogin(instance) {\r\n instance.loginRedirect(loginRequest).catch(e => {\r\n console.error(e);\r\n });\r\n}\r\n\r\n/**\r\n * Renders a button which, when selected, will redirect the page to the login prompt\r\n */\r\nexport const SignInButton = () => {\r\n const { instance } = useMsal();\r\n return (\r\n \r\n );\r\n}","import React from \"react\";\r\nimport { useMsal } from \"@azure/msal-react\";\r\nimport Button from \"react-bootstrap/Button\";\r\n\r\nfunction handleLogout(instance) {\r\n instance.logoutRedirect().catch(e => {\r\n console.error(e);\r\n });\r\n}\r\n\r\n/**\r\n * Renders a button which, when selected, will redirect the page to the logout prompt\r\n */\r\nexport const SignOutButton = () => {\r\n const { instance } = useMsal();\r\n\r\n return (\r\n \r\n );\r\n}","import React, { Component } from 'react';\r\nimport { Collapse, Container, Navbar, NavbarBrand, NavbarToggler, NavItem, NavLink } from 'reactstrap';\r\nimport { Link } from 'react-router-dom';\r\nimport { MsalContext, AuthenticatedTemplate, UnauthenticatedTemplate } from \"@azure/msal-react\";\r\nimport { SignInButton } from \"./SignInButton\";\r\nimport { SignOutButton } from \"./SignOutButton\";\r\nimport { configuration } from \"../authConfig\";\r\n\r\nimport './NavMenu.css';\r\nimport logo from '../assets/logo.png';\r\n\r\nexport class NavMenu extends Component {\r\n static displayName = NavMenu.name;\r\n static contextType = MsalContext;\r\n\r\n constructor (props) {\r\n super(props);\r\n\r\n this.toggleNavbar = this.toggleNavbar.bind(this);\r\n this.state = {\r\n collapsed: true\r\n };\r\n }\r\n\r\n toggleNavbar () {\r\n this.setState({\r\n collapsed: !this.state.collapsed\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n
STC | Immucert Admin {configuration.version}
\r\n
\r\n
\r\n
\r\n {/*Immucert Admin*/}\r\n \r\n \r\n
    \r\n \r\n \r\n {this.context !== undefined && this.context.accounts !== undefined && this.context.accounts.length > 0 && Hello: {this.context.accounts[0].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 Home\r\n \r\n \r\n \r\n Logs\r\n \r\n \r\n Send Request\r\n \r\n \r\n Recent\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { Container } from 'reactstrap';\r\nimport { NavMenu } from './NavMenu';\r\n\r\nexport class Layout extends Component {\r\n static displayName = Layout.name;\r\n\r\n componentDidMount() {\r\n document.title = \"ImmucertUI\";\r\n }\r\n\r\n render () {\r\n return (\r\n
\r\n \r\n \r\n {this.props.children}\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import {\r\n UPDATE_SEARCH,\r\n UPDATE_ENTRIES,\r\n PUSH_DETAILS,\r\n POP_DETAILS,\r\n CLEAR_DETAILS,\r\n CLEAR_ENTRIES,\r\n CLEAR_SEARCH,\r\n SET_SERVER_INSTANCE,\r\n SET_CERTIFICATE_TYPE,\r\n SET_CERTIFICATE_LABEL,\r\n SET_LOGPAGE_NUM,\r\n SET_RECENT_ENTRY,\r\n SET_SELECTED_AUTHORITY,\r\n SET_REQUEST_MESSAGE,\r\n SET_PROCESSING_STATE\r\n} from \"../actionTypes/actionTypes\";\r\n\r\n\r\nconst updateSearch = (model) => {\r\n return {\r\n type: UPDATE_SEARCH,\r\n payload: model\r\n };\r\n};\r\n\r\nconst updateEntries = (data) => {\r\n return {\r\n type: UPDATE_ENTRIES,\r\n payload: data\r\n };\r\n};\r\n\r\nconst pushDetails = (entry) => {\r\n return {\r\n type: PUSH_DETAILS,\r\n payload: entry\r\n };\r\n};\r\n\r\nconst popDetails = () => {\r\n return {\r\n type: POP_DETAILS,\r\n };\r\n};\r\n\r\nconst clearSearch = () => {\r\n return {\r\n type: CLEAR_SEARCH,\r\n };\r\n};\r\n\r\nconst clearDetails = () => {\r\n return {\r\n type: CLEAR_DETAILS,\r\n };\r\n};\r\n\r\nconst clearEntries = () => {\r\n return {\r\n type: CLEAR_ENTRIES,\r\n };\r\n};\r\n\r\nconst setServerInstance = (instance) => {\r\n return {\r\n type: SET_SERVER_INSTANCE,\r\n payload: instance\r\n };\r\n}\r\n\r\nconst setCertificateType = (certType) => {\r\n return {\r\n type: SET_CERTIFICATE_TYPE,\r\n payload: certType\r\n };\r\n}\r\n\r\nconst setCertificateLabel = (certType) => {\r\n return {\r\n type: SET_CERTIFICATE_LABEL,\r\n payload: certType\r\n };\r\n}\r\n\r\nconst updateLogPageNum = (page) => {\r\n return {\r\n type: SET_LOGPAGE_NUM,\r\n payload: page\r\n };\r\n}\r\n\r\nconst setRecentEntry = (id) => {\r\n return {\r\n type: SET_RECENT_ENTRY,\r\n payload: id\r\n };\r\n}\r\n\r\nconst setSelectedAuthority = (authority) => {\r\n return {\r\n type: SET_SELECTED_AUTHORITY,\r\n payload: authority\r\n };\r\n}\r\n\r\nconst setRequestMessage = (requestMessage) => {\r\n return {\r\n type: SET_REQUEST_MESSAGE,\r\n payload: requestMessage\r\n };\r\n}\r\n\r\nconst setProcessingState = (processing) => {\r\n return {\r\n type: SET_PROCESSING_STATE,\r\n payload: processing\r\n };\r\n}\r\n\r\n\r\n\r\nexport {\r\n updateSearch,\r\n updateEntries,\r\n pushDetails,\r\n popDetails,\r\n clearSearch,\r\n clearDetails,\r\n clearEntries,\r\n setServerInstance,\r\n setCertificateType,\r\n setCertificateLabel,\r\n updateLogPageNum,\r\n setRecentEntry,\r\n setSelectedAuthority,\r\n setRequestMessage,\r\n setProcessingState\r\n};","export const UPDATE_SEARCH = \"UPDATE_SEARCH\";\r\nexport const UPDATE_ENTRIES = \"UPDATE_ENTRIES\";\r\nexport const PUSH_DETAILS = \"PUSH_DETAILS\";\r\nexport const POP_DETAILS = \"POP_DETAILS\";\r\nexport const CLEAR_DETAILS = \"CLEAR_DETAILS\";\r\nexport const CLEAR_ENTRIES = \"CLEAR_ENTRIES\";\r\nexport const CLEAR_SEARCH = \"CLEAR_SEARCH\";\r\nexport const SET_SERVER_INSTANCE = \"SET_SERVER_INSTANCE\";\r\nexport const SET_CERTIFICATE_TYPE = \"SET_CERTIFICATE_TYPE\";\r\nexport const SET_CERTIFICATE_LABEL = \"SET_CERTIFICATE_LABEL\";\r\nexport const SET_LOGPAGE_NUM = \"SET_LOGPAGE_NUM\";\r\nexport const SET_RECENT_ENTRY = \"SET_RECENT_ENTRY\";\r\nexport const SET_SELECTED_AUTHORITY = \"SET_SELECTED_AUTHORITY\";\r\nexport const SET_REQUEST_MESSAGE = \"SET_REQUEST_MESSAGE\";\r\nexport const SET_PROCESSING_STATE = \"SET_PROCESSING_STATE\";\r\n","import React from 'react';\r\nimport Select from 'react-select';\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { setSelectedAuthority } from \"../actions/searchAction\";\r\n\r\n//Ref: https://react-select.com/props\r\n\r\nconst options = [\r\n { value: 'AZ', label: 'AZ' }, \r\n { value: 'DC', label: 'DC' },\r\n { value: 'LA', label: 'LA' },\r\n { value: 'MD', label: 'MD' },\r\n { value: 'MS', label: 'MS' },\r\n { value: 'ND', label: 'ND' },\r\n { value: 'WA', label: 'WA' },\r\n { value: 'WV', label: 'WV' },\r\n]\r\n\r\nexport const StateCombobox = (props) => {\r\n const state = useSelector((state) => state);\r\n const dispatch = useDispatch();\r\n \r\n return (\r\n
\r\n ({ ...provided, zIndex: 9999 })\r\n }}\r\n name=\"stateSelect\"\r\n defaultValue={{ label: state.searchModel.authorityName, value: state.searchModel.authorityName }}\r\n onChange={(newValue, actionMeta) => dispatch(setSelectedAuthority(newValue.value))} />\r\n
\r\n );\r\n}\r\n\r\n","import React, { Component } from 'react';\r\nimport { StateCombobox } from './StateCombobox';\r\n\r\nexport class SearchPanel extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.searchParams = props.searchParams;\r\n }\r\n\r\n render() {\r\n const searchParams = this.props.searchParams;\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n this.props.handleChangeProps({ authorityName: e }) } />\r\n
\r\n
\r\n this.props.handleChangeProps({ requestDate: e.target.value })} />\r\n
\r\n
\r\n this.props.handleChangeProps({ requestId: e.target.value })} />\r\n
\r\n
\r\n
\r\n
\r\n this.props.handleChangeProps({ patientDob: e.target.value })} />\r\n
\r\n
\r\n this.props.handleChangeProps({ patientLastName: e.target.value })} />\r\n
\r\n
\r\n this.props.handleChangeProps({ patientFirstName: e.target.value })} />\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}","import React from 'react';\r\nimport CreatableSelect from 'react-select/creatable';\r\nimport { useDispatch } from \"react-redux\";\r\nimport { setCertificateLabel } from \"../actions/searchAction\";\r\n\r\n//Ref: https://react-select.com/props\r\n\r\nconst options = [\r\n { value: \"0\", label: 'Automatic' }, \r\n { value: \"1\", label: 'School' },\r\n { value: \"2\", label: 'HigherEducation' },\r\n { value: \"3\", label: 'Work' },\r\n { value: \"4\", label: 'Covid' },\r\n]\r\n\r\nconst styles = {\r\n control: (css) => ({...css, width: \"150px\"})\r\n}\r\n\r\nexport const CertTypeCombobox = (props) => {\r\n const dispatch = useDispatch();\r\n\r\n return (\r\n
\r\n dispatch(setCertificateLabel(newValue.label))} />\r\n
\r\n );\r\n}\r\n\r\n","import React from 'react';\r\nimport { Link } from \"react-router-dom\";\r\nimport DataTable, { CustomLoader } from 'react-data-table-component';\r\nimport { CertTypeCombobox } from './CertTypeCombobox';\r\n//Ref:\r\n// https://codesandbox.io/s/j20zn?file=/src/Components/OrFilterPanel.js\r\n// https://react-data-table-component.netlify.app/?path=/docs/\r\nconst columns = [\r\n {\r\n name: 'Id',\r\n width: '130px',\r\n selector: row => {row.id}\r\n },\r\n {\r\n name: 'Date',\r\n width: '140px',\r\n selector: row => row.requestDate,\r\n },\r\n {\r\n name: 'LastName',\r\n width: '110px',\r\n selector: row => row.lastName\r\n },\r\n {\r\n name: 'FirstName',\r\n width: '100px',\r\n selector: row => row.firstName\r\n },\r\n {\r\n name: 'Dob',\r\n width: '100px',\r\n selector: row => row.dob\r\n },\r\n {\r\n name: 'Vax Count',\r\n width: '80px',\r\n selector: row => row.vaccinationCount\r\n },\r\n {\r\n name: 'Cert Type',\r\n width: '100px',\r\n selector: row => row.certificateType\r\n },\r\n {\r\n name: 'Render Cert Type',\r\n width: '180px',\r\n ignoreRowClick: true,\r\n cell: (row) => <> row.certificateTypeValue = e} /> \r\n },\r\n {\r\n name: 'Meets',\r\n width: '80px',\r\n selector: row => row.meetsRequirements ? \"TRUE\" : \"FALSE\"\r\n },\r\n {\r\n name: 'Details',\r\n button: true,\r\n compact: true,\r\n width: '80px',\r\n selector: row => \r\n //selector: row => Details\r\n },\r\n {\r\n name: 'Test',\r\n button: true,\r\n compact: true,\r\n width: '70px',\r\n selector: row => Test\r\n },\r\n {\r\n name: 'Certificate',\r\n button: true,\r\n compact: true,\r\n width: '80px',\r\n selector: row => \r\n }\r\n];\r\n\r\nconst requestCertificate = (authorityId, requestId, certType) => {\r\n console.log('Requesting certificate');\r\n table.props.handleDownloadCertificate(authorityId, requestId, certType, serverInstance);\r\n}\r\n\r\nconst requestDetails = (authorityId, requestId, certType) => {\r\n console.log('Requesting details');\r\n table.props.handleShowRequestDetails(authorityId, requestId, certType);\r\n}\r\n\r\n\r\nvar serverInstance = \"\";\r\n\r\nconst SearchBar = () => {\r\n return (\r\n
\r\n \r\n\r\n \r\n );\r\n}\r\n\r\nvar table = {}\r\n\r\nconst RequestDataTable = (props) => {\r\n table.props = props;\r\n serverInstance = props.serverInstance;\r\n\r\n return (\r\n
\r\n {(props.data != null && props.data.length > 0) &&\r\n
\r\n
\r\n
Log Entries
\r\n
\r\n
\r\n }\r\n\r\n
\r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\n//fixedHeaderScrollHeight=\"600px\"\r\n\r\nexport { SearchBar, RequestDataTable }","import React from 'react';\r\nimport Select from 'react-select';\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { setServerInstance } from \"../actions/searchAction\";\r\n\r\n//Ref: https://react-select.com/props\r\n\r\nconst options = [\r\n { value: 'Prod', label: 'Prod' },\r\n { value: 'Staging', label: 'Staging' },\r\n { value: 'Local', label: 'Local' },\r\n]\r\n\r\nexport const InstanceCombobox = (props) => {\r\n const state = useSelector((state) => state);\r\n const dispatch = useDispatch();\r\n\r\n return (\r\n
\r\n dispatch(setServerInstance(newValue.value))} />\r\n
\r\n );\r\n}\r\n","import { PublicClientApplication } from \"@azure/msal-browser\";\r\nimport { msalConfig } from \"../authConfig\";\r\nimport { tokenRequest } from \"../authConfig\";\r\n\r\n//REF: https://docs.microsoft.com/en-us/azure/active-directory/develop/tutorial-v2-react\r\nconst msalInstance = new PublicClientApplication(msalConfig);\r\n// Ref: https://docs.microsoft.com/en-us/azure/active-directory/develop/scenario-spa-acquire-token?tabs=javascript2\r\n\r\nexport class AuthService {\r\n async getAccessToken() {\r\n const account = msalInstance.getAllAccounts()[0];\r\n const accessTokenRequest = {\r\n ...tokenRequest,\r\n account: account\r\n }\r\n\r\n let accessTokenResponse = await msalInstance.acquireTokenSilent(accessTokenRequest)\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n\r\n if (accessTokenResponse !== undefined) {\r\n return accessTokenResponse.accessToken;\r\n }\r\n return null;\r\n //if (this.context === undefined || this.context.inProgress === \"login\") {\r\n // return null;\r\n //}\r\n\r\n //if (this.context.accounts.length == 0) {\r\n // return null;\r\n //}\r\n\r\n //const request = {\r\n // ...loginRequest,\r\n // account: this.context.accounts[0]\r\n //};\r\n\r\n //var response = await this.context.instance.acquireTokenSilent(request).catch((e) => {\r\n // console.log(`Error obtaining accessToken ${e.message}`);\r\n //});\r\n\r\n //if (response !== undefined && response !== null) {\r\n // return null;\r\n //}\r\n\r\n //return response.accessToken;\r\n }\r\n\r\n static get instance() { return authService }\r\n}\r\n\r\nconst authService = new AuthService();\r\n\r\nexport default authService;\r\n","import authService from './AuthService';\r\nimport { configuration } from \"../authConfig\";\r\n\r\nconst logController = \"log\";\r\nconst headers = {\r\n 'Content-Type': 'application/json',\r\n 'Accept': '*/*',\r\n 'Accept-Encoding': 'gzip,deflate,br',\r\n 'Accept-Charset': 'utf-8',\r\n 'Accept-Language': 'en-US'\r\n };\r\n\r\n\r\nexport class LogService {\r\n\r\n \r\n getUrl(action, controller) {\r\n var serviceurl = configuration.baseUri;\r\n return `${serviceurl}/api/${controller}/${action}`;\r\n }\r\n\r\n async getCertificate(authorityId, requestId, instanceId, certType) {\r\n const token = await authService.getAccessToken();\r\n const url = this.getUrl(`certificate/${authorityId}/${requestId}/${instanceId}/${certType}`, logController);\r\n\r\n fetch(url, {\r\n method: 'GET',\r\n headers: !token ? headers : { ...headers, 'Authorization': `Bearer ${token}` }\r\n })\r\n .then(response => response.blob())\r\n .then(blob => {\r\n let filename = `VaxCertificate-${authorityId}-${requestId}.pdf`;\r\n const url = window.URL.createObjectURL(blob);\r\n const a = document.createElement('a');\r\n a.style.display = 'none';\r\n a.href = url;\r\n\r\n // the filename you want\r\n a.download = filename;\r\n document.body.appendChild(a);\r\n a.click();\r\n window.URL.revokeObjectURL(url);\r\n })\r\n .catch(error => {\r\n if (error !== undefined)\r\n console.error(error);\r\n });\r\n }\r\n\r\n async getRequestFile(authorityId, requestId) {\r\n const token = await authService.getAccessToken();\r\n const url = this.getUrl(`requestcommand/${authorityId}/${requestId}`, logController);\r\n\r\n fetch(url, {\r\n method: 'GET',\r\n headers: !token ? headers : { ...headers, 'Authorization': `Bearer ${token}` }\r\n })\r\n .then(response => response.blob())\r\n .then(blob => {\r\n let filename = `ImmucertRequest-${authorityId}-${requestId}.json`;\r\n const url = window.URL.createObjectURL(blob);\r\n const a = document.createElement('a');\r\n a.style.display = 'none';\r\n a.href = url;\r\n\r\n // the filename you want\r\n a.download = filename;\r\n document.body.appendChild(a);\r\n a.click();\r\n window.URL.revokeObjectURL(url);\r\n })\r\n .catch(error => {\r\n if (error !== undefined)\r\n console.error(error);\r\n });\r\n }\r\n\r\n async getDetails(authorityId, requestId) {\r\n const token = await authService.getAccessToken();\r\n const url = this.getUrl(`details/${authorityId}/${requestId}`, logController);\r\n\r\n return fetch(url, {\r\n method: 'GET',\r\n headers: !token ? headers : { ...headers, 'Authorization': `Bearer ${token}` }\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n return data;\r\n })\r\n .catch(e => {\r\n console.log(`Error in fetch error ${e}`);\r\n return;\r\n });\r\n }\r\n\r\n async getTestResult(authorityId, requestId, instanceId) {\r\n const token = await authService.getAccessToken();\r\n const url = this.getUrl(`test/${authorityId}/${requestId}/${instanceId}`, logController);\r\n\r\n return fetch(url, {\r\n method: 'GET',\r\n headers: !token ? headers : { ...headers, 'Authorization': `Bearer ${token}` }\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n return data;\r\n })\r\n .catch(e => {\r\n console.log(`Error in fetch error ${e}`);\r\n return;\r\n });\r\n }\r\n\r\n async getList(search) {\r\n console.log(`Sending post data ${JSON.stringify(search)}`)\r\n console.log(`Sending post data ${JSON.stringify(search)}`)\r\n\r\n const token = await authService.getAccessToken();\r\n const url = this.getUrl('list', logController);\r\n console.log(url);\r\n\r\n const response = await fetch(url, {\r\n method: 'POST',\r\n body: JSON.stringify(search),\r\n headers: !token ? headers : { ...headers, 'Authorization': `Bearer ${token}` }\r\n })\r\n .catch(e => {\r\n console.log(`Error in fetch error ${e}`);\r\n return;\r\n });\r\n\r\n if (response !== undefined) {\r\n const data = await response.json();\r\n return data;\r\n }\r\n\r\n return [];\r\n }\r\n\r\n async getRecent(authorityId, topcount) {\r\n console.log(`Getting recent log entries for ${authorityId} ${topcount} ${this.logController}`);\r\n\r\n const token = await authService.getAccessToken();\r\n const url = this.getUrl(`recent/${authorityId}/${topcount}`, logController);\r\n console.log(url);\r\n\r\n const response = await fetch(url, {\r\n method: 'GET',\r\n headers: !token ? headers : { ...headers, 'Authorization': `Bearer ${token}` }\r\n })\r\n .catch(e => {\r\n console.log(`Error in fetch error ${e}`);\r\n return;\r\n });\r\n const data = await response.json();\r\n return data;\r\n }\r\n\r\n async getRequest(authorityId, requestId) {\r\n const token = await authService.getAccessToken();\r\n const url = this.getUrl(`requestentry/${authorityId}/${requestId}`, logController);\r\n\r\n return fetch(url, {\r\n method: 'GET',\r\n headers: !token ? headers : { ...headers, 'Authorization': `Bearer ${token}` }\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n return data;\r\n })\r\n .catch(e => {\r\n console.log(`Error in fetch error ${e}`);\r\n return;\r\n });\r\n }\r\n\r\n async postRequest(authorityId, request, instanceId) {\r\n const token = await authService.getAccessToken();\r\n const url = this.getUrl(`send/${authorityId}/${instanceId}`, logController);\r\n const content = {\r\n method: 'POST',\r\n headers: !token ? headers : { ...headers, 'Authorization': `Bearer ${token}` },\r\n body: JSON.stringify(JSON.parse(request))\r\n }\r\n\r\n fetch(url, content)\r\n .then(response => response.blob())\r\n .then(blob => {\r\n let filename = `VaxCertificate-${authorityId}.pdf`;\r\n const url = window.URL.createObjectURL(blob);\r\n const a = document.createElement('a');\r\n a.style.display = 'none';\r\n a.href = url;\r\n\r\n // the filename you want\r\n a.download = filename;\r\n document.body.appendChild(a);\r\n a.click();\r\n window.URL.revokeObjectURL(url);\r\n })\r\n .catch(error => {\r\n if (error !== undefined)\r\n console.error(error);\r\n });\r\n }\r\n\r\n static get instance() { return logService }\r\n}\r\n\r\nconst logService = new LogService();\r\n\r\nexport default logService;","import React from 'react';\r\nimport { SearchPanel } from '../components/SearchPanel';\r\nimport { RequestDataTable } from '../components/RequestDataTable';\r\nimport { InstanceCombobox } from '../components/InstanceCombobox'\r\nimport logService from '../services/LogService'\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { updateSearch, pushDetails, clearSearch, setServerInstance, updateEntries, updateLogPageNum, setCertificateLabel } from \"../actions/searchAction\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\n\r\n\r\n\r\n//TODO: move this code to the action handler\r\nconst updateSearchModel = (e, currentSearchMode) => {\r\n console.log(`Updating handleSearchParamsChange ${Object.getOwnPropertyNames(e)}`);\r\n\r\n var newSearchModel = Object.assign({}, currentSearchMode);\r\n newSearchModel.authorityName = (e.authorityName !== undefined) ? e.authorityName : newSearchModel.authorityName;\r\n newSearchModel.requestDate = (e.requestDate !== undefined) ? e.requestDate : newSearchModel.requestDate;\r\n newSearchModel.requestId = (e.requestId !== undefined) ? e.requestId : newSearchModel.requestId;\r\n newSearchModel.patientDob = (e.patientDob !== undefined) ? e.patientDob : newSearchModel.patientDob;\r\n newSearchModel.patientFirstName = (e.patientFirstName !== undefined) ? e.patientFirstName : newSearchModel.patientFirstName;\r\n newSearchModel.patientLastName = (e.patientLastName !== undefined) ? e.patientLastName : newSearchModel.patientLastName;\r\n newSearchModel.topCount = (e.topCount !== undefined) ? e.topCount : newSearchModel.topCount;\r\n newSearchModel.desc = (e.desc !== undefined) ? e.desc : newSearchModel.desc;\r\n newSearchModel.serverInstance = (e.serverInstance !== undefined) ? e.serverInstance : 'Prod'\r\n return newSearchModel;\r\n}\r\n\r\n\r\nexport const RequestLogs = () => {\r\n const state = useSelector((state) => state);\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n\r\n // Search logs for the search criteria\r\n const searchLogEntries = async (searchModel) => {\r\n console.log(\"searching for log entries\")\r\n return logService.getList(searchModel);\r\n }\r\n\r\n // Download a specific request\r\n const getRequestDetails = async (authorityId, requestId) => {\r\n console.log('Requesting details');\r\n return logService.getDetails(authorityId, requestId);\r\n }\r\n\r\n // Download certificate for selected row\r\n const downloadCertificate = (authorityId, requestId, certType, serverInstance) => {\r\n console.log('Requesting certificate');\r\n logService.getCertificate(authorityId, requestId, serverInstance, certType);\r\n }\r\n\r\n // Save the current page\r\n const handlePageChange = page => {\r\n dispatch(updateLogPageNum(page));\r\n };\r\n\r\n // Download and display a request\r\n const handleShowRequestDetails = (authorityId, requestId, certType) => {\r\n getRequestDetails(authorityId, requestId)\r\n .then((data) => {\r\n if (data !== null) {\r\n dispatch(setCertificateLabel(certType));\r\n dispatch(pushDetails(data));\r\n history.push('/details');\r\n }\r\n })\r\n .catch((error) => {\r\n console.error(`Could not get products: ${error}`);\r\n });\r\n };\r\n\r\n // Handle a search reuest\r\n const handleSearchClick = (e) => {\r\n searchLogEntries(state.searchModel)\r\n .then((data) => {\r\n dispatch(updateEntries(data))\r\n })\r\n .catch((error) => {\r\n console.error(`Could not get request entries: ${error}`);\r\n });\r\n };\r\n const handleChangeServerInstance = (e) => dispatch(setServerInstance(e));\r\n const handleSearchChanges = (e) => dispatch(updateSearch(updateSearchModel(e, state.searchModel)));\r\n const searchButtonClass = (state.searchModel.authorityName !== '') ? 'btn btn-primary' : 'btn btn-primary disabled';\r\n const searchButtonEnabled = (state.searchModel.authorityName !== '') ? '' : 'disabled';\r\n\r\n return (\r\n <>\r\n

Immucert Request Logs

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

Enter a search filter to view the logs.

\r\n
\r\n
\r\n \r\n
\r\n
\r\n Search\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n \r\n );\r\n}\r\n","import React from \"react\";\r\n\r\n/**\r\n * Renders information about the user obtained from Microsoft Graph\r\n */\r\nexport const ProfileData = (props) => {\r\n return (\r\n
\r\n

First Name: {props.graphData.givenName}

\r\n

Last Name: {props.graphData.surname}

\r\n

Email: {props.graphData.userPrincipalName}

\r\n

Id: {props.graphData.id}

\r\n
\r\n );\r\n};","import { graphConfig } from \"./authConfig\";\r\n\r\n/**\r\n * Attaches a given access token to a Microsoft Graph API call. Returns information about the user\r\n */\r\nexport async function callMsGraph(accessToken) {\r\n const headers = new Headers();\r\n const bearer = `Bearer ${accessToken}`;\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(graphConfig.graphMeEndpoint, options)\r\n .then(response => response.json())\r\n .catch(error => console.log(error));\r\n}","import React, { Component, useState } from \"react\";\r\nimport { AuthenticatedTemplate, UnauthenticatedTemplate, useMsal, MsalContext } from \"@azure/msal-react\";\r\nimport { loginRequest } from \"../authConfig\";\r\nimport Button from \"react-bootstrap/Button\";\r\nimport { ProfileData } from \"../components/ProfileData\";\r\nimport { callMsGraph } from \"../graph\";\r\n\r\nexport class Home extends Component {\r\n static displayName = Home.name;\r\n static contextType = MsalContext;\r\n\r\n\r\n render() {\r\n document.title = \"Home:ImmucertUI\";\r\n\r\n return (\r\n <>\r\n

Welcome to Immucert Admin App

\r\n \r\n

You are not signed in! Please sign in.

\r\n
\r\n

From here you can search certificate request log entries as received by immucert and view the contents of the entry as well as generate the certificate from the request. This app is subject to HIPAA restrictions.

\r\n

When searching for a patient record, you must always enter a state registry code, as searches will not span across state authorities. You can search by partial name, or full name. Name searches are case insensitive. Additionally you can search by patient dob and the certificate date. Or if you have a request id, you can search by the id.

\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nfunction ProfileContent() {\r\n const { instance, accounts } = useMsal();\r\n const [graphData, setGraphData] = useState(null);\r\n\r\n const name = accounts[0] && accounts[0].name;\r\n\r\n function RequestProfileData() {\r\n const request = {\r\n ...loginRequest,\r\n account: accounts[0]\r\n };\r\n\r\n // Silently acquires an access token which is then attached to a request for Microsoft Graph data\r\n instance.acquireTokenSilent(request).then((response) => {\r\n callMsGraph(response.accessToken).then(response => setGraphData(response));\r\n }).catch((e) => {\r\n instance.acquireTokenPopup(request).then((response) => {\r\n callMsGraph(response.accessToken).then(response => setGraphData(response));\r\n });\r\n });\r\n }\r\n\r\n return (\r\n <>\r\n
Welcome {name}
\r\n {graphData ?\r\n \r\n :\r\n \r\n }\r\n \r\n );\r\n};","import React from 'react';\r\n\r\nexport const PatientDetails = (props) => {\r\n const patient = props.patient;\r\n const content = (patient === undefined) ? (<>) :\r\n (\r\n <>\r\n

Patient Details

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n );\r\n\r\n return content;\r\n}\r\n","import React from 'react';\r\n\r\nexport const VaccinationTable = (props) => {\r\n const rowEntries = props.vaccinationList;\r\n\r\n const content = (rowEntries === [] || rowEntries === undefined) ? (<>) :\r\n (\r\n <>\r\n

Vaccination List

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {rowEntries.map((row, index) => \r\n row.antigenList.reduce(\r\n (previousValue, currentValue) => previousValue === (currentValue.evaluationStatus === 2 || currentValue.evaluationStatus === 0),\r\n true) === false\r\n ? \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n :\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
Vaccine NameDateValidCvx CodeLot NumberMfg CodeProvider
{row.vaccineName}{row.vaccinationDate}{row.antigenList.reduce(\r\n (previousValue, currentValue) => previousValue === (currentValue.evaluationStatus === 2 || currentValue.evaluationStatus === 0),\r\n true).toString()}\r\n {row.cvxCode}{row.lotNumber}{row.manufacturerCode}
{row.vaccineName}{row.vaccinationDate}{row.antigenList.reduce(\r\n (previousValue, currentValue) => previousValue === (currentValue.evaluationStatus === 2 || currentValue.evaluationStatus === 0),\r\n true).toString()}\r\n {row.cvxCode}{row.lotNumber}{row.manufacturerCode}{(row.provider !== null) ? row.provider.name : \"not available\"}
\r\n \r\n )\r\n\r\n return content;\r\n}\r\n","import React from 'react';\r\n\r\nexport const ForecasterTable = (props) => {\r\n const rowEntries = props.forecastEvaluationList;\r\n\r\n const contents = (rowEntries === undefined) ? (<>) :\r\n (\r\n <>\r\n

Forecast Evaluation

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {rowEntries.map((row, index) => row.seriesStatus === \"Past Due\" ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n :\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
DoseNumberTotal In SeriesEarliest DateRecommended DatePastDue DateVaccine GroupSeries Status
{row.targetDoseNumber}{row.totalDosesInSeries}{row.earliestDate}{row.recommendedDate}{row.pastDueDate}{row.vaccineGroup}{row.seriesStatus}
{row.targetDoseNumber}{row.totalDosesInSeries}{row.earliestDate}{row.recommendedDate}{row.pastDueDate}{row.vaccineGroup}{row.seriesStatus}
\r\n \r\n );\r\n\r\n return (\r\n
\r\n {contents}\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\n\r\nexport const ImmunityTable = (props) => {\r\n const rowEntries = props.immunityEventList;\r\n\r\n const renderImmunityTable = (rowEntries) => {\r\n return (\r\n <>\r\n

Immunity Observation List

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {rowEntries.map((row, index) => \r\n (row.eventType === 3)\r\n ? \r\n \r\n \r\n \r\n \r\n \r\n :\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
Vaccine NameObs CodeDate
{row.antigenName}{row.antigenCode}{row.eventDate}
{row.antigenName}{row.antigenCode}{row.eventDate}
\r\n \r\n );\r\n }\r\n\r\n let contents = (rowEntries === undefined) \r\n ? (

Loading...

)\r\n : renderImmunityTable(rowEntries);\r\n\r\n return (\r\n
\r\n {contents}\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport CreatableSelect from 'react-select/creatable';\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { setRecentEntry} from \"../actions/searchAction\";\r\n\r\n\r\n//Ref: https://react-select.com/props\r\n\r\nexport const DetailHistoryCombobox = () => {\r\n const state = useSelector((state) => state);\r\n const dispatch = useDispatch();\r\n const styles = {\r\n control: (css) => ({ ...css, width: \"350px\" })\r\n }\r\n\r\n\r\n let options = [];\r\n state.detailsHistory.forEach(d => {\r\n options.push({ value: d.id, label: d.id });\r\n });\r\n \r\n\r\n return (\r\n
\r\n dispatch(setRecentEntry(newValue.value))} />\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport logService from '../services/LogService'\r\nimport { PatientDetails } from '../components/PatientDetails'\r\nimport { VaccinationTable } from '../components/VaccinationTable'\r\nimport { ForecasterTable } from '../components/ForecasterTable'\r\nimport { ImmunityTable } from '../components/ImmunityTable'\r\nimport { InstanceCombobox } from '../components/InstanceCombobox'\r\nimport { CertTypeCombobox } from '../components/CertTypeCombobox';\r\nimport { DetailHistoryCombobox } from '../components/DetailHistoryCombobox';\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { setCertificateType, setServerInstance, clearDetails } from \"../actions/searchAction\";\r\n\r\nexport const Details = (props) => {\r\n const state = useSelector((state) => state);\r\n const dispatch = useDispatch();\r\n\r\n const handleDownloadCertificate = (authorityId, requestId, serverInstance, certTypeValue) => {\r\n console.log('Requesting certificate');\r\n logService.getCertificate(authorityId, requestId, serverInstance, certTypeValue);\r\n }\r\n\r\n const handleDownloadRequest = (authorityId, requestId) => {\r\n console.log('Requesting raw request');\r\n logService.getRequestFile(authorityId, requestId);\r\n }\r\n\r\n let contents = (state.selectedDetails === undefined)\r\n ?

Loading...

\r\n : (\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n\r\n let idcontent = (state.selectedDetails === undefined) ?

: (\r\n <>\r\n
\r\n
\r\n Tracking ID: {state.selectedDetails.id}\r\n
\r\n
\r\n ImmsLink ID: {state.selectedDetails.request.immslinkMessageKey}\r\n
\r\n
\r\n dispatch(setServerInstance(e))} />\r\n
\r\n
\r\n
\r\n
\r\n \r\n dispatch(clearDetails())} >Clear List\r\n
\r\n
\r\n {\r\n handleDownloadRequest(\r\n state.searchModel.authorityName,\r\n state.selectedDetails.id);\r\n }} \r\n >Download Raw Request\r\n dispatch(setCertificateType(e)) } />\r\n {\r\n handleDownloadCertificate(\r\n state.searchModel.authorityName,\r\n state.selectedDetails.id,\r\n state.serverInstance,\r\n state.certificateLabel);\r\n }}\r\n >View Certificate\r\n
\r\n
\r\n \r\n );\r\n\r\n return (
\r\n

Immucert Request

\r\n {idcontent}\r\n {contents}\r\n
);\r\n}\r\n","import React, { Component } from 'react';\r\nimport Button from 'react-bootstrap/Button';\r\n\r\n\r\nexport class TestFieldItem extends Component {\r\n static displayName = TestFieldItem.name;\r\n\r\n //constructor(props) {\r\n // super(props);\r\n //}\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\n\r\nexport class ErrorItemTable extends Component {\r\n static displayName = ErrorItemTable.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = { rowEntries: props.errorItems, loading: false };\r\n }\r\n\r\n componentDidMount() {\r\n }\r\n\r\n static renderTable(rowEntries) {\r\n return (\r\n <>\r\n

Error Item List

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {rowEntries.map((row, index) =>\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
SeverityCodeDetails
{row.severity}{row.code}{row.details}
\r\n \r\n );\r\n }\r\n\r\n render() {\r\n let contents = this.state.loading || this.state.rowEntries === undefined\r\n ?

Loading...

\r\n : ErrorItemTable.renderTable(this.state.rowEntries);\r\n\r\n return (\r\n
\r\n {contents}\r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport logService from '../services/LogService'\r\nimport { TestFieldItem } from '../components/TestFieldItem'\r\nimport { ErrorItemTable } from '../components/ErrorItemTable';\r\n\r\nexport class TestResult extends Component {\r\n static displayName = TestResult.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n immucertTestResult: null,\r\n loading: true,\r\n authorityId: props.location.query.authorityId,\r\n requestId: props.location.query.requestId,\r\n serverInstance: props.location.query.serverInstance\r\n };\r\n\r\n this.handleShowTestResult = this.handleShowTestResult.bind(this);\r\n this.handleDownloadCertificate = this.handleDownloadCertificate.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n this.setState({\r\n authorityId: this.props.location.query.authorityId,\r\n requestId: this.props.location.query.requestId,\r\n serverInstance: this.props.location.query.serverInstance\r\n });\r\n this.handleShowTestResult();\r\n }\r\n\r\n static renderTestResult(testResult) {\r\n return (\r\n
\r\n

Form Dictionary Values

\r\n
{Object.keys(testResult.content).map((key, index) => )}
\r\n {testResult.errors !== null && testResult.errors.length > 0 &&\r\n <>\r\n

Form Errors

\r\n
{testResult.errors.map((item, index) => )}
\r\n \r\n }\r\n {testResult.conditionalVaccineGroups && testResult.conditionalVaccineGroups.length > 0 && \r\n <>\r\n

Conditional Vaccine Groups

\r\n
{Object.keys(testResult.conditionalVaccineGroups).map((key, index) => )}
\r\n \r\n }\r\n
\r\n );\r\n }\r\n\r\n static renderFaultResult(faultResult) {\r\n return (\r\n
\r\n

Fault Response

\r\n \r\n
\r\n );\r\n }\r\n\r\n static renderTestId(id) {\r\n return (\r\n
\r\n
{id}
\r\n
\r\n );\r\n }\r\n\r\n render() {\r\n document.title = \"Test:ImmucertUI\";\r\n\r\n let contents = this.state.loading\r\n ?

Loading...

\r\n : this.state.immucertTestResult.requestId ? TestResult.renderTestResult(this.state.immucertTestResult)\r\n : TestResult.renderFaultResult(this.state.immucertTestResult);\r\n let idcontent = this.state.loading ?

:
{this.state.immucertTestResult.id}
\r\n let idTestId = this.state.loading ?

: TestResult.renderTestId(this.state.immucertTestResult.id);\r\n return (\r\n
\r\n

Immucert Test Request Results

\r\n {idcontent}\r\n {idTestId}\r\n {contents}\r\n
\r\n );\r\n }\r\n\r\n handleDownloadCertificate() {\r\n console.log('Requesting certificate');\r\n logService.getCertificate(this.state.authorityId, this.state.requestId, this.state.serverInstance);\r\n }\r\n\r\n handleShowTestResult() {\r\n console.log('Requesting test result');\r\n logService.getTestResult(this.state.authorityId, this.state.requestId, this.state.serverInstance)\r\n .then(data => {\r\n if (data) {\r\n this.setState({ immucertTestResult: data, loading: false });\r\n }\r\n });\r\n }\r\n}\r\n","import React from 'react';\r\nimport { Button } from 'react-bootstrap';\r\nimport { StateCombobox } from '../components/StateCombobox';\r\nimport logService from '../services/LogService';\r\nimport { InstanceCombobox } from '../components/InstanceCombobox';\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { setRequestMessage, setProcessingState } from \"../actions/searchAction\";\r\n\r\nexport const Sender = (props) => {\r\n const state = useSelector((state) => state);\r\n const dispatch = useDispatch();\r\n\r\n const handleSendRequest = async () => {\r\n dispatch(setProcessingState(true));\r\n await logService.postRequest(state.searchModel.authorityName, state.requestMessage, state.serverInstance);\r\n dispatch(setProcessingState(false));\r\n }\r\n\r\n const validateMessage = () => {\r\n if (state.requestMessage === undefined ||\r\n state.requestMessage === null ||\r\n state.requestMessage === \"\") {\r\n return false;\r\n }\r\n\r\n try {\r\n JSON.parse(state.requestMessage);\r\n } catch (e) {\r\n return false;\r\n }\r\n\r\n if (state.searchModel.authorityName === undefined ||\r\n state.searchModel.authorityName === null ||\r\n state.searchModel.authorityName === \"\") {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n const handleRequestMessageChange = (requestMessage) => {\r\n dispatch(setRequestMessage(requestMessage));\r\n }\r\n\r\n return (\r\n <>\r\n

Message Tester

\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
Enter a request json string
\r\n
\r\n