├── .nvmrc ├── backend ├── .java-version ├── .jabbarc ├── db-setup │ ├── requirements.txt │ ├── .pgpass_ci │ ├── .pgpass │ ├── create-metabase-db.sh │ ├── reset-metabase-db.sql │ ├── migrate-devices.sh │ ├── nuke-db.sh │ ├── Dockerfile │ ├── snapshot-db.sh │ ├── create-db.sh │ └── migrate-devices.sql ├── src │ ├── test │ │ └── resources │ │ │ ├── patientBulkUpload │ │ │ ├── empty.csv │ │ │ ├── validRequiredOnly.csv │ │ │ ├── missingHeaders.csv │ │ │ ├── missingRequiredFields.csv │ │ │ ├── invalidValues.csv │ │ │ ├── validEmptyOptionalValues.csv │ │ │ ├── alternateValues.csv │ │ │ └── valid.csv │ │ │ ├── mockito-extensions │ │ │ └── org.mockito.plugins.MockMaker │ │ │ ├── templates │ │ │ └── test-template.html │ │ │ ├── graphql-test │ │ │ ├── update-org-settings.graphql │ │ │ ├── remove-from-queue.graphql │ │ │ ├── specimen-type-query.graphql │ │ │ ├── supported-disease-query.graphql │ │ │ ├── device-type-query.graphql │ │ │ ├── patient-link-current-query.graphql │ │ │ ├── users-query.graphql │ │ │ ├── update-feature-flag.graphql │ │ │ ├── deleted-person-query.graphql │ │ │ ├── update-user-role.graphql │ │ │ ├── facility-stats-query.graphql │ │ │ ├── facilities-query.graphql │ │ │ ├── patient-link-verify-query.graphql │ │ │ ├── update-user-email.graphql │ │ │ ├── org-links-query.graphql │ │ │ ├── device-type-add.graphql │ │ │ ├── get-pending-organizations.graphql │ │ │ ├── update-facility-feature-flag.graphql │ │ │ ├── device-type-update.graphql │ │ │ ├── set-organization-identity-verified.graphql │ │ │ ├── dashboard-metrics.graphql │ │ │ ├── reset-user-mfa.graphql │ │ │ ├── reset-user-password.graphql │ │ │ ├── resend-activation-email.graphql │ │ │ ├── patient-link-submit.graphql │ │ │ ├── organization-query.graphql │ │ │ ├── add-to-queue.graphql │ │ │ ├── organization-by-name-query.graphql │ │ │ ├── person-with-facility-query.graphql │ │ │ ├── set-user-is-deleted.graphql │ │ │ ├── person-query.graphql │ │ │ ├── delete-person.graphql │ │ │ ├── person-with-last-test-result-query.graphql │ │ │ ├── set-current-user-tenant-data-access.graphql │ │ │ ├── organization-level-metrics.graphql │ │ │ ├── test-result-query.graphql │ │ │ └── add-to-queue-with-symptoms.graphql │ │ │ ├── deserialization │ │ │ ├── http-request-details │ │ │ │ ├── partial.json │ │ │ │ └── full.json │ │ │ └── graphql-inputs │ │ │ │ └── full.json │ │ │ ├── requests │ │ │ └── organizationAccountRequest.json │ │ │ ├── attachments │ │ │ └── test-document.pdf │ │ │ └── fhir │ │ │ └── practitioner.json │ └── main │ │ ├── java │ │ └── gov │ │ │ └── cdc │ │ │ └── usds │ │ │ └── simplereport │ │ │ ├── api │ │ │ ├── testresult │ │ │ │ └── TestResultDataFetcher.java │ │ │ ├── devicetype │ │ │ │ └── PublicDeviceType.java │ │ │ ├── model │ │ │ │ ├── universalreporting │ │ │ │ │ └── ResultScaleType.java │ │ │ │ ├── errors │ │ │ │ │ ├── DryRunException.java │ │ │ │ │ ├── NoDataLoaderFoundException.java │ │ │ │ │ ├── ExpiredPatientLinkException.java │ │ │ │ │ ├── AimsUploadException.java │ │ │ │ │ ├── InvalidTwilioCallbackException.java │ │ │ │ │ ├── InvalidTwilioMessageIdentifierException.java │ │ │ │ │ ├── InvalidPatientLinkException.java │ │ │ │ │ ├── BulkUploadDisabledException.java │ │ │ │ │ ├── InvalidPatientSelfRegistrationLinkException.java │ │ │ │ │ └── DependencyFailureException.java │ │ │ │ ├── FacilityStats.java │ │ │ │ ├── accountrequest │ │ │ │ │ ├── AccountResponse.java │ │ │ │ │ ├── OrganizationAccountResponse.java │ │ │ │ │ └── IdentityVerificationQuestionsResponse.java │ │ │ │ ├── TopLevelDashboardMetrics.java │ │ │ │ ├── useraccountcreation │ │ │ │ │ ├── FactorAndQrCode.java │ │ │ │ │ ├── FactorAndActivation.java │ │ │ │ │ ├── RequestConstants.java │ │ │ │ │ ├── UserAccountStatus.java │ │ │ │ │ ├── EnrollMfaRequest.java │ │ │ │ │ ├── SetPasswordRequest.java │ │ │ │ │ └── ActivateAccountRequest.java │ │ │ │ ├── AddressInput.java │ │ │ │ ├── ReportStreamCallbackRequest.java │ │ │ │ ├── CreateSpecimenType.java │ │ │ │ ├── AggregateFacilityMetrics.java │ │ │ │ ├── UpdateSpecimenType.java │ │ │ │ ├── OrganizationLevelDashboardMetrics.java │ │ │ │ └── AddFacilityInput.java │ │ │ ├── InternalIdResolver.java │ │ │ ├── PersonNameResolver.java │ │ │ ├── converter │ │ │ │ ├── FhirContextProvider.java │ │ │ │ └── HapiContextProvider.java │ │ │ ├── MappingConstants.java │ │ │ └── uploads │ │ │ │ └── PatientBulkUploadResponse.java │ │ │ ├── db │ │ │ ├── model │ │ │ │ ├── auxiliary │ │ │ │ │ ├── PhoneType.java │ │ │ │ │ ├── CodingRecord.java │ │ │ │ │ ├── Pipeline.java │ │ │ │ │ ├── UploadStatus.java │ │ │ │ │ ├── ArchivedStatus.java │ │ │ │ │ ├── OrderStatus.java │ │ │ │ │ ├── TestResult.java │ │ │ │ │ ├── OptionalBoolean.java │ │ │ │ │ ├── DataHubUploadStatus.java │ │ │ │ │ ├── ResultUploadErrorSource.java │ │ │ │ │ ├── SnomedConceptRecord.java │ │ │ │ │ ├── TestCorrectionStatus.java │ │ │ │ │ ├── TestResultDeliveryPreference.java │ │ │ │ │ ├── PersonRole.java │ │ │ │ │ ├── ResultUploadErrorType.java │ │ │ │ │ ├── HL7BatchMessage.java │ │ │ │ │ ├── FHIRBundleRecord.java │ │ │ │ │ ├── MultiplexResultInput.java │ │ │ │ │ ├── TestResultWithCount.java │ │ │ │ │ ├── SupportedDiseaseTestResult.java │ │ │ │ │ ├── SubmissionSummary.java │ │ │ │ │ └── AimsSubmissionSummary.java │ │ │ │ ├── Eternal.java │ │ │ │ ├── LocatedEntity.java │ │ │ │ ├── PersonEntity.java │ │ │ │ ├── DatabaseEntity.java │ │ │ │ └── DeviceSpecimenTypeNewId.java │ │ │ └── repository │ │ │ │ ├── ProviderRepository.java │ │ │ │ ├── UploadDiseaseDetailsRepository.java │ │ │ │ ├── FeatureFlagRepository.java │ │ │ │ ├── PatientLinkFailedAttemptRepository.java │ │ │ │ ├── TextMessageStatusRepository.java │ │ │ │ ├── DeletableEntityRepository.java │ │ │ │ ├── FacilityFeatureFlagRepository.java │ │ │ │ ├── TextMessageSentRepository.java │ │ │ │ └── TimeOfConsentRepository.java │ │ │ ├── service │ │ │ ├── supportescalation │ │ │ │ └── SupportEscalationService.java │ │ │ ├── sms │ │ │ │ └── SmsProviderWrapper.java │ │ │ ├── model │ │ │ │ ├── Wrapper.java │ │ │ │ ├── ExistingPatientCheckRequestBody.java │ │ │ │ ├── TimezoneInfo.java │ │ │ │ ├── IdentitySupplier.java │ │ │ │ ├── reportstream │ │ │ │ │ └── TokenResponse.java │ │ │ │ └── SmsAPICallResult.java │ │ │ ├── email │ │ │ │ └── EmailProvider.java │ │ │ ├── errors │ │ │ │ ├── InvalidAddressException.java │ │ │ │ ├── InvalidBulkTestResultUploadException.java │ │ │ │ ├── InvalidRSAPrivateKeyException.java │ │ │ │ └── NobodyAuthenticatedException.java │ │ │ └── ReportStreamCallbackService.java │ │ │ ├── properties │ │ │ └── SupportEscalationProperties.java │ │ │ ├── config │ │ │ └── authorization │ │ │ │ ├── NamedPrincipal.java │ │ │ │ ├── TenantDataAuthenticationProvider.java │ │ │ │ └── SiteAdminPrincipal.java │ │ │ └── utils │ │ │ └── AsyncLoggingUtils.java │ │ └── resources │ │ ├── application-no-okta-mgmt.yaml │ │ ├── hibernate.properties │ │ ├── application-server-debug.yaml │ │ ├── application-prod.yaml │ │ ├── application-okta-prod.yaml │ │ ├── application-okta-stg.yaml │ │ ├── application-okta-training.yaml │ │ ├── application-okta-test.yaml │ │ ├── application-okta-dev.yaml │ │ ├── application-okta-dev2.yaml │ │ ├── application-okta-dev3.yaml │ │ ├── application-okta-dev4.yaml │ │ ├── application-okta-dev5.yaml │ │ ├── application-okta-dev6.yaml │ │ ├── application-okta-pentest.yaml │ │ ├── application-azure-demo.yaml │ │ ├── application-azure-pentest.yaml │ │ ├── application-azure-training.yaml │ │ └── templates │ │ └── waitlist-request.html ├── settings.gradle ├── .env.development ├── .dockerignore ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── lombok.config ├── docker-compose.prod.yml ├── locust │ └── locustfile.py └── Dockerfile.db-liquibase-action ├── frontend ├── .nvmrc ├── __mocks__ │ └── styleMock.js ├── src │ ├── app │ │ ├── commonComponents │ │ │ ├── types.d.ts │ │ │ ├── Page │ │ │ │ ├── Page.scss │ │ │ │ ├── __snapshots__ │ │ │ │ │ └── Page.test.tsx.snap │ │ │ │ ├── Page.stories.tsx │ │ │ │ └── Page.test.tsx │ │ │ ├── CardBackground │ │ │ │ ├── CardBackground.scss │ │ │ │ └── CardBackground.tsx │ │ │ ├── MenuButton.scss │ │ │ ├── Optional.tsx │ │ │ ├── ActionsMenu.scss │ │ │ ├── MaintenanceBanner.scss │ │ │ ├── USAGovBanner.scss │ │ │ ├── ScrollToTopOnMount.tsx │ │ │ ├── LabeledText.tsx │ │ │ ├── CopyTooltip.tsx │ │ │ ├── Required.tsx │ │ │ ├── USAGovBanner.stories.tsx │ │ │ ├── RequiredMessage.stories.tsx │ │ │ ├── LinkWithQuery.tsx │ │ │ ├── Button │ │ │ │ └── Button.stories.tsx │ │ │ ├── UserDetails │ │ │ │ └── UserHeading.scss │ │ │ ├── PageNotFound.tsx │ │ │ ├── Optional.stories.tsx │ │ │ ├── RequiredMessage.tsx │ │ │ ├── HashLink.tsx │ │ │ ├── Card │ │ │ │ └── CardLogoHeader.tsx │ │ │ ├── Required.stories.tsx │ │ │ ├── TestResultGuidance │ │ │ │ ├── ChlamydiaResultGuidance.test.tsx │ │ │ │ ├── GonorrheaResultGuidance.test.tsx │ │ │ │ └── HepatitisCResultGuidance.test.tsx │ │ │ └── TextWithTooltip.scss │ │ ├── supportAdmin │ │ │ ├── admin.graphql │ │ │ ├── Components │ │ │ │ ├── SeparatorLine.scss │ │ │ │ └── SeparatorLine.tsx │ │ │ ├── PendingOrganizations │ │ │ │ └── utils.tsx │ │ │ ├── DeviceType │ │ │ │ ├── types.d.ts │ │ │ │ └── mocks │ │ │ │ │ ├── mockSupportedDiseaseTestPerformedMultiplex.ts │ │ │ │ │ ├── mockSupportedDiseaseTestPerformedHIV.ts │ │ │ │ │ └── mockSupportedDiseaseTestPerformedSyphilis.ts │ │ │ └── SupportAdmin.test.tsx │ │ ├── utils │ │ │ ├── reload.ts │ │ │ ├── getNodeEnv.ts │ │ │ ├── getNodeEnv.test.ts │ │ │ ├── email.ts │ │ │ ├── jestHelpers.tsx │ │ │ ├── state.ts │ │ │ ├── number.ts │ │ │ ├── serviceWorkerHelper.ts │ │ │ └── languages.tsx │ │ ├── universalReporting │ │ │ ├── TestDetailFormSubsection.scss │ │ │ ├── LabReportForm.scss │ │ │ └── ReviewFormSection.scss │ │ ├── testQueue │ │ │ ├── test-timer.mp3 │ │ │ ├── TestCardForm │ │ │ │ ├── diseaseSpecificComponents │ │ │ │ │ └── TestResultInputGroup.scss │ │ │ │ └── TestCardForm.scss │ │ │ ├── TestQueue.scss │ │ │ ├── addToQueue │ │ │ │ └── types.ts │ │ │ └── mocks │ │ │ │ └── mockSupportedDiseaseCovid.ts │ │ ├── facilitySelect │ │ │ └── FacilitySelect.scss │ │ ├── testResults │ │ │ ├── uploads │ │ │ │ └── Uploads.scss │ │ │ ├── HeaderSizeFix.scss │ │ │ ├── mocks │ │ │ │ ├── patients.mock.tsx │ │ │ │ ├── facilities.mock.tsx │ │ │ │ ├── resultForEmail.ts │ │ │ │ └── resultForText.ts │ │ │ ├── viewResults │ │ │ │ └── actionMenuModals │ │ │ │ │ └── EmailTestResultModal.scss │ │ │ ├── ResultsNav.test.tsx │ │ │ └── ResultsNavWrapper.tsx │ │ ├── Settings │ │ │ ├── Users │ │ │ │ ├── FacilityAccessTab.scss │ │ │ │ └── UserDetailUtils.tsx │ │ │ ├── Facility │ │ │ │ └── Components │ │ │ │ │ └── OrderingProvider.scss │ │ │ └── operations.graphql │ │ ├── __snapshots__ │ │ │ ├── PilotApp.test.tsx.snap │ │ │ └── ReportingApp.test.tsx.snap │ │ ├── patients │ │ │ ├── TestResultDeliveryPreference.ts │ │ │ ├── Components │ │ │ │ └── PersonForm.scss │ │ │ └── UploadPatients.scss │ │ ├── analytics │ │ │ ├── TouchpointsButton.tsx │ │ │ └── operations.graphql │ │ ├── VersionEnforcer.tsx │ │ ├── signUp │ │ │ ├── IdentityVerification │ │ │ │ ├── NextSteps.test.tsx │ │ │ │ ├── NextSteps.stories.tsx │ │ │ │ ├── QuestionsForm.scss │ │ │ │ └── Success.test.tsx │ │ │ └── Organization │ │ │ │ ├── SignUpGoals.stories.tsx │ │ │ │ ├── RequestAccess.stories.tsx │ │ │ │ ├── OrganizationForm.stories.tsx │ │ │ │ └── RequestTestResult.stories.tsx │ │ ├── accountCreation │ │ │ ├── MfaOktaVerify │ │ │ │ ├── MfaOktaVerify.tsx │ │ │ │ └── MfaOktaVerify.stories.tsx │ │ │ ├── MfaSms │ │ │ │ └── MfaSms.stories.tsx │ │ │ ├── MfaPhone │ │ │ │ └── MfaPhone.stories.tsx │ │ │ ├── MfaSelect │ │ │ │ └── MfaSelect.stories.tsx │ │ │ ├── MfaComplete │ │ │ │ ├── MfaComplete.test.tsx │ │ │ │ └── MfaComplete.stories.tsx │ │ │ ├── MfaGoogleAuthVerify │ │ │ │ ├── MfaGoogleAuthVerify.tsx │ │ │ │ └── MfaGoogleAuthVerify.stories.tsx │ │ │ ├── MfaEmailVerify │ │ │ │ └── MfaEmailVerify.stories.tsx │ │ │ ├── SecurityQuestion │ │ │ │ └── SecurityQuestion.stories.tsx │ │ │ ├── MfaOkta │ │ │ │ └── MfaOkta.tsx │ │ │ └── MfaGoogleAuth │ │ │ │ └── MfaGoogleAuth.tsx │ │ ├── telemetry-provider.tsx │ │ ├── HealthChecks.tsx │ │ └── uploads │ │ │ └── DeviceLookup │ │ │ └── DeviceLookup.scss │ ├── scss │ │ ├── settings │ │ │ └── _index.scss │ │ ├── base │ │ │ └── _index.scss │ │ ├── components │ │ │ ├── _index.scss │ │ │ ├── _table.scss │ │ │ ├── _datepicker.scss │ │ │ ├── _link.scss │ │ │ └── _card.scss │ │ ├── App.scss │ │ └── README.md │ ├── patientApp │ │ ├── PatientHeader.scss │ │ └── LanguageToggler.scss │ ├── img │ │ ├── usds-logo.png │ │ ├── favicons │ │ │ ├── favicon.ico │ │ │ ├── favicon.png │ │ │ ├── favicon-114.png │ │ │ ├── favicon-144.png │ │ │ ├── favicon-16.png │ │ │ ├── favicon-192.png │ │ │ ├── favicon-40.png │ │ │ ├── favicon-57.png │ │ │ └── favicon-72.png │ │ ├── close.svg │ │ └── search--white.svg │ ├── fonts │ │ ├── public-sans │ │ │ ├── PublicSans-Black.ttf │ │ │ ├── PublicSans-Bold.ttf │ │ │ ├── PublicSans-Bold.woff │ │ │ ├── PublicSans-Light.ttf │ │ │ ├── PublicSans-Thin.ttf │ │ │ ├── PublicSans-Thin.woff │ │ │ ├── PublicSans-Black.woff │ │ │ ├── PublicSans-Black.woff2 │ │ │ ├── PublicSans-Bold.woff2 │ │ │ ├── PublicSans-Italic.ttf │ │ │ ├── PublicSans-Italic.woff │ │ │ ├── PublicSans-Light.woff │ │ │ ├── PublicSans-Light.woff2 │ │ │ ├── PublicSans-Medium.ttf │ │ │ ├── PublicSans-Medium.woff │ │ │ ├── PublicSans-Regular.ttf │ │ │ ├── PublicSans-Thin.woff2 │ │ │ ├── PublicSans-BoldItalic.ttf │ │ │ ├── PublicSans-ExtraBold.ttf │ │ │ ├── PublicSans-ExtraBold.woff │ │ │ ├── PublicSans-ExtraLight.ttf │ │ │ ├── PublicSans-Italic.woff2 │ │ │ ├── PublicSans-Medium.woff2 │ │ │ ├── PublicSans-Regular.woff │ │ │ ├── PublicSans-Regular.woff2 │ │ │ ├── PublicSans-SemiBold.ttf │ │ │ ├── PublicSans-SemiBold.woff │ │ │ ├── PublicSans-SemiBold.woff2 │ │ │ ├── PublicSans-ThinItalic.ttf │ │ │ ├── PublicSans-BlackItalic.ttf │ │ │ ├── PublicSans-BlackItalic.woff │ │ │ ├── PublicSans-BoldItalic.woff │ │ │ ├── PublicSans-BoldItalic.woff2 │ │ │ ├── PublicSans-ExtraBold.woff2 │ │ │ ├── PublicSans-ExtraLight.woff │ │ │ ├── PublicSans-ExtraLight.woff2 │ │ │ ├── PublicSans-LightItalic.ttf │ │ │ ├── PublicSans-LightItalic.woff │ │ │ ├── PublicSans-MediumItalic.ttf │ │ │ ├── PublicSans-ThinItalic.woff │ │ │ ├── PublicSans-ThinItalic.woff2 │ │ │ ├── PublicSans-BlackItalic.woff2 │ │ │ ├── PublicSans-ExtraBoldItalic.ttf │ │ │ ├── PublicSans-LightItalic.woff2 │ │ │ ├── PublicSans-MediumItalic.woff │ │ │ ├── PublicSans-MediumItalic.woff2 │ │ │ ├── PublicSans-SemiBoldItalic.ttf │ │ │ ├── PublicSans-SemiBoldItalic.woff │ │ │ ├── PublicSans-ExtraBoldItalic.woff │ │ │ ├── PublicSans-ExtraBoldItalic.woff2 │ │ │ ├── PublicSans-ExtraLightItalic.ttf │ │ │ ├── PublicSans-ExtraLightItalic.woff │ │ │ ├── PublicSans-SemiBoldItalic.woff2 │ │ │ └── PublicSans-ExtraLightItalic.woff2 │ │ └── merriweather │ │ │ ├── Latin-Merriweather-Black.ttf │ │ │ ├── Latin-Merriweather-Black.woff │ │ │ ├── Latin-Merriweather-Bold.ttf │ │ │ ├── Latin-Merriweather-Bold.woff │ │ │ ├── Latin-Merriweather-Bold.woff2 │ │ │ ├── Latin-Merriweather-Italic.ttf │ │ │ ├── Latin-Merriweather-Light.ttf │ │ │ ├── Latin-Merriweather-Light.woff │ │ │ ├── Latin-Merriweather-Black.woff2 │ │ │ ├── Latin-Merriweather-Italic.woff │ │ │ ├── Latin-Merriweather-Italic.woff2 │ │ │ ├── Latin-Merriweather-Light.woff2 │ │ │ ├── Latin-Merriweather-Regular.ttf │ │ │ ├── Latin-Merriweather-Regular.woff │ │ │ ├── Latin-Merriweather-BlackItalic.ttf │ │ │ ├── Latin-Merriweather-BoldItalic.ttf │ │ │ ├── Latin-Merriweather-BoldItalic.woff │ │ │ ├── Latin-Merriweather-LightItalic.ttf │ │ │ ├── Latin-Merriweather-Regular.woff2 │ │ │ ├── Latin-Merriweather-BlackItalic.woff │ │ │ ├── Latin-Merriweather-BlackItalic.woff2 │ │ │ ├── Latin-Merriweather-BoldItalic.woff2 │ │ │ ├── Latin-Merriweather-LightItalic.woff │ │ │ └── Latin-Merriweather-LightItalic.woff2 │ ├── stories │ │ └── __mocks__ │ │ │ └── appInsights.ts │ ├── react-i18next.d.ts │ ├── index.tsx │ ├── i18n.ts │ └── react-app-env.d.ts ├── .prettierignore ├── public │ ├── robots.txt │ ├── usds-32x32.png │ └── manifest.json ├── .dockerignore ├── .env.test ├── mockServiceWorker.js ├── .stylelintrc.json ├── .env.production ├── codegen.yml ├── .gitignore ├── .env └── .env.development ├── .env.test ├── cypress ├── .gitignore ├── fixtures │ └── example.json ├── utils │ ├── graphql-test-utils.js │ └── request-utils.js ├── .env.e2e.sample └── eslint.config.mjs ├── ops ├── .gitignore ├── services │ ├── postgres_db │ │ ├── _data.tf │ │ └── _output.tf │ ├── pagerduty │ │ ├── _outputs.tf │ │ ├── _data.tf │ │ ├── _config.tf │ │ └── _var.tf │ ├── frontend │ │ └── outputs.tf │ ├── metabase │ │ ├── database │ │ │ ├── _var.tf │ │ │ └── main.tf │ │ └── service │ │ │ └── _output.tf │ ├── app_functions │ │ ├── test_data_publisher │ │ │ ├── functions │ │ │ │ ├── .funcignore │ │ │ │ ├── jest.config.js │ │ │ │ ├── host.json │ │ │ │ ├── SendToAIMS │ │ │ │ │ └── telemetry.ts │ │ │ │ └── tsconfig.json │ │ │ └── infra │ │ │ │ └── _config.tf │ │ └── report_stream_batched_publisher │ │ │ ├── functions │ │ │ ├── .funcignore │ │ │ ├── jest.config.js │ │ │ ├── host.json │ │ │ └── tsconfig.json │ │ │ └── infra │ │ │ ├── _output.tf │ │ │ └── _config.tf │ ├── web_application_firewall │ │ ├── _output.tf │ │ └── _var.tf │ ├── okta-global │ │ ├── _data.tf │ │ ├── _var.tf │ │ └── _config.tf │ ├── app_gateway │ │ ├── _data.tf │ │ └── _output.tf │ ├── okta-app │ │ ├── _output.tf │ │ ├── _config.tf │ │ └── _data.tf │ ├── basic_vm │ │ └── _var.tf │ ├── container_instances │ │ └── db_client │ │ │ └── image │ │ │ └── docker-compose.yml │ ├── nat_gateway │ │ └── _var.tf │ ├── app_service_autoscale │ │ └── _var.tf │ ├── alerts │ │ └── app_service_metrics │ │ │ └── data.tf │ ├── virtual_network │ │ └── _output.tf │ └── app_service │ │ └── _data.tf ├── global │ ├── _var.tf │ ├── _data.tf │ └── acr.tf ├── dev5 │ ├── metabase.tf │ └── _config.tf ├── dev6 │ ├── metabase.tf │ └── _config.tf ├── demo │ ├── metabase.tf │ └── _config.tf ├── pentest │ ├── metabase.tf │ └── _config.tf ├── training │ ├── metabase.tf │ └── _config.tf ├── dev │ └── _config.tf ├── dev2 │ └── _config.tf ├── dev3 │ └── _config.tf ├── dev4 │ └── _config.tf ├── prod │ └── _config.tf ├── stg │ └── _config.tf └── test │ └── _config.tf ├── graphql.config.yml ├── .env.sample ├── .gitignore ├── yarn.lock ├── docker-compose.ci.yml ├── .run ├── Frontend.run.xml ├── e2e local open.run.xml ├── e2e local headless.run.xml └── storybook.run.xml ├── .dockerignore ├── .env.cypress.remote.sample └── .github └── actions ├── stg-wait-for-slot-readiness └── action.yml ├── stg-wait-for-slot-commit └── action.yml └── build-test-data-publisher-function-app └── action.yml /.nvmrc: -------------------------------------------------------------------------------- 1 | 24.* -------------------------------------------------------------------------------- /backend/.java-version: -------------------------------------------------------------------------------- 1 | 17 2 | -------------------------------------------------------------------------------- /frontend/.nvmrc: -------------------------------------------------------------------------------- 1 | 24.* 2 | -------------------------------------------------------------------------------- /backend/.jabbarc: -------------------------------------------------------------------------------- 1 | adopt@1.11-0 2 | -------------------------------------------------------------------------------- /backend/db-setup/requirements.txt: -------------------------------------------------------------------------------- 1 | faker 2 | -------------------------------------------------------------------------------- /.env.test: -------------------------------------------------------------------------------- 1 | SR_DB_PORT=5444 2 | DB_NAME="test-db" -------------------------------------------------------------------------------- /backend/src/test/resources/patientBulkUpload/empty.csv: -------------------------------------------------------------------------------- 1 | ,, -------------------------------------------------------------------------------- /cypress/.gitignore: -------------------------------------------------------------------------------- 1 | screenshots/ 2 | videos/ 3 | .env.e2e -------------------------------------------------------------------------------- /frontend/__mocks__/styleMock.js: -------------------------------------------------------------------------------- 1 | module.exports = {}; 2 | -------------------------------------------------------------------------------- /backend/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'simple-report' 2 | -------------------------------------------------------------------------------- /ops/.gitignore: -------------------------------------------------------------------------------- 1 | .terraform/ 2 | *.tfstate* 3 | *.tfplan* 4 | -------------------------------------------------------------------------------- /graphql.config.yml: -------------------------------------------------------------------------------- 1 | schema: "./backend/src/main/resources/graphql/*.graphqls" -------------------------------------------------------------------------------- /ops/services/postgres_db/_data.tf: -------------------------------------------------------------------------------- 1 | data "azurerm_client_config" "current" {} -------------------------------------------------------------------------------- /backend/.env.development: -------------------------------------------------------------------------------- 1 | SR_DB_PORT=5433 2 | OKTA_TESTING_DISABLEHTTPSCHECK=true 3 | -------------------------------------------------------------------------------- /backend/db-setup/.pgpass_ci: -------------------------------------------------------------------------------- 1 | localhost:*:*:postgres:this_is_a_super_secure_admin_password 2 | -------------------------------------------------------------------------------- /frontend/src/app/commonComponents/types.d.ts: -------------------------------------------------------------------------------- 1 | type translateFn = (arg0: string) => string; 2 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/api/testresult/TestResultDataFetcher.java: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /backend/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker: -------------------------------------------------------------------------------- 1 | mock-maker-inline 2 | -------------------------------------------------------------------------------- /frontend/src/scss/settings/_index.scss: -------------------------------------------------------------------------------- 1 | @forward "uswds-theme"; 2 | @forward "prime-variables"; 3 | -------------------------------------------------------------------------------- /backend/.dockerignore: -------------------------------------------------------------------------------- 1 | .dockerignore 2 | Dockerfile 3 | Dockerfile.db-rollback 4 | Dockerfile.prod 5 | build -------------------------------------------------------------------------------- /backend/src/main/resources/application-no-okta-mgmt.yaml: -------------------------------------------------------------------------------- 1 | okta: 2 | oauth2: 3 | client-id: NONE 4 | -------------------------------------------------------------------------------- /frontend/.prettierignore: -------------------------------------------------------------------------------- 1 | # GENERATED FILE (ignore forever or until moved) 2 | src/styles/App.css 3 | build/ -------------------------------------------------------------------------------- /frontend/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /frontend/src/app/commonComponents/Page/Page.scss: -------------------------------------------------------------------------------- 1 | .pilot-header { 2 | background-color: #162e51; 3 | } 4 | -------------------------------------------------------------------------------- /backend/db-setup/.pgpass: -------------------------------------------------------------------------------- 1 | localhost:*:simple_report:postgres:admin_password_for_local_dev_is_not_very_secure 2 | -------------------------------------------------------------------------------- /frontend/.dockerignore: -------------------------------------------------------------------------------- 1 | Dockerfile 2 | cypress/screenshots 3 | cypress/videos 4 | wiremock*.jar 5 | node_modules -------------------------------------------------------------------------------- /frontend/src/app/supportAdmin/admin.graphql: -------------------------------------------------------------------------------- 1 | mutation SendSupportEscalation { 2 | sendSupportEscalation 3 | } -------------------------------------------------------------------------------- /frontend/src/app/utils/reload.ts: -------------------------------------------------------------------------------- 1 | export default function reload() { 2 | window.location.reload(); 3 | } 4 | -------------------------------------------------------------------------------- /frontend/src/patientApp/PatientHeader.scss: -------------------------------------------------------------------------------- 1 | @media print { 2 | .header { 3 | display: none; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/scss/base/_index.scss: -------------------------------------------------------------------------------- 1 | @forward "app-layout"; 2 | @forward "prime-styles"; 3 | @forward "utilities"; 4 | -------------------------------------------------------------------------------- /backend/src/main/resources/hibernate.properties: -------------------------------------------------------------------------------- 1 | hibernate.types.print.banner=false 2 | hibernate.jdbc.time_zone=UTC 3 | -------------------------------------------------------------------------------- /frontend/public/usds-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/public/usds-32x32.png -------------------------------------------------------------------------------- /frontend/src/app/commonComponents/CardBackground/CardBackground.scss: -------------------------------------------------------------------------------- 1 | .card__background { 2 | min-height: 100vh; 3 | } 4 | -------------------------------------------------------------------------------- /frontend/src/app/utils/getNodeEnv.ts: -------------------------------------------------------------------------------- 1 | export default function getNodeEnv() { 2 | return process.env.NODE_ENV; 3 | } 4 | -------------------------------------------------------------------------------- /frontend/src/img/usds-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/img/usds-logo.png -------------------------------------------------------------------------------- /ops/services/pagerduty/_outputs.tf: -------------------------------------------------------------------------------- 1 | output "monitor_group_id" { 2 | value = azurerm_monitor_action_group.pd.id 3 | } 4 | -------------------------------------------------------------------------------- /.env.sample: -------------------------------------------------------------------------------- 1 | # Smarty streets secrets 2 | SMARTY_AUTH_ID= 3 | SMARTY_AUTH_TOKEN= 4 | 5 | # Okta secrets 6 | OKTA_API_KEY= 7 | -------------------------------------------------------------------------------- /backend/gradle.properties: -------------------------------------------------------------------------------- 1 | testDbHost=localhost 2 | testDbPort=5444 3 | skipDbSetup=false 4 | liquibaseTaskPrefix=liquibase 5 | -------------------------------------------------------------------------------- /frontend/.env.test: -------------------------------------------------------------------------------- 1 | REACT_APP_BACKEND_URL=http://localhost:8080 2 | REACT_APP_TEST_TRIBAL_AFFILIATION_BYPASS=true 3 | TZ='UTC' 4 | -------------------------------------------------------------------------------- /frontend/src/app/supportAdmin/Components/SeparatorLine.scss: -------------------------------------------------------------------------------- 1 | .sr-separator-line { 2 | border-bottom: 1px solid #dcdee0; 3 | } 4 | -------------------------------------------------------------------------------- /frontend/src/app/universalReporting/TestDetailFormSubsection.scss: -------------------------------------------------------------------------------- 1 | .interpretation-textarea { 2 | height: 6rem !important; 3 | } 4 | -------------------------------------------------------------------------------- /frontend/src/scss/components/_index.scss: -------------------------------------------------------------------------------- 1 | @forward "card"; 2 | @forward "datepicker"; 3 | @forward "link"; 4 | @forward "table"; 5 | -------------------------------------------------------------------------------- /ops/services/frontend/outputs.tf: -------------------------------------------------------------------------------- 1 | output "blob_ip_address" { 2 | value = azurerm_storage_account.frontend.primary_web_host 3 | } 4 | -------------------------------------------------------------------------------- /backend/src/test/resources/templates/test-template.html: -------------------------------------------------------------------------------- 1 |
2 | Foo: [[${foo}]] 3 | Bar: [[${bar}]] 4 |
5 | -------------------------------------------------------------------------------- /frontend/src/img/favicons/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/img/favicons/favicon.ico -------------------------------------------------------------------------------- /frontend/src/img/favicons/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/img/favicons/favicon.png -------------------------------------------------------------------------------- /backend/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/backend/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /frontend/src/app/testQueue/test-timer.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/app/testQueue/test-timer.mp3 -------------------------------------------------------------------------------- /frontend/src/img/favicons/favicon-114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/img/favicons/favicon-114.png -------------------------------------------------------------------------------- /frontend/src/img/favicons/favicon-144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/img/favicons/favicon-144.png -------------------------------------------------------------------------------- /frontend/src/img/favicons/favicon-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/img/favicons/favicon-16.png -------------------------------------------------------------------------------- /frontend/src/img/favicons/favicon-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/img/favicons/favicon-192.png -------------------------------------------------------------------------------- /frontend/src/img/favicons/favicon-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/img/favicons/favicon-40.png -------------------------------------------------------------------------------- /frontend/src/img/favicons/favicon-57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/img/favicons/favicon-57.png -------------------------------------------------------------------------------- /frontend/src/img/favicons/favicon-72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/img/favicons/favicon-72.png -------------------------------------------------------------------------------- /frontend/src/patientApp/LanguageToggler.scss: -------------------------------------------------------------------------------- 1 | .sr-language-toggler { 2 | &.usa-button--unstyled { 3 | column-gap: 0; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /frontend/src/scss/App.scss: -------------------------------------------------------------------------------- 1 | @forward "settings"; 2 | @forward "@uswds/uswds/packages/uswds"; 3 | @forward "base"; 4 | @forward "components"; 5 | -------------------------------------------------------------------------------- /backend/src/main/resources/application-server-debug.yaml: -------------------------------------------------------------------------------- 1 | management.endpoints.web: 2 | exposure: 3 | include: health, info, auditlog, liquibase 4 | -------------------------------------------------------------------------------- /backend/src/test/resources/graphql-test/update-org-settings.graphql: -------------------------------------------------------------------------------- 1 | mutation { 2 | updateOrganization( 3 | name: "dis organization" 4 | ) 5 | } -------------------------------------------------------------------------------- /ops/services/metabase/database/_var.tf: -------------------------------------------------------------------------------- 1 | variable "postgres_server_id" { 2 | type = string 3 | description = "PostgreSQL Server id" 4 | } 5 | -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-Black.ttf -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-Bold.ttf -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-Bold.woff -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-Light.ttf -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-Thin.ttf -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-Thin.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-Thin.woff -------------------------------------------------------------------------------- /frontend/src/scss/README.md: -------------------------------------------------------------------------------- 1 | # About 2 | 3 | All custom `.scss` go here. Everything in this folder is compiled into CSS and moved to the `src/styles` directory 4 | -------------------------------------------------------------------------------- /ops/services/app_functions/test_data_publisher/functions/.funcignore: -------------------------------------------------------------------------------- 1 | *.js.map 2 | *.ts 3 | .git* 4 | .vscode 5 | local.settings.json 6 | test 7 | tsconfig.json 8 | -------------------------------------------------------------------------------- /ops/services/web_application_firewall/_output.tf: -------------------------------------------------------------------------------- 1 | output "web_application_firewall_id" { 2 | value = azurerm_web_application_firewall_policy.sr_waf_policy.id 3 | } -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-Black.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-Black.woff -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-Black.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-Black.woff2 -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-Bold.woff2 -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-Italic.ttf -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-Italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-Italic.woff -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-Light.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-Light.woff -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-Light.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-Light.woff2 -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-Medium.ttf -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-Medium.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-Medium.woff -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-Regular.ttf -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-Thin.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-Thin.woff2 -------------------------------------------------------------------------------- /ops/services/okta-global/_data.tf: -------------------------------------------------------------------------------- 1 | data "okta_auth_server" "default" { 2 | name = "default" 3 | } 4 | 5 | data "okta_group" "everyone" { 6 | name = "Everyone" 7 | } -------------------------------------------------------------------------------- /backend/src/test/resources/graphql-test/remove-from-queue.graphql: -------------------------------------------------------------------------------- 1 | mutation removePatientFromQueue($patientId: ID!) { 2 | removePatientFromQueue(patientId: $patientId) 3 | } -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-BoldItalic.ttf -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-ExtraBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-ExtraBold.ttf -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-ExtraBold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-ExtraBold.woff -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-ExtraLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-ExtraLight.ttf -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-Italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-Italic.woff2 -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-Medium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-Medium.woff2 -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-Regular.woff -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-Regular.woff2 -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-SemiBold.ttf -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-SemiBold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-SemiBold.woff -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-SemiBold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-SemiBold.woff2 -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-ThinItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-ThinItalic.ttf -------------------------------------------------------------------------------- /backend/src/test/resources/graphql-test/specimen-type-query.graphql: -------------------------------------------------------------------------------- 1 | query getSpecimenTypes{ 2 | specimenTypes { 3 | internalId 4 | name 5 | typeCode 6 | } 7 | } -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-BlackItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-BlackItalic.ttf -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-BlackItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-BlackItalic.woff -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-BoldItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-BoldItalic.woff -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-BoldItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-BoldItalic.woff2 -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-ExtraBold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-ExtraBold.woff2 -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-ExtraLight.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-ExtraLight.woff -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-ExtraLight.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-ExtraLight.woff2 -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-LightItalic.ttf -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-LightItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-LightItalic.woff -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-MediumItalic.ttf -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-ThinItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-ThinItalic.woff -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-ThinItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-ThinItalic.woff2 -------------------------------------------------------------------------------- /frontend/src/stories/__mocks__/appInsights.ts: -------------------------------------------------------------------------------- 1 | export const useAppInsightsContext = () => {}; 2 | export const useTrackEvent = () => () => {}; 3 | export class ReactPlugin {} 4 | -------------------------------------------------------------------------------- /ops/global/_var.tf: -------------------------------------------------------------------------------- 1 | variable "okta_base_url" { 2 | description = "The Okta account domain. Default: okta.com" 3 | type = string 4 | default = "okta.com" 5 | } 6 | -------------------------------------------------------------------------------- /ops/services/app_functions/report_stream_batched_publisher/functions/.funcignore: -------------------------------------------------------------------------------- 1 | *.js.map 2 | *.ts 3 | .git* 4 | .vscode 5 | local.settings.json 6 | test 7 | tsconfig.json 8 | -------------------------------------------------------------------------------- /backend/lombok.config: -------------------------------------------------------------------------------- 1 | config.stopBubbling = true 2 | lombok.copyableAnnotations += org.springframework.beans.factory.annotation.Qualifier 3 | lombok.addLombokGeneratedAnnotation = true -------------------------------------------------------------------------------- /backend/src/main/resources/application-prod.yaml: -------------------------------------------------------------------------------- 1 | simple-report: 2 | cors: 3 | allowed-origins: 4 | - https://www.simplereport.gov 5 | - https://simplereport.gov 6 | -------------------------------------------------------------------------------- /frontend/src/app/commonComponents/Page/__snapshots__/Page.test.tsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Page No children renders 1`] = ``; 4 | -------------------------------------------------------------------------------- /frontend/src/fonts/merriweather/Latin-Merriweather-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/merriweather/Latin-Merriweather-Black.ttf -------------------------------------------------------------------------------- /frontend/src/fonts/merriweather/Latin-Merriweather-Black.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/merriweather/Latin-Merriweather-Black.woff -------------------------------------------------------------------------------- /frontend/src/fonts/merriweather/Latin-Merriweather-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/merriweather/Latin-Merriweather-Bold.ttf -------------------------------------------------------------------------------- /frontend/src/fonts/merriweather/Latin-Merriweather-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/merriweather/Latin-Merriweather-Bold.woff -------------------------------------------------------------------------------- /frontend/src/fonts/merriweather/Latin-Merriweather-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/merriweather/Latin-Merriweather-Bold.woff2 -------------------------------------------------------------------------------- /frontend/src/fonts/merriweather/Latin-Merriweather-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/merriweather/Latin-Merriweather-Italic.ttf -------------------------------------------------------------------------------- /frontend/src/fonts/merriweather/Latin-Merriweather-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/merriweather/Latin-Merriweather-Light.ttf -------------------------------------------------------------------------------- /frontend/src/fonts/merriweather/Latin-Merriweather-Light.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/merriweather/Latin-Merriweather-Light.woff -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-BlackItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-BlackItalic.woff2 -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-ExtraBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-ExtraBoldItalic.ttf -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-LightItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-LightItalic.woff2 -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-MediumItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-MediumItalic.woff -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-MediumItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-MediumItalic.woff2 -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-SemiBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-SemiBoldItalic.ttf -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-SemiBoldItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-SemiBoldItalic.woff -------------------------------------------------------------------------------- /ops/global/_data.tf: -------------------------------------------------------------------------------- 1 | data "azurerm_resource_group" "rg" { 2 | name = "prime-simple-report-management" 3 | } 4 | 5 | data "okta_group" "everyone" { 6 | name = "Everyone" 7 | } 8 | -------------------------------------------------------------------------------- /backend/db-setup/create-metabase-db.sh: -------------------------------------------------------------------------------- 1 | 2 | RESET_DIR=${LIB_DIR:-/usr/local/lib} 3 | 4 | psql -v ON_ERROR_STOP=1 -U "$POSTGRES_USER" metabase -f "$RESET_DIR/reset-metabase-db.sql" 5 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/api/devicetype/PublicDeviceType.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.api.devicetype; 2 | 3 | public interface PublicDeviceType {} 4 | -------------------------------------------------------------------------------- /backend/src/test/resources/graphql-test/supported-disease-query.graphql: -------------------------------------------------------------------------------- 1 | query getSupportedDiseases { 2 | supportedDiseases { 3 | internalId 4 | name 5 | loinc 6 | } 7 | } -------------------------------------------------------------------------------- /frontend/src/fonts/merriweather/Latin-Merriweather-Black.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/merriweather/Latin-Merriweather-Black.woff2 -------------------------------------------------------------------------------- /frontend/src/fonts/merriweather/Latin-Merriweather-Italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/merriweather/Latin-Merriweather-Italic.woff -------------------------------------------------------------------------------- /frontend/src/fonts/merriweather/Latin-Merriweather-Italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/merriweather/Latin-Merriweather-Italic.woff2 -------------------------------------------------------------------------------- /frontend/src/fonts/merriweather/Latin-Merriweather-Light.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/merriweather/Latin-Merriweather-Light.woff2 -------------------------------------------------------------------------------- /frontend/src/fonts/merriweather/Latin-Merriweather-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/merriweather/Latin-Merriweather-Regular.ttf -------------------------------------------------------------------------------- /frontend/src/fonts/merriweather/Latin-Merriweather-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/merriweather/Latin-Merriweather-Regular.woff -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-ExtraBoldItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-ExtraBoldItalic.woff -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-ExtraBoldItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-ExtraBoldItalic.woff2 -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-ExtraLightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-ExtraLightItalic.ttf -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-ExtraLightItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-ExtraLightItalic.woff -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-SemiBoldItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-SemiBoldItalic.woff2 -------------------------------------------------------------------------------- /ops/services/app_gateway/_data.tf: -------------------------------------------------------------------------------- 1 | data "azurerm_key_vault_certificate" "wildcard_simplereport_gov" { 2 | key_vault_id = var.key_vault_id 3 | name = "new-sr-wildcard" 4 | } 5 | -------------------------------------------------------------------------------- /ops/services/web_application_firewall/_var.tf: -------------------------------------------------------------------------------- 1 | variable "name" {} 2 | variable "env" {} 3 | variable "resource_group_name" {} 4 | variable "resource_group_location" {} 5 | variable "tags" {} -------------------------------------------------------------------------------- /frontend/src/app/universalReporting/LabReportForm.scss: -------------------------------------------------------------------------------- 1 | .lab-combo-box { 2 | max-width: none !important; 3 | } 4 | 5 | .usa-form-group.report-form-controls { 6 | margin-top: 18px; 7 | } 8 | -------------------------------------------------------------------------------- /frontend/src/fonts/merriweather/Latin-Merriweather-BlackItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/merriweather/Latin-Merriweather-BlackItalic.ttf -------------------------------------------------------------------------------- /frontend/src/fonts/merriweather/Latin-Merriweather-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/merriweather/Latin-Merriweather-BoldItalic.ttf -------------------------------------------------------------------------------- /frontend/src/fonts/merriweather/Latin-Merriweather-BoldItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/merriweather/Latin-Merriweather-BoldItalic.woff -------------------------------------------------------------------------------- /frontend/src/fonts/merriweather/Latin-Merriweather-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/merriweather/Latin-Merriweather-LightItalic.ttf -------------------------------------------------------------------------------- /frontend/src/fonts/merriweather/Latin-Merriweather-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/merriweather/Latin-Merriweather-Regular.woff2 -------------------------------------------------------------------------------- /frontend/src/fonts/public-sans/PublicSans-ExtraLightItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/public-sans/PublicSans-ExtraLightItalic.woff2 -------------------------------------------------------------------------------- /frontend/mockServiceWorker.js: -------------------------------------------------------------------------------- 1 | import { setupWorker } from "msw/browser"; 2 | import { handlers } from "frontend/src/stories/storyMocks"; 3 | 4 | export const worker = setupWorker(...handlers); 5 | -------------------------------------------------------------------------------- /frontend/src/fonts/merriweather/Latin-Merriweather-BlackItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/merriweather/Latin-Merriweather-BlackItalic.woff -------------------------------------------------------------------------------- /frontend/src/fonts/merriweather/Latin-Merriweather-BlackItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/merriweather/Latin-Merriweather-BlackItalic.woff2 -------------------------------------------------------------------------------- /frontend/src/fonts/merriweather/Latin-Merriweather-BoldItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/merriweather/Latin-Merriweather-BoldItalic.woff2 -------------------------------------------------------------------------------- /frontend/src/fonts/merriweather/Latin-Merriweather-LightItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/merriweather/Latin-Merriweather-LightItalic.woff -------------------------------------------------------------------------------- /frontend/src/fonts/merriweather/Latin-Merriweather-LightItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CDCgov/prime-simplereport/HEAD/frontend/src/fonts/merriweather/Latin-Merriweather-LightItalic.woff2 -------------------------------------------------------------------------------- /frontend/src/scss/components/_table.scss: -------------------------------------------------------------------------------- 1 | @use "../settings" as *; 2 | 3 | .usa-table { 4 | tr { 5 | &:hover { 6 | @include u-bg('gray-cool-3'); 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ops/services/pagerduty/_data.tf: -------------------------------------------------------------------------------- 1 | data "pagerduty_service" "service" { 2 | name = var.pagerduty_service_name 3 | } 4 | 5 | data "pagerduty_vendor" "azure" { 6 | name = "Microsoft Azure" 7 | } 8 | -------------------------------------------------------------------------------- /backend/src/test/resources/deserialization/http-request-details/partial.json: -------------------------------------------------------------------------------- 1 | { 2 | "serverName":"my.private.cloud", 3 | "remoteAddress":"192.168.33.23", 4 | "requestUri":"/die/die/die" 5 | } 6 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/db/model/auxiliary/PhoneType.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.db.model.auxiliary; 2 | 3 | public enum PhoneType { 4 | MOBILE, 5 | LANDLINE; 6 | } 7 | -------------------------------------------------------------------------------- /backend/src/test/resources/graphql-test/device-type-query.graphql: -------------------------------------------------------------------------------- 1 | query listDevices { 2 | deviceType { 3 | name 4 | internalId 5 | manufacturer 6 | model 7 | } 8 | } -------------------------------------------------------------------------------- /cypress/fixtures/example.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Using fixtures to represent data", 3 | "email": "hello@cypress.io", 4 | "body": "Fixtures are a great way to mock data for responses to routes" 5 | } 6 | -------------------------------------------------------------------------------- /cypress/utils/graphql-test-utils.js: -------------------------------------------------------------------------------- 1 | // Utility to match GraphQL mutation based on the operation name 2 | export const aliasGraphqlOperations = (req) => { 3 | req.alias = req.body.operationName; 4 | }; 5 | -------------------------------------------------------------------------------- /ops/dev5/metabase.tf: -------------------------------------------------------------------------------- 1 | module "metabase_database" { 2 | source = "../services/metabase/database" 3 | 4 | postgres_server_id = data.terraform_remote_state.persistent_dev5.outputs.postgres_server_id 5 | } -------------------------------------------------------------------------------- /ops/dev6/metabase.tf: -------------------------------------------------------------------------------- 1 | module "metabase_database" { 2 | source = "../services/metabase/database" 3 | 4 | postgres_server_id = data.terraform_remote_state.persistent_dev6.outputs.postgres_server_id 5 | } -------------------------------------------------------------------------------- /ops/demo/metabase.tf: -------------------------------------------------------------------------------- 1 | module "metabase_database" { 2 | source = "../services/metabase/database" 3 | 4 | postgres_server_id = data.terraform_remote_state.persistent_demo.outputs.postgres_server_id 5 | } 6 | -------------------------------------------------------------------------------- /ops/services/okta-global/_var.tf: -------------------------------------------------------------------------------- 1 | variable "all_users_group_id" { 2 | description = "Group to include in universal Okta resources such as MFA rules" 3 | type = string 4 | sensitive = true 5 | } 6 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/db/model/auxiliary/CodingRecord.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.db.model.auxiliary; 2 | 3 | public record CodingRecord(String code, String displayName) {} 4 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/db/model/auxiliary/Pipeline.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.db.model.auxiliary; 2 | 3 | public enum Pipeline { 4 | COVID, 5 | UNIVERSAL, 6 | AIMS; 7 | } 8 | -------------------------------------------------------------------------------- /backend/src/test/resources/graphql-test/patient-link-current-query.graphql: -------------------------------------------------------------------------------- 1 | query patientLinkCurrent($internalId: String!) { 2 | patientLinkCurrent(internalId: $internalId) { 3 | internalId 4 | } 5 | } -------------------------------------------------------------------------------- /backend/src/test/resources/graphql-test/users-query.graphql: -------------------------------------------------------------------------------- 1 | query listUsers { 2 | users { 3 | id 4 | firstName 5 | middleName 6 | lastName 7 | suffix 8 | email 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /frontend/src/scss/components/_datepicker.scss: -------------------------------------------------------------------------------- 1 | @use "../settings" as *; 2 | 3 | .usa-date-picker__calendar { 4 | @include u-border(1px); 5 | @include u-border("base-lighter"); 6 | @include u-shadow(2); 7 | } 8 | -------------------------------------------------------------------------------- /ops/pentest/metabase.tf: -------------------------------------------------------------------------------- 1 | module "metabase_database" { 2 | source = "../services/metabase/database" 3 | 4 | postgres_server_id = data.terraform_remote_state.persistent_pentest.outputs.postgres_server_id 5 | } 6 | -------------------------------------------------------------------------------- /ops/training/metabase.tf: -------------------------------------------------------------------------------- 1 | module "metabase_database" { 2 | source = "../services/metabase/database" 3 | 4 | postgres_server_id = data.terraform_remote_state.persistent_training.outputs.postgres_server_id 5 | } 6 | -------------------------------------------------------------------------------- /backend/src/test/resources/graphql-test/update-feature-flag.graphql: -------------------------------------------------------------------------------- 1 | mutation updateFeatureFlag($name: String!, $value: Boolean!){ 2 | updateFeatureFlag(name:$name, value: $value){ 3 | name 4 | value 5 | } 6 | } -------------------------------------------------------------------------------- /frontend/src/app/commonComponents/MenuButton.scss: -------------------------------------------------------------------------------- 1 | .rc-menu { 2 | padding: 0; 3 | top: 8px !important; 4 | } 5 | 6 | .rc-menu__item { 7 | padding: 16px 20px 11px 20px; 8 | margin-bottom: 5px; 9 | } 10 | -------------------------------------------------------------------------------- /ops/services/okta-app/_output.tf: -------------------------------------------------------------------------------- 1 | output "client_id" { 2 | value = okta_app_oauth.app.client_id 3 | } 4 | 5 | output "client_secret" { 6 | value = okta_app_oauth.app.client_secret 7 | sensitive = true 8 | } 9 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/db/model/auxiliary/UploadStatus.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.db.model.auxiliary; 2 | 3 | public enum UploadStatus { 4 | PENDING, 5 | SUCCESS, 6 | FAILURE 7 | } 8 | -------------------------------------------------------------------------------- /backend/src/test/resources/graphql-test/deleted-person-query.graphql: -------------------------------------------------------------------------------- 1 | query getDeletedPatients { 2 | patients(archivedStatus: ARCHIVED) { 3 | firstName 4 | lastName 5 | birthDate 6 | telephone 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /backend/src/test/resources/graphql-test/update-user-role.graphql: -------------------------------------------------------------------------------- 1 | mutation updateUserRole( 2 | $id: ID!, 3 | $role: Role!, 4 | ){ 5 | updateUserRole( 6 | id: $id 7 | role: $role 8 | ) 9 | } 10 | -------------------------------------------------------------------------------- /frontend/src/app/facilitySelect/FacilitySelect.scss: -------------------------------------------------------------------------------- 1 | #facility-select { 2 | height: 100vh; 3 | 4 | .card-container { 5 | max-width: 25rem; 6 | margin: 0 auto; 7 | margin-top: 3.125rem; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /frontend/src/app/testResults/uploads/Uploads.scss: -------------------------------------------------------------------------------- 1 | .sr-test-results-uploads { 2 | .usa-process-list__heading { 3 | font-size: 1.17rem; 4 | } 5 | 6 | mark { 7 | background-color: #f0f0f0; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ops/services/app_functions/test_data_publisher/functions/jest.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('ts-jest/dist/types').InitialOptionsTsJest} */ 2 | module.exports = { 3 | preset: "ts-jest", 4 | testEnvironment: "node", 5 | }; 6 | -------------------------------------------------------------------------------- /ops/services/okta-app/_config.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_providers { 3 | okta = { 4 | source = "okta/okta" 5 | version = "~> 4.3.0" 6 | } 7 | } 8 | required_version = "~> 1.9.6" 9 | } 10 | -------------------------------------------------------------------------------- /ops/services/okta-global/_config.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_providers { 3 | okta = { 4 | source = "okta/okta" 5 | version = "~> 4.3.0" 6 | } 7 | } 8 | required_version = "~> 1.9.6" 9 | } 10 | -------------------------------------------------------------------------------- /backend/docker-compose.prod.yml: -------------------------------------------------------------------------------- 1 | version: "3.2" 2 | services: 3 | api: 4 | build: 5 | context: .. 6 | dockerfile: backend/Dockerfile.prod 7 | image: simple-report-api-build 8 | ports: 9 | - "8080:8080" -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/db/model/auxiliary/ArchivedStatus.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.db.model.auxiliary; 2 | 3 | public enum ArchivedStatus { 4 | ALL, 5 | ARCHIVED, 6 | UNARCHIVED, 7 | } 8 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/db/model/auxiliary/OrderStatus.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.db.model.auxiliary; 2 | 3 | public enum OrderStatus { 4 | PENDING, 5 | COMPLETED, 6 | CANCELED; 7 | } 8 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/db/model/auxiliary/TestResult.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.db.model.auxiliary; 2 | 3 | public enum TestResult { 4 | POSITIVE, 5 | NEGATIVE, 6 | UNDETERMINED; 7 | } 8 | -------------------------------------------------------------------------------- /frontend/src/app/Settings/Users/FacilityAccessTab.scss: -------------------------------------------------------------------------------- 1 | .userrole-subtext { 2 | font-style: italic; 3 | font-weight: normal; 4 | font-size: 16px; 5 | line-height: 120%; 6 | color: #3d4551; 7 | margin-right: 2rem; 8 | } 9 | -------------------------------------------------------------------------------- /frontend/src/app/commonComponents/Optional.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | const Optional = (props: { label?: React.ReactNode; className?: string }) => ( 4 | <>{props.label} 5 | ); 6 | 7 | export default Optional; 8 | -------------------------------------------------------------------------------- /frontend/src/app/testQueue/TestCardForm/diseaseSpecificComponents/TestResultInputGroup.scss: -------------------------------------------------------------------------------- 1 | .test-result-input-radio-group-column { 2 | margin-right: 1.75rem; 3 | } 4 | 5 | .usa-radio { 6 | margin-bottom: 0 !important; 7 | } 8 | -------------------------------------------------------------------------------- /frontend/src/react-i18next.d.ts: -------------------------------------------------------------------------------- 1 | import { resources } from "./i18n"; 2 | 3 | declare module "react-i18next" { 4 | type DefaultResources = (typeof resources)["en"]; 5 | interface Resources extends DefaultResources {} 6 | } 7 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/db/model/auxiliary/OptionalBoolean.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.db.model.auxiliary; 2 | 3 | public enum OptionalBoolean { 4 | YES, 5 | NO, 6 | WOULD_NOT_SPECIFY; 7 | } 8 | -------------------------------------------------------------------------------- /frontend/src/app/utils/getNodeEnv.test.ts: -------------------------------------------------------------------------------- 1 | import getNodeEnv from "./getNodeEnv"; 2 | 3 | describe("getNodeEnv", () => { 4 | it("returns the node env", () => { 5 | expect(getNodeEnv()).toEqual(process.env.NODE_ENV); 6 | }); 7 | }); 8 | -------------------------------------------------------------------------------- /frontend/src/index.tsx: -------------------------------------------------------------------------------- 1 | import { createRoot } from "react-dom/client"; 2 | 3 | import { ReactApp } from "./App"; 4 | 5 | const rootElement = document.getElementById("root"); 6 | createRoot(rootElement as Element).render(); 7 | -------------------------------------------------------------------------------- /ops/services/metabase/database/main.tf: -------------------------------------------------------------------------------- 1 | resource "azurerm_postgresql_flexible_server_database" "metabase" { 2 | charset = "UTF8" 3 | collation = "en_US.utf8" 4 | name = "metabase" 5 | server_id = var.postgres_server_id 6 | } 7 | -------------------------------------------------------------------------------- /ops/services/metabase/service/_output.tf: -------------------------------------------------------------------------------- 1 | output "app_hostname" { 2 | value = azurerm_linux_web_app.metabase.default_hostname 3 | } 4 | 5 | output "azurerm_linux_web_app_metabase_id" { 6 | value = azurerm_linux_web_app.metabase.id 7 | } -------------------------------------------------------------------------------- /ops/services/pagerduty/_config.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_providers { 3 | pagerduty = { 4 | source = "pagerduty/pagerduty" 5 | version = "~> 2.14" 6 | } 7 | } 8 | required_version = "~> 1.9.6" 9 | } 10 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/db/model/auxiliary/DataHubUploadStatus.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.db.model.auxiliary; 2 | 3 | public enum DataHubUploadStatus { 4 | IN_PROGRESS, 5 | SUCCESS, 6 | FAIL; 7 | } 8 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/db/model/auxiliary/ResultUploadErrorSource.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.db.model.auxiliary; 2 | 3 | public enum ResultUploadErrorSource { 4 | REPORT_STREAM, 5 | SIMPLE_REPORT, 6 | } 7 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/db/model/auxiliary/SnomedConceptRecord.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.db.model.auxiliary; 2 | 3 | public record SnomedConceptRecord(String name, String code, TestResult displayName) {} 4 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/db/model/auxiliary/TestCorrectionStatus.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.db.model.auxiliary; 2 | 3 | public enum TestCorrectionStatus { 4 | ORIGINAL, 5 | CORRECTED, 6 | REMOVED; 7 | } 8 | -------------------------------------------------------------------------------- /backend/src/test/resources/deserialization/graphql-inputs/full.json: -------------------------------------------------------------------------------- 1 | { 2 | "operationName" : "thoracotomy", 3 | "query": "what is this thing called love?", 4 | "variables": { 5 | "eenie": 1, 6 | "meeney": 3, 7 | "miney": "Moe" 8 | } 9 | } -------------------------------------------------------------------------------- /backend/src/test/resources/graphql-test/facility-stats-query.graphql: -------------------------------------------------------------------------------- 1 | query GetFacilityStats($facilityId: ID!) { 2 | facilityStats(facilityId: $facilityId){ 3 | usersSingleAccessCount 4 | patientsSingleAccessCount 5 | } 6 | } -------------------------------------------------------------------------------- /frontend/src/app/__snapshots__/PilotApp.test.tsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`App should show error UI 1`] = ` 4 |
5 |

6 | Server connection error... 7 |

8 |
9 | `; 10 | -------------------------------------------------------------------------------- /backend/src/test/resources/graphql-test/facilities-query.graphql: -------------------------------------------------------------------------------- 1 | query GetFacilities( 2 | $showArchived: Boolean 3 | ) { 4 | facilities( 5 | showArchived: $showArchived 6 | ) { 7 | id 8 | name 9 | isDeleted 10 | } 11 | } -------------------------------------------------------------------------------- /frontend/src/app/__snapshots__/ReportingApp.test.tsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`App should show error UI 1`] = ` 4 |
5 |

6 | Server connection error... 7 |

8 |
9 | `; 10 | -------------------------------------------------------------------------------- /ops/services/app_gateway/_output.tf: -------------------------------------------------------------------------------- 1 | output "app_gateway_hostname" { 2 | value = azurerm_application_gateway.load_balancer 3 | sensitive = true 4 | } 5 | 6 | output "app_gateway_public_ip" { 7 | value = azurerm_public_ip.static_gateway.id 8 | } -------------------------------------------------------------------------------- /ops/services/basic_vm/_var.tf: -------------------------------------------------------------------------------- 1 | variable "name" {} 2 | variable "env" {} 3 | variable "resource_group_name" {} 4 | variable "resource_group_location" {} 5 | variable "tags" {} 6 | 7 | variable "subnet_id" {} 8 | variable "bastion_connect_password" {} 9 | -------------------------------------------------------------------------------- /backend/src/test/resources/graphql-test/patient-link-verify-query.graphql: -------------------------------------------------------------------------------- 1 | query patientLinkVerify($internalId: String!, $birthDate: LocalDate!) { 2 | patientLinkVerify(internalId: $internalId, birthDate: $birthDate) { 3 | internalId 4 | } 5 | } -------------------------------------------------------------------------------- /frontend/.stylelintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "stylelint-config-standard" 4 | ], 5 | "rules": { 6 | "at-rule-no-unknown": null, 7 | "declaration-empty-line-before": null, 8 | "no-descending-specificity": null 9 | } 10 | } -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/api/model/universalreporting/ResultScaleType.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.api.model.universalreporting; 2 | 3 | public enum ResultScaleType { 4 | QUANTITATIVE, 5 | ORDINAL, 6 | NOMINAL, 7 | } 8 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/db/model/auxiliary/TestResultDeliveryPreference.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.db.model.auxiliary; 2 | 3 | public enum TestResultDeliveryPreference { 4 | SMS, 5 | NONE, 6 | EMAIL, 7 | ALL; 8 | } 9 | -------------------------------------------------------------------------------- /frontend/.env.production: -------------------------------------------------------------------------------- 1 | PUBLIC_URL=/app/ 2 | REACT_APP_BASE_URL=https://${DEPLOY_ENV}.simplereport.gov 3 | REACT_APP_BACKEND_URL=${REACT_APP_BASE_URL}/api 4 | REACT_APP_OKTA_SCOPE=simple_report_${DEPLOY_ENV} 5 | REACT_APP_OKTA_TOKEN_ROLE_CLAIM=${DEPLOY_ENV}_roles -------------------------------------------------------------------------------- /frontend/src/app/commonComponents/ActionsMenu.scss: -------------------------------------------------------------------------------- 1 | .sr-actions-menu { 2 | color: #005ea2; 3 | background: inherit; 4 | padding: 0; 5 | border: 0; 6 | } 7 | 8 | .sr-menu-item { 9 | margin-top: 0.25em; 10 | margin-bottom: 0.25em; 11 | } 12 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/db/model/auxiliary/PersonRole.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.db.model.auxiliary; 2 | 3 | public enum PersonRole { 4 | STAFF, 5 | RESIDENT, 6 | STUDENT, 7 | VISITOR, 8 | UNKNOWN; 9 | } 10 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/service/supportescalation/SupportEscalationService.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.service.supportescalation; 2 | 3 | public interface SupportEscalationService { 4 | boolean sendEscalationMessage(); 5 | } 6 | -------------------------------------------------------------------------------- /backend/src/test/resources/graphql-test/update-user-email.graphql: -------------------------------------------------------------------------------- 1 | mutation updateUserEmail( 2 | $id: ID! 3 | $email: String 4 | ) { 5 | updateUserEmail( 6 | id: $id 7 | email: $email 8 | ) { 9 | id 10 | email 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /frontend/src/img/close.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /frontend/src/app/commonComponents/MaintenanceBanner.scss: -------------------------------------------------------------------------------- 1 | @use "../../scss/settings"; 2 | 3 | .maintenance-alert-background { 4 | background-color: #9c3d10; 5 | } 6 | 7 | .maintenance-alert-body { 8 | max-width: settings.$site-max-width !important; 9 | } 10 | -------------------------------------------------------------------------------- /ops/services/app_functions/report_stream_batched_publisher/infra/_output.tf: -------------------------------------------------------------------------------- 1 | output "azurerm_service_plan_asp_id" { 2 | value = azurerm_service_plan.asp.id 3 | } 4 | 5 | output "azurerm_linux_function_app_id" { 6 | value = azurerm_linux_function_app.functions.id 7 | } -------------------------------------------------------------------------------- /ops/services/app_functions/test_data_publisher/infra/_config.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_providers { 3 | azurerm = { 4 | source = "hashicorp/azurerm" 5 | version = "~> 3.100.0" 6 | } 7 | } 8 | required_version = "~> 1.9.6" 9 | } 10 | -------------------------------------------------------------------------------- /ops/services/container_instances/db_client/image/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.2" 2 | services: 3 | 4 | dbclient: 5 | build: 6 | context: . 7 | dockerfile: Dockerfile 8 | image: simple-report-db-client 9 | ports: 10 | - "5432:5432" -------------------------------------------------------------------------------- /backend/db-setup/reset-metabase-db.sql: -------------------------------------------------------------------------------- 1 | DROP SCHEMA IF EXISTS public CASCADE; 2 | 3 | CREATE SCHEMA IF NOT EXISTS public; 4 | GRANT ALL ON SCHEMA public TO postgres; 5 | GRANT ALL ON SCHEMA public TO public; 6 | GRANT ALL PRIVILEGES ON SCHEMA public TO simple_report_migrations; -------------------------------------------------------------------------------- /frontend/src/app/testQueue/TestQueue.scss: -------------------------------------------------------------------------------- 1 | @use "../../scss/settings"; 2 | 3 | .grid-container.queue-container-wide { 4 | max-width: settings.$site-max-width; 5 | } 6 | 7 | .prime-test-result { 8 | .usa-radio { 9 | white-space: nowrap; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /backend/db-setup/migrate-devices.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | here=$(dirname $BASH_SOURCE) 3 | export PGPASSFILE=${here}/.pgpass 4 | chmod 0600 $PGPASSFILE # git always botches this up 5 | psql -h localhost -p ${SR_DB_PORT:-5432} simple_report -U postgres -f ${here}/migrate-devices.sql 6 | -------------------------------------------------------------------------------- /backend/db-setup/nuke-db.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | here=$(dirname $BASH_SOURCE) 3 | export PGPASSFILE=${here}/.pgpass 4 | chmod 0600 $PGPASSFILE # git always botches this up 5 | psql -h ${SR_DB_HOST:-localhost} -p ${SR_DB_PORT:-5432} simple_report -U postgres -f ${here}/reset-db.sql 6 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/service/sms/SmsProviderWrapper.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.service.sms; 2 | 3 | import com.twilio.type.PhoneNumber; 4 | 5 | public interface SmsProviderWrapper { 6 | String send(PhoneNumber to, String message); 7 | } 8 | -------------------------------------------------------------------------------- /backend/src/test/resources/graphql-test/org-links-query.graphql: -------------------------------------------------------------------------------- 1 | query OrgLinks { 2 | whoami { 3 | organization { 4 | patientSelfRegistrationLink 5 | facilities { 6 | name 7 | patientSelfRegistrationLink 8 | } 9 | } 10 | } 11 | } -------------------------------------------------------------------------------- /cypress/.env.e2e.sample: -------------------------------------------------------------------------------- 1 | # Cypress secrets 2 | CYPRESS_OKTA_USERNAME= 3 | CYPRESS_OKTA_PASSWORD= 4 | CYPRESS_OKTA_SECRET= 5 | 6 | # Smarty streets secrets 7 | SMARTY_AUTH_ID= 8 | SMARTY_AUTH_TOKEN= 9 | 10 | # Backend url for manual http requests 11 | CYPRESS_BACKEND_URL= -------------------------------------------------------------------------------- /ops/services/app_functions/report_stream_batched_publisher/infra/_config.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_providers { 3 | azurerm = { 4 | source = "hashicorp/azurerm" 5 | version = "~> 3.100.0" 6 | } 7 | } 8 | required_version = "~> 1.9.6" 9 | } 10 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/service/model/Wrapper.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.service.model; 2 | 3 | /** Base interface for wrapper objects, to allow consistent mixin/facet design. */ 4 | public interface Wrapper { 5 | 6 | T getWrapped(); 7 | } 8 | -------------------------------------------------------------------------------- /frontend/src/app/commonComponents/USAGovBanner.scss: -------------------------------------------------------------------------------- 1 | @use "../../scss/settings"; 2 | 3 | @media print { 4 | .usa-banner { 5 | display: none; 6 | } 7 | } 8 | 9 | .usa-banner { 10 | .usa-banner__inner { 11 | max-width: settings.$site-max-width; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /frontend/src/app/testQueue/TestCardForm/TestCardForm.scss: -------------------------------------------------------------------------------- 1 | .no-left-border { 2 | border-left-width: 0 !important; 3 | padding-left: 0 !important; 4 | } 5 | 6 | .sr-test-card-form-container { 7 | .usa-label, 8 | .usa-legend { 9 | max-width: none; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/api/model/errors/DryRunException.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.api.model.errors; 2 | 3 | public class DryRunException extends RuntimeException { 4 | public DryRunException(String message) { 5 | super(message); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/db/model/auxiliary/ResultUploadErrorType.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.db.model.auxiliary; 2 | 3 | public enum ResultUploadErrorType { 4 | MISSING_HEADER, 5 | INVALID_DATA, 6 | MISSING_DATA, 7 | UNAVAILABLE_DISEASE 8 | } 9 | -------------------------------------------------------------------------------- /backend/src/test/resources/graphql-test/device-type-add.graphql: -------------------------------------------------------------------------------- 1 | mutation addDevice( 2 | $input: CreateDeviceType! 3 | ) { 4 | createDeviceType( 5 | input: $input 6 | ) { 7 | internalId 8 | name 9 | model 10 | manufacturer 11 | } 12 | } -------------------------------------------------------------------------------- /backend/src/test/resources/graphql-test/get-pending-organizations.graphql: -------------------------------------------------------------------------------- 1 | query getPendingOrganizations { 2 | pendingOrganizations { 3 | externalId 4 | name 5 | adminFirstName 6 | adminLastName 7 | adminEmail 8 | adminPhone 9 | createdAt 10 | } 11 | } -------------------------------------------------------------------------------- /backend/src/test/resources/graphql-test/update-facility-feature-flag.graphql: -------------------------------------------------------------------------------- 1 | mutation updateFacilityFeatureFlag($facilityId: ID!, $name: String!, $value: Boolean!){ 2 | updateFacilityFeatureFlag(facilityId: $facilityId, name: $name, value: $value){ 3 | name 4 | value 5 | } 6 | } -------------------------------------------------------------------------------- /frontend/src/app/commonComponents/ScrollToTopOnMount.tsx: -------------------------------------------------------------------------------- 1 | import { useEffect } from "react"; 2 | 3 | function ScrollToTopOnMount() { 4 | useEffect(() => { 5 | window.scrollTo(0, 0); 6 | }, []); 7 | 8 | return null; 9 | } 10 | 11 | export default ScrollToTopOnMount; 12 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/db/repository/ProviderRepository.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.db.repository; 2 | 3 | import gov.cdc.usds.simplereport.db.model.Provider; 4 | 5 | public interface ProviderRepository extends EternalAuditedEntityRepository {} 6 | -------------------------------------------------------------------------------- /backend/src/test/resources/graphql-test/device-type-update.graphql: -------------------------------------------------------------------------------- 1 | mutation updateDevice( 2 | $input: UpdateDeviceType! 3 | ) { 4 | updateDeviceType( 5 | input: $input 6 | ) { 7 | internalId 8 | name 9 | model 10 | manufacturer 11 | } 12 | } -------------------------------------------------------------------------------- /backend/src/test/resources/requests/organizationAccountRequest.json: -------------------------------------------------------------------------------- 1 | { 2 | "firstName": "Betty", 3 | "lastName": "Edwards", 4 | "email": "betty@mailinator.com", 5 | "workPhoneNumber": "+1 (969) 768-2863", 6 | "state": "TX", 7 | "name": "DFW", 8 | "type": "airport/Transit Station" 9 | } -------------------------------------------------------------------------------- /frontend/src/app/utils/email.ts: -------------------------------------------------------------------------------- 1 | // email utils 2 | export const emailIsValid = (emailAddress = "") => { 3 | return emailRegex.test(String(emailAddress).toLowerCase()); 4 | }; 5 | 6 | export const emailRegex = 7 | /^[a-zA-Z0-9_+&*-]+(?:\.[a-zA-Z0-9_+&*-]+)*@(?:[a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}$/; 8 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/db/model/auxiliary/HL7BatchMessage.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.db.model.auxiliary; 2 | 3 | import java.util.HashMap; 4 | 5 | public record HL7BatchMessage( 6 | String message, int recordsCount, HashMap reportedDiseases) {} 7 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/service/email/EmailProvider.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.service.email; 2 | 3 | import com.sendgrid.helpers.mail.Mail; 4 | import java.io.IOException; 5 | 6 | public interface EmailProvider { 7 | String send(Mail mail) throws IOException; 8 | } 9 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/db/model/auxiliary/FHIRBundleRecord.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.db.model.auxiliary; 2 | 3 | import java.util.HashMap; 4 | import java.util.List; 5 | 6 | public record FHIRBundleRecord(List serializedBundle, HashMap metadata) {} 7 | -------------------------------------------------------------------------------- /ops/services/okta-app/_data.tf: -------------------------------------------------------------------------------- 1 | data "okta_default_policy" "signon" { 2 | type = "OKTA_SIGN_ON" 3 | } 4 | 5 | // Link the CDC/USDS users to the application 6 | data "okta_group" "cdc_users" { 7 | name = "Prime Team Members" 8 | } 9 | 10 | data "okta_auth_server" "default" { 11 | name = "default" 12 | } -------------------------------------------------------------------------------- /backend/src/test/resources/graphql-test/set-organization-identity-verified.graphql: -------------------------------------------------------------------------------- 1 | mutation setOrganizationIdentityVerified( 2 | $externalId: String!, 3 | $verified: Boolean!, 4 | ){ 5 | setOrganizationIdentityVerified( 6 | externalId: $externalId 7 | verified: $verified 8 | ) 9 | } 10 | -------------------------------------------------------------------------------- /ops/services/postgres_db/_output.tf: -------------------------------------------------------------------------------- 1 | output "server_name" { 2 | value = azurerm_postgresql_flexible_server.db.name 3 | } 4 | 5 | output "server_id" { 6 | value = azurerm_postgresql_flexible_server.db.id 7 | } 8 | 9 | output "server_fqdn" { 10 | value = azurerm_postgresql_flexible_server.db.fqdn 11 | } 12 | -------------------------------------------------------------------------------- /backend/src/main/resources/application-okta-prod.yaml: -------------------------------------------------------------------------------- 1 | # Bean profile to be included in deployment-specific profiles 2 | # for PRODUCTION ONLY. 3 | okta: 4 | oauth2: 5 | client-id: 0oa5ahrdfSpxmNZO74h6 6 | simple-report: 7 | authorization: 8 | role-claim: prod_roles 9 | environment-name: "PROD" 10 | -------------------------------------------------------------------------------- /backend/src/main/resources/application-okta-stg.yaml: -------------------------------------------------------------------------------- 1 | # Bean profile to be included in deployment-specific profiles 2 | # for STAGING deployments. 3 | okta: 4 | oauth2: 5 | client-id: 0oa62qncijWSeQMuc4h6 6 | simple-report: 7 | authorization: 8 | role-claim: stg_roles 9 | environment-name: "STG" 10 | -------------------------------------------------------------------------------- /backend/src/test/resources/graphql-test/dashboard-metrics.graphql: -------------------------------------------------------------------------------- 1 | query GetTopLevelDashboardMetrics($facilityId: ID, $startDate: DateTime!, $endDate: DateTime!) { 2 | topLevelDashboardMetrics(facilityId: $facilityId, startDate: $startDate, endDate: $endDate) { 3 | positiveTestCount 4 | totalTestCount 5 | } 6 | } -------------------------------------------------------------------------------- /frontend/codegen.yml: -------------------------------------------------------------------------------- 1 | overwrite: true 2 | schema: "../backend/src/main/resources/graphql/*.graphqls" 3 | documents: "./src/app/**/*.{ts,tsx,graphql}" 4 | generates: 5 | src/generated/graphql.tsx: 6 | plugins: 7 | - "typescript" 8 | - "typescript-operations" 9 | - "typescript-react-apollo" 10 | -------------------------------------------------------------------------------- /backend/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip 4 | networkTimeout=10000 5 | validateDistributionUrl=true 6 | zipStoreBase=GRADLE_USER_HOME 7 | zipStorePath=wrapper/dists 8 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/service/model/ExistingPatientCheckRequestBody.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.service.model; 2 | 3 | import java.time.LocalDate; 4 | 5 | public record ExistingPatientCheckRequestBody( 6 | String firstName, String lastName, LocalDate birthDate, String postalCode) {} 7 | -------------------------------------------------------------------------------- /frontend/src/scss/components/_link.scss: -------------------------------------------------------------------------------- 1 | @use "../settings" as *; 2 | @use "@uswds/uswds/packages/usa-link"; 3 | 4 | .sr-link__primary { 5 | @extend .usa-link; 6 | 7 | @include u-text('semibold'); 8 | @include u-text('no-underline'); 9 | 10 | &:hover { 11 | @include u-text('underline'); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /frontend/src/app/universalReporting/ReviewFormSection.scss: -------------------------------------------------------------------------------- 1 | .review-form { 2 | table, 3 | th, 4 | td { 5 | border-top: none !important; 6 | border-bottom: 1px solid #dfe1e2 !important; 7 | line-height: 1; 8 | } 9 | 10 | td:first-child { 11 | width: 18rem; 12 | padding-left: 0; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/db/model/Eternal.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.db.model; 2 | 3 | /** Marker interface for an entity that gets soft-deleted when it is "destroyed". */ 4 | public interface Eternal { 5 | 6 | boolean getIsDeleted(); 7 | 8 | void setIsDeleted(boolean deleted); 9 | } 10 | -------------------------------------------------------------------------------- /backend/src/main/resources/application-okta-training.yaml: -------------------------------------------------------------------------------- 1 | # Bean profile to be included in deployment-specific profiles 2 | # for PENTEST deployments. 3 | okta: 4 | oauth2: 5 | client-id: 0oa75lmsiCml0JCCQ4h6 6 | simple-report: 7 | authorization: 8 | role-claim: training_roles 9 | environment-name: "TRAINING" 10 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/db/repository/UploadDiseaseDetailsRepository.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.db.repository; 2 | 3 | import gov.cdc.usds.simplereport.db.model.UploadDiseaseDetails; 4 | 5 | public interface UploadDiseaseDetailsRepository 6 | extends AuditedEntityRepository {} 7 | -------------------------------------------------------------------------------- /frontend/.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | /build 3 | /src/styles/* 4 | /.env.local 5 | /.env.*.local 6 | .eslintcache 7 | yarn-error.log 8 | coverage 9 | geckodriver.log 10 | chromedriver.log 11 | tests_output/ 12 | storybook-static 13 | build-storybook.log 14 | /storybook_public 15 | maintenance.json 16 | diff.txt 17 | 18 | wiremock*.jar -------------------------------------------------------------------------------- /frontend/src/app/commonComponents/LabeledText.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | const LabeledText = (props: { 4 | label: string; 5 | text?: string | null; 6 | }): React.ReactElement => ( 7 | <> 8 | {props.label} 9 |

{props.text}

10 | 11 | ); 12 | 13 | export default LabeledText; 14 | -------------------------------------------------------------------------------- /frontend/src/app/testResults/HeaderSizeFix.scss: -------------------------------------------------------------------------------- 1 | .header-size-fix { 2 | h1 { 3 | font-size: 24px; 4 | } 5 | 6 | h2 { 7 | font-size: 18.75px; 8 | } 9 | 10 | h3 { 11 | font-size: 16px; 12 | } 13 | 14 | h4 { 15 | font-size: 13.28px; 16 | } 17 | 18 | h5 { 19 | font-size: 10.72px; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /ops/services/nat_gateway/_var.tf: -------------------------------------------------------------------------------- 1 | variable "name" {} 2 | variable "env" {} 3 | variable "resource_group_name" {} 4 | variable "resource_group_location" {} 5 | variable "tags" {} 6 | variable "subnet_webapp_id" {} 7 | variable "subnet_lb_id" {} 8 | 9 | variable "zones" { 10 | type = list(string) 11 | default = ["1", "2", "3"] 12 | } -------------------------------------------------------------------------------- /backend/src/test/resources/graphql-test/reset-user-mfa.graphql: -------------------------------------------------------------------------------- 1 | mutation resetUserMfa ( 2 | $id: ID! 3 | ){ 4 | resetUserMfa( 5 | id: $id 6 | ) { 7 | id 8 | firstName, 9 | lastName, 10 | email, 11 | organization { 12 | name 13 | externalId 14 | } 15 | } 16 | } 17 | 18 | -------------------------------------------------------------------------------- /frontend/src/app/commonComponents/CopyTooltip.tsx: -------------------------------------------------------------------------------- 1 | const CopyTooltip = () => { 2 | return ( 3 | 7 | Copied! 8 | 9 | ); 10 | }; 11 | 12 | export default CopyTooltip; 13 | -------------------------------------------------------------------------------- /backend/src/test/resources/patientBulkUpload/validRequiredOnly.csv: -------------------------------------------------------------------------------- 1 | last_name,first_name,race,date_of_birth,biological_sex,ethnicity,street,state,zip_code,phone_number,phone_number_type,employed_in_healthcare,resident_congregate_setting 2 | Doe,Jane,black or african american,01/01/90,female,Not Hispanic or Latino,1 main st,AK,99551,410-867-5309,mobile,Y,n -------------------------------------------------------------------------------- /frontend/src/app/patients/TestResultDeliveryPreference.ts: -------------------------------------------------------------------------------- 1 | export const TestResultDeliveryPreferences = { 2 | SMS: "SMS", 3 | EMAIL: "EMAIL", 4 | NONE: "NONE", 5 | ALL: "ALL", 6 | } as const; 7 | 8 | export type TestResultDeliveryPreference = 9 | (typeof TestResultDeliveryPreferences)[keyof typeof TestResultDeliveryPreferences]; 10 | -------------------------------------------------------------------------------- /ops/global/acr.tf: -------------------------------------------------------------------------------- 1 | resource "azurerm_container_registry" "sr" { 2 | location = data.azurerm_resource_group.rg.location 3 | name = "simplereportacr" 4 | resource_group_name = data.azurerm_resource_group.rg.name 5 | sku = "Standard" 6 | admin_enabled = true 7 | 8 | tags = local.management_tags 9 | } -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/api/model/FacilityStats.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.api.model; 2 | 3 | import lombok.Builder; 4 | import lombok.Getter; 5 | 6 | @Getter 7 | @Builder 8 | public class FacilityStats { 9 | private Integer usersSingleAccessCount; 10 | private Integer patientsSingleAccessCount; 11 | } 12 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/api/model/accountrequest/AccountResponse.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.api.model.accountrequest; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | @AllArgsConstructor 7 | @Getter 8 | public class AccountResponse { 9 | private final String orgExternalId; 10 | } 11 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/service/model/TimezoneInfo.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.service.model; 2 | 3 | import lombok.Builder; 4 | 5 | @Builder 6 | public class TimezoneInfo { 7 | public final String timezoneCommonName; 8 | public final int utcOffset; 9 | public final boolean obeysDaylightSavings; 10 | } 11 | -------------------------------------------------------------------------------- /frontend/src/app/analytics/TouchpointsButton.tsx: -------------------------------------------------------------------------------- 1 | import "./TouchpointsButton.scss"; 2 | 3 | const TouchpointsButton: React.FC = () => { 4 | return ( 5 | 8 | ); 9 | }; 10 | 11 | export default TouchpointsButton; 12 | -------------------------------------------------------------------------------- /frontend/src/app/commonComponents/Required.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | const Required = (props: { label?: React.ReactNode }) => ( 4 | <> 5 | {props.label} 6 | 7 | {props.label && " "}* 8 | 9 | 10 | ); 11 | 12 | export default Required; 13 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/db/model/LocatedEntity.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.db.model; 2 | 3 | import gov.cdc.usds.simplereport.db.model.auxiliary.StreetAddress; 4 | 5 | /** Marker interface for an entity that has a street address */ 6 | public interface LocatedEntity { 7 | 8 | StreetAddress getAddress(); 9 | } 10 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/db/model/PersonEntity.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.db.model; 2 | 3 | import gov.cdc.usds.simplereport.db.model.auxiliary.PersonName; 4 | 5 | /** Marker interface for entities that represent a person with a name. */ 6 | public interface PersonEntity { 7 | 8 | PersonName getNameInfo(); 9 | } 10 | -------------------------------------------------------------------------------- /backend/src/test/resources/deserialization/http-request-details/full.json: -------------------------------------------------------------------------------- 1 | { 2 | "serverName":"my.private.cloud", 3 | "remoteAddress":"192.168.33.23", 4 | "forwardedAddresses":["192.168.251.2:80","10.240.32.158:443", "127.138.220.0:80"], 5 | "forwardedProtocol":"gopher", 6 | "originalHostName":"simplereport.int", 7 | "requestUri":"/die/die/die" 8 | } 9 | -------------------------------------------------------------------------------- /backend/src/test/resources/graphql-test/reset-user-password.graphql: -------------------------------------------------------------------------------- 1 | mutation resetUserPassword ( 2 | $id: ID! 3 | ){ 4 | resetUserPassword( 5 | id: $id 6 | ) { 7 | id 8 | firstName, 9 | lastName, 10 | email, 11 | organization { 12 | name 13 | externalId 14 | } 15 | } 16 | } 17 | 18 | -------------------------------------------------------------------------------- /frontend/src/app/testQueue/addToQueue/types.ts: -------------------------------------------------------------------------------- 1 | import { PregnancyCode } from "../../../patientApp/timeOfTest/constants"; 2 | 3 | export interface AoEAnswersDelivery { 4 | noSymptoms: boolean; 5 | symptoms: string; 6 | symptomOnset: ISODate | null | undefined; 7 | pregnancy: PregnancyCode | undefined; 8 | testResultDelivery: string; 9 | } 10 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/api/model/accountrequest/OrganizationAccountResponse.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.api.model.accountrequest; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | @AllArgsConstructor 7 | @Getter 8 | public class OrganizationAccountResponse { 9 | String orgExternalId; 10 | } 11 | -------------------------------------------------------------------------------- /backend/db-setup/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM postgres:14.19-alpine3.22 2 | 3 | RUN apk add py3-pip postgresql-libs gcc musl-dev postgresql-dev make 4 | COPY ./requirements.txt /usr/local/lib/requirements.txt 5 | COPY ./generate_db_data.py /usr/local/lib/generate_db_data.py 6 | RUN pip3 install -r /usr/local/lib/requirements.txt --break-system-packages 7 | WORKDIR /usr/local/lib/ 8 | -------------------------------------------------------------------------------- /backend/src/test/resources/graphql-test/resend-activation-email.graphql: -------------------------------------------------------------------------------- 1 | mutation resendActivationEmail ( 2 | $id: ID! 3 | ){ 4 | resendActivationEmail( 5 | id: $id 6 | ) { 7 | id 8 | firstName, 9 | lastName, 10 | email, 11 | organization { 12 | name 13 | externalId 14 | } 15 | } 16 | } 17 | 18 | -------------------------------------------------------------------------------- /frontend/src/app/commonComponents/USAGovBanner.stories.tsx: -------------------------------------------------------------------------------- 1 | import { Meta } from "@storybook/react-webpack5"; 2 | 3 | import USAGovBanner from "./USAGovBanner"; 4 | 5 | export default { 6 | title: "Components/USA Gov Banner", 7 | component: USAGovBanner, 8 | } as Meta; 9 | 10 | export const Default: React.VFC<{}> = (args) => ; 11 | -------------------------------------------------------------------------------- /backend/db-setup/snapshot-db.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | here=$(dirname $BASH_SOURCE) 4 | export PGPASSFILE=${here}/.pgpass 5 | chmod 0600 $PGPASSFILE # git always botches this up 6 | mkdir -p ${here}/snapshots 7 | 8 | pg_dump -h ${SR_DB_HOST:-localhost} -p ${SR_DB_PORT:-5432} simple_report -U postgres -f ${here}/snapshots/${SR_DB_HOST:-localhost}-$(date +%Y-%m-%dT%H%M%S).sql 9 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/api/model/TopLevelDashboardMetrics.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.api.model; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | @AllArgsConstructor 7 | @Getter 8 | public class TopLevelDashboardMetrics { 9 | private long positiveTestCount; 10 | private long totalTestCount; 11 | } 12 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/service/model/IdentitySupplier.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.service.model; 2 | 3 | import java.util.function.Supplier; 4 | 5 | /** 6 | * Specialization for a lambda function that tells us what we want to know about the current user. 7 | */ 8 | public interface IdentitySupplier extends Supplier {} 9 | -------------------------------------------------------------------------------- /backend/src/test/resources/graphql-test/patient-link-submit.graphql: -------------------------------------------------------------------------------- 1 | mutation patientLinkSubmit($internalId: String!, $birthDate: LocalDate!, $symptoms: String!, $symptomOnsetDate: LocalDate!) { 2 | patientLinkSubmit( 3 | internalId: $internalId, 4 | birthDate: $birthDate, 5 | symptoms: $symptoms, 6 | symptomOnset: $symptomOnsetDate 7 | ) 8 | } -------------------------------------------------------------------------------- /backend/src/test/resources/patientBulkUpload/missingHeaders.csv: -------------------------------------------------------------------------------- 1 | Doe,Jane,,,black or african american,11/3/1980,Female,not hispanic or latino,1234 Main Street,,Anchorage,,AK,99501,410-867-5309,mobile,No,No,Staff,jane@testingorg.com 2 | Samuels,Sally,,,white,8/15/1985,Female,hispanic or latino,987 Main Street,,Anchorage,,AK,99501,410-867-1111,mobile,No,No,Staff,sally@testingorg.com -------------------------------------------------------------------------------- /ops/services/app_functions/report_stream_batched_publisher/functions/jest.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('ts-jest/dist/types').InitialOptionsTsJest} */ 2 | module.exports = { 3 | preset: "ts-jest", 4 | testEnvironment: "node", 5 | moduleNameMapper: { 6 | "^csv-stringify/sync": 7 | "/node_modules/csv-stringify/dist/cjs/sync.cjs", 8 | }, 9 | }; 10 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .vscode 2 | .DS_Store 3 | .idea/ 4 | *.iml 5 | *.tfvars 6 | node_modules 7 | *.swp 8 | *.swo 9 | *.orig 10 | *.rej 11 | /.env 12 | /.env.local 13 | certs/ 14 | yarn-error.log 15 | backend/locust/__pycache__/ 16 | cypress/cypress.env.json 17 | frontend/src/.env.local 18 | .run/Backend.run.xml 19 | .run/Frontend.run.xml 20 | .tool-versions 21 | **/application-local* -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/api/InternalIdResolver.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.api; 2 | 3 | import gov.cdc.usds.simplereport.db.model.DatabaseEntity; 4 | import java.util.UUID; 5 | 6 | /** Resolver mix-in to alias "id" to "internalId" */ 7 | public interface InternalIdResolver { 8 | UUID getId(T entity); 9 | } 10 | -------------------------------------------------------------------------------- /cypress/eslint.config.mjs: -------------------------------------------------------------------------------- 1 | import cypress from "eslint-plugin-cypress"; 2 | 3 | export default [ 4 | { 5 | plugins: { 6 | cypress: cypress, 7 | }, 8 | languageOptions: { 9 | globals: { 10 | ...cypress.globals, 11 | }, 12 | }, 13 | rules: { 14 | "cypress/require-data-selectors": "warn", 15 | }, 16 | }, 17 | ]; 18 | -------------------------------------------------------------------------------- /cypress/utils/request-utils.js: -------------------------------------------------------------------------------- 1 | export const frontendURL = `${ 2 | Cypress.env("REACT_APP_BASE_URL") || "https://localhost.simplereport.gov/app" 3 | }/`; 4 | const backendURL = Cypress.env("BACKEND_URL") || "http://localhost:8080"; 5 | export const graphqlURL = `${backendURL}/graphql`; 6 | export const addOrgToQueueURL = `${backendURL}/account-request/organization-add-to-queue`; 7 | -------------------------------------------------------------------------------- /frontend/src/app/patients/Components/PersonForm.scss: -------------------------------------------------------------------------------- 1 | .prime-edit-patient { 2 | .sr-add-another-button { 3 | column-gap: 0; 4 | } 5 | 6 | .sr-patient-sub-header { 7 | font-weight: bold; 8 | display: block; 9 | margin-block-start: 1.33em; 10 | margin-block-end: 1.33em; 11 | margin-inline-start: 0; 12 | margin-inline-end: 0; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /frontend/src/img/search--white.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/db/model/auxiliary/MultiplexResultInput.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.db.model.auxiliary; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | @AllArgsConstructor 7 | @Getter 8 | public class MultiplexResultInput { 9 | private String diseaseName; 10 | private TestResult testResult; 11 | } 12 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/api/model/useraccountcreation/FactorAndQrCode.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.api.model.useraccountcreation; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | @Getter 7 | @AllArgsConstructor 8 | public class FactorAndQrCode { 9 | private String factorId; 10 | 11 | private String qrcode; 12 | } 13 | -------------------------------------------------------------------------------- /backend/src/test/resources/attachments/test-document.pdf: -------------------------------------------------------------------------------- 1 | %PDF-1.0 2 | 1 0 obj<>endobj 2 0 obj<>endobj 3 0 obj<>endobj 3 | xref 4 | 0 4 5 | 0000000000 65535 f 6 | 0000000010 00000 n 7 | 0000000053 00000 n 8 | 0000000102 00000 n 9 | trailer<> 10 | startxref 11 | 149 12 | %EOF 13 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/db/repository/FeatureFlagRepository.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.db.repository; 2 | 3 | import gov.cdc.usds.simplereport.db.model.FeatureFlag; 4 | import java.util.Optional; 5 | 6 | public interface FeatureFlagRepository extends AuditedEntityRepository { 7 | Optional findFeatureFlagByName(String name); 8 | } 9 | -------------------------------------------------------------------------------- /backend/src/test/resources/graphql-test/organization-query.graphql: -------------------------------------------------------------------------------- 1 | query organization ($id: ID!){ 2 | organization(id: $id) { 3 | internalId 4 | name 5 | type 6 | externalId 7 | identityVerified 8 | patientSelfRegistrationLink 9 | facilities{ 10 | id 11 | name 12 | } 13 | id 14 | } 15 | } -------------------------------------------------------------------------------- /frontend/src/app/Settings/Facility/Components/OrderingProvider.scss: -------------------------------------------------------------------------------- 1 | #ordering-provider-list { 2 | .usa-form-group { 3 | margin: 0; 4 | } 5 | 6 | .usa-checkbox__label { 7 | margin-top: 0; 8 | } 9 | 10 | .provider-row { 11 | padding: 16px 0; 12 | } 13 | 14 | .sr-provider-edit-link { 15 | text-decoration: none; 16 | font-weight: 600; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@arkweid/lefthook@^0.7.7": 6 | version "0.7.7" 7 | resolved "https://registry.yarnpkg.com/@arkweid/lefthook/-/lefthook-0.7.7.tgz#12951b09b955d8054885ffe929aa07a49f39027c" 8 | integrity sha512-Eq30OXKmjxIAIsTtbX2fcF3SNZIXS8yry1u8yty7PQFYRctx04rVlhOJCEB2UmfTh8T2vrOMC9IHHUvvo5zbaQ== 9 | -------------------------------------------------------------------------------- /frontend/src/app/commonComponents/RequiredMessage.stories.tsx: -------------------------------------------------------------------------------- 1 | import { Meta } from "@storybook/react-webpack5"; 2 | 3 | import RequiredMessage from "./RequiredMessage"; 4 | 5 | export default { 6 | title: "Components/Form controls/Required message", 7 | component: RequiredMessage, 8 | } as Meta; 9 | 10 | export const Default: React.VFC<{}> = (args) => ; 11 | -------------------------------------------------------------------------------- /frontend/src/app/testResults/mocks/patients.mock.tsx: -------------------------------------------------------------------------------- 1 | export const patients = [ 2 | { 3 | internalId: "48c523e8-7c65-4047-955c-e3f65bb8b58a", 4 | firstName: "Barb", 5 | middleName: "Whitaker", 6 | lastName: "Cragell", 7 | birthDate: "1960-11-07", 8 | gender: "male", 9 | role: "RESIDENT", 10 | lookupId: null, 11 | __typename: "Patient", 12 | }, 13 | ]; 14 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/api/model/AddressInput.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.api.model; 2 | 3 | import lombok.Builder; 4 | import lombok.Getter; 5 | 6 | @Getter 7 | @Builder 8 | public class AddressInput { 9 | private String street; 10 | private String streetTwo; 11 | private String city; 12 | private String state; 13 | private String zipCode; 14 | } 15 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/api/model/ReportStreamCallbackRequest.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.api.model; 2 | 3 | import java.util.UUID; 4 | import lombok.Getter; 5 | 6 | @Getter 7 | public class ReportStreamCallbackRequest { 8 | private UUID testEventInternalId; 9 | private Boolean isError; 10 | private String details; 11 | private String queueName; 12 | } 13 | -------------------------------------------------------------------------------- /docker-compose.ci.yml: -------------------------------------------------------------------------------- 1 | services: 2 | backend: 3 | environment: 4 | SPRING_PROFILES_ACTIVE: dev,db-dockerized 5 | SPRING_LIQUIBASE_ENABLED: "true" 6 | GIT_DISCOVERY_ACROSS_FILESYSTEM: 1 7 | frontend: 8 | image: ghcr.io/cdcgov/prime-simplereport/frontend-lighthouse:${DOCKER_FRONTEND_LIGHTHOUSE_IMAGE_VERSION:-latest} 9 | mailhog: 10 | profiles: 11 | - donotstart -------------------------------------------------------------------------------- /frontend/src/app/testResults/viewResults/actionMenuModals/EmailTestResultModal.scss: -------------------------------------------------------------------------------- 1 | .email-test-result-modal-content { 2 | background: #fff; 3 | max-width: 30em; 4 | max-height: 90vh; 5 | padding: 28px 24px; 6 | 7 | .body { 8 | font-size: 16px; 9 | padding-bottom: 20px; 10 | 11 | .text { 12 | color: #565c65; 13 | padding-bottom: 20px; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /ops/services/app_service_autoscale/_var.tf: -------------------------------------------------------------------------------- 1 | variable "name" {} 2 | variable "env" {} 3 | variable "resource_group_name" {} 4 | variable "resource_group_location" {} 5 | variable "tags" {} 6 | 7 | variable "target_resource_id" { 8 | type = string 9 | } 10 | 11 | variable "peak_capacity_instances" { 12 | default = 1 13 | } 14 | 15 | variable "weekend_capacity_instances" { 16 | default = 1 17 | } -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/api/model/errors/NoDataLoaderFoundException.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.api.model.errors; 2 | 3 | public class NoDataLoaderFoundException extends IllegalStateException { 4 | public static final long serialVersionUID = 1L; 5 | 6 | public NoDataLoaderFoundException(String type) { 7 | super("No DataLoader found: " + type); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/db/model/DatabaseEntity.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.db.model; 2 | 3 | import java.util.UUID; 4 | 5 | /** 6 | * Common interface to say "this is a thing we store in the database". Already being lightly abused, 7 | * and I haven't even committed it yet. 8 | */ 9 | public interface DatabaseEntity { 10 | 11 | UUID getInternalId(); 12 | } 13 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/api/model/CreateSpecimenType.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.api.model; 2 | 3 | import lombok.Builder; 4 | import lombok.Getter; 5 | 6 | @Getter 7 | @Builder 8 | public class CreateSpecimenType { 9 | public String name; 10 | public String typeCode; 11 | public String collectionLocationName; 12 | public String collectionLocationCode; 13 | } 14 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/service/errors/InvalidAddressException.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.service.errors; 2 | 3 | import java.io.Serial; 4 | 5 | public class InvalidAddressException extends RuntimeException { 6 | @Serial private static final long serialVersionUID = 1L; 7 | 8 | public InvalidAddressException(String message) { 9 | super(message); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /frontend/src/app/commonComponents/LinkWithQuery.tsx: -------------------------------------------------------------------------------- 1 | import { NavLink, NavLinkProps, useLocation } from "react-router-dom"; 2 | 3 | export const LinkWithQuery: React.FC = ({ 4 | children, 5 | to, 6 | ...props 7 | }) => { 8 | const { search } = useLocation(); 9 | 10 | return ( 11 | 12 | {children} 13 | 14 | ); 15 | }; 16 | -------------------------------------------------------------------------------- /frontend/src/app/utils/jestHelpers.tsx: -------------------------------------------------------------------------------- 1 | import { ReactElement } from "react"; 2 | import { render } from "@testing-library/react"; 3 | import userEvent from "@testing-library/user-event"; 4 | 5 | /** 6 | * Setups userEvent and renders a component 7 | */ 8 | export function setup(component: ReactElement) { 9 | return { 10 | user: userEvent.setup(), 11 | ...render(component), 12 | }; 13 | } 14 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/service/model/reportstream/TokenResponse.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.service.model.reportstream; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | @Getter 8 | @Setter 9 | public class TokenResponse { 10 | @JsonProperty("access_token") 11 | private String accessToken; 12 | } 13 | -------------------------------------------------------------------------------- /backend/src/test/resources/patientBulkUpload/missingRequiredFields.csv: -------------------------------------------------------------------------------- 1 | last_name,first_name,middle_name,suffix,race,date_of_birth,biological_sex,ethnicity,street,street_2,city,county,state,zip_code,phone_number,phone_number_type,employed_in_healthcare,resident_congregate_setting,role,email 2 | Doe,Jane,,,"",11/3/1980,Female,"",1234 Main Street,,Anchorage,,AK,99501,410-867-5309,landline,No,No,Staff,jane@testingorg.com 3 | -------------------------------------------------------------------------------- /frontend/src/app/analytics/operations.graphql: -------------------------------------------------------------------------------- 1 | query GetTopLevelDashboardMetricsNew( 2 | $facilityId: ID 3 | $startDate: DateTime 4 | $endDate: DateTime 5 | $disease: String 6 | ) { 7 | topLevelDashboardMetrics( 8 | facilityId: $facilityId 9 | startDate: $startDate 10 | endDate: $endDate 11 | disease: $disease 12 | ) { 13 | positiveTestCount 14 | totalTestCount 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /frontend/src/app/supportAdmin/Components/SeparatorLine.tsx: -------------------------------------------------------------------------------- 1 | import "./SeparatorLine.scss"; 2 | import React from "react"; 3 | import classnames from "classnames"; 4 | 5 | interface Props { 6 | classNames?: string; 7 | } 8 | const SeparatorLine: React.FC = ({ classNames }) => { 9 | return
; 10 | }; 11 | 12 | export default SeparatorLine; 13 | -------------------------------------------------------------------------------- /frontend/src/app/testResults/mocks/facilities.mock.tsx: -------------------------------------------------------------------------------- 1 | export const facilities = [ 2 | { 3 | id: "1", 4 | name: "Facility 1", 5 | isDeleted: false, 6 | }, 7 | { 8 | id: "2", 9 | name: "Facility 2", 10 | isDeleted: false, 11 | }, 12 | ]; 13 | 14 | export const facilitiesIncludeArchived = facilities.concat({ 15 | id: "3", 16 | name: "Facility 3", 17 | isDeleted: true, 18 | }); 19 | -------------------------------------------------------------------------------- /ops/services/app_functions/test_data_publisher/functions/host.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "2.0", 3 | "logging": { 4 | "applicationInsights": { 5 | "samplingSettings": { 6 | "isEnabled": true, 7 | "excludedTypes": "Request" 8 | } 9 | } 10 | }, 11 | "extensionBundle": { 12 | "id": "Microsoft.Azure.Functions.ExtensionBundle", 13 | "version": "[3.3.0, 4.0.0)" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /frontend/src/app/patients/UploadPatients.scss: -------------------------------------------------------------------------------- 1 | .thick-bottom-border { 2 | border-bottom-width: 4px !important; 3 | width: 300px; 4 | } 5 | 6 | .maxw-710 { 7 | max-width: 44.375rem; 8 | } 9 | 10 | .maxw-560 { 11 | max-width: 35rem; 12 | } 13 | 14 | .prime-radio--horizontal__container { 15 | margin-right: 0.75rem !important; 16 | } 17 | 18 | .line-height-225 { 19 | line-height: 2.25rem !important; 20 | } 21 | -------------------------------------------------------------------------------- /frontend/src/app/supportAdmin/PendingOrganizations/utils.tsx: -------------------------------------------------------------------------------- 1 | export interface PendingOrganizationFormValues { 2 | name: string; 3 | adminFirstName: string | undefined; 4 | adminLastName: string | undefined; 5 | adminEmail: string | undefined; 6 | adminPhone: string | undefined; 7 | } 8 | 9 | export interface EditOrgMutationResponse { 10 | data: { 11 | editPendingOrganization: string; 12 | }; 13 | } 14 | -------------------------------------------------------------------------------- /backend/locust/locustfile.py: -------------------------------------------------------------------------------- 1 | import time 2 | from locust import HttpUser, task, between 3 | 4 | class QuickstartSimpleReport(HttpUser): 5 | root_url = "http://backend:8080" 6 | 7 | @task 8 | def health_test(self): 9 | self.client.get(QuickstartSimpleReport.root_url) 10 | 11 | # Runs at the start of each test. Useful for authentication and setup actions. 12 | def on_start(self): 13 | pass 14 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/api/PersonNameResolver.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.api; 2 | 3 | import gov.cdc.usds.simplereport.db.model.PersonEntity; 4 | import gov.cdc.usds.simplereport.db.model.auxiliary.PersonName; 5 | 6 | /** Resolver mix-in to handle aliasing "nameInfo" to "name" */ 7 | public interface PersonNameResolver { 8 | PersonName getName(T entity); 9 | } 10 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/service/model/SmsAPICallResult.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.service.model; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Getter; 6 | 7 | @AllArgsConstructor 8 | @Builder 9 | @Getter 10 | public class SmsAPICallResult { 11 | private String telephone; 12 | private String messageId; 13 | private boolean successful; 14 | } 15 | -------------------------------------------------------------------------------- /frontend/src/app/VersionEnforcer.tsx: -------------------------------------------------------------------------------- 1 | import { useEffect } from "react"; 2 | import { useLocation } from "react-router-dom"; 3 | 4 | import { VersionService } from "./VersionService"; 5 | 6 | const VersionEnforcer = () => { 7 | const location = useLocation(); 8 | 9 | useEffect(() => { 10 | VersionService.enforce(); 11 | }, [location]); 12 | 13 | return null; 14 | }; 15 | 16 | export default VersionEnforcer; 17 | -------------------------------------------------------------------------------- /ops/services/alerts/app_service_metrics/data.tf: -------------------------------------------------------------------------------- 1 | data "azurerm_resource_group" "management" { 2 | name = "prime-simple-report-management" 3 | } 4 | 5 | data "azurerm_resource_group" "app" { 6 | name = var.rg_name 7 | } 8 | 9 | data "azurerm_log_analytics_workspace" "global" { 10 | name = "simple-report-log-workspace-global" 11 | resource_group_name = data.azurerm_resource_group.management.name 12 | } 13 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/api/model/useraccountcreation/FactorAndActivation.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.api.model.useraccountcreation; 2 | 3 | import java.util.Map; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Getter; 6 | 7 | @Getter 8 | @AllArgsConstructor 9 | public class FactorAndActivation { 10 | private String factorId; 11 | 12 | private Map activation; 13 | } 14 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/db/model/auxiliary/TestResultWithCount.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.db.model.auxiliary; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | /** The results from a group by when getting dashboard metrics */ 7 | @AllArgsConstructor 8 | @Getter 9 | public class TestResultWithCount { 10 | private TestResult result; 11 | private Long count; 12 | } 13 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/db/repository/PatientLinkFailedAttemptRepository.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.db.repository; 2 | 3 | import gov.cdc.usds.simplereport.db.model.PatientLinkFailedAttempt; 4 | import java.util.UUID; 5 | import org.springframework.data.repository.CrudRepository; 6 | 7 | public interface PatientLinkFailedAttemptRepository 8 | extends CrudRepository {} 9 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/service/ReportStreamCallbackService.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.service; 2 | 3 | import gov.cdc.usds.simplereport.db.model.ReportStreamResponse; 4 | import jakarta.servlet.http.HttpServletRequest; 5 | 6 | public interface ReportStreamCallbackService { 7 | boolean validateCallback(HttpServletRequest request); 8 | 9 | void log(ReportStreamResponse response); 10 | } 11 | -------------------------------------------------------------------------------- /backend/src/test/resources/patientBulkUpload/invalidValues.csv: -------------------------------------------------------------------------------- 1 | last_name,first_name,middle_name,suffix,race,date_of_birth,biological_sex,ethnicity,street,street_2,city,county,state,zip_code,country,phone_number,phone_number_type,employed_in_healthcare,resident_congregate_setting,role,email 2 | Doe,Jane,,,african american,11/3/8,androgynous,latinx,1234 Main Street,,Anchorage,,Alaska,1234,America,4108675309,cell,n/a,group home,doctor,janedoe.com -------------------------------------------------------------------------------- /backend/src/test/resources/patientBulkUpload/validEmptyOptionalValues.csv: -------------------------------------------------------------------------------- 1 | last_name,first_name,middle_name,suffix,race,date_of_birth,biological_sex,ethnicity,street,street_2,city,county,state,zip_code,phone_number,phone_number_type,employed_in_healthcare,resident_congregate_setting,role,email,gender_identity 2 | Kuphal,Lucienne,,,black or african american,3/12/86,female,hispanic or latino,5945 Rath Manors,,,,AK,99501,410-675-4559,Mobile,No,No,,, -------------------------------------------------------------------------------- /frontend/src/app/signUp/IdentityVerification/NextSteps.test.tsx: -------------------------------------------------------------------------------- 1 | import { render, screen } from "@testing-library/react"; 2 | 3 | import NextSteps from "./NextSteps"; 4 | 5 | describe("NextSteps", () => { 6 | it("renders", () => { 7 | render(); 8 | expect( 9 | screen.getByText("Identity verification needed", { 10 | exact: false, 11 | }) 12 | ).toBeInTheDocument(); 13 | }); 14 | }); 15 | -------------------------------------------------------------------------------- /ops/services/app_functions/report_stream_batched_publisher/functions/host.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "2.0", 3 | "logging": { 4 | "applicationInsights": { 5 | "samplingSettings": { 6 | "isEnabled": true, 7 | "excludedTypes": "Request" 8 | } 9 | } 10 | }, 11 | "extensionBundle": { 12 | "id": "Microsoft.Azure.Functions.ExtensionBundle", 13 | "version": "[3.3.0, 4.0.0)" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/api/converter/FhirContextProvider.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.api.converter; 2 | 3 | import ca.uhn.fhir.context.FhirContext; 4 | 5 | public final class FhirContextProvider { 6 | private static final FhirContext SHARED = FhirContext.forR4Cached(); 7 | 8 | private FhirContextProvider() {} 9 | 10 | public static FhirContext get() { 11 | return SHARED; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /backend/src/test/resources/graphql-test/add-to-queue.graphql: -------------------------------------------------------------------------------- 1 | mutation enqueueById($id: ID!, $facilityId: ID!, $symptomOnsetDate: LocalDate, $testResultDelivery: TestResultDeliveryPreference) { 2 | addPatientToQueue( 3 | patientId: $id, 4 | facilityId: $facilityId, 5 | pregnancy: "no", 6 | symptoms:"{}", 7 | symptomOnset: $symptomOnsetDate, 8 | testResultDelivery: $testResultDelivery 9 | ) 10 | } -------------------------------------------------------------------------------- /backend/src/main/java/gov/cdc/usds/simplereport/api/model/AggregateFacilityMetrics.java: -------------------------------------------------------------------------------- 1 | package gov.cdc.usds.simplereport.api.model; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | @AllArgsConstructor 7 | @Getter 8 | public class AggregateFacilityMetrics { 9 | private String facilityName; 10 | private long totalTestCount; 11 | private long positiveTestCount; 12 | private long negativeTestCount; 13 | } 14 | -------------------------------------------------------------------------------- /backend/src/main/resources/application-okta-test.yaml: -------------------------------------------------------------------------------- 1 | # Bean profile to be included in deployment-specific profiles 2 | # for TEST deployments. 3 | okta: 4 | oauth2: 5 | client-id: 0oa1khettjHnj3EPT1d7 6 | issuer: https://hhs-prime.oktapreview.com/oauth2/default 7 | client: 8 | org-url: https://hhs-prime.oktapreview.com 9 | simple-report: 10 | authorization: 11 | role-claim: test_roles 12 | environment-name: "TEST" 13 | -------------------------------------------------------------------------------- /frontend/src/app/commonComponents/Button/Button.stories.tsx: -------------------------------------------------------------------------------- 1 | import { StoryFn, Meta } from "@storybook/react-webpack5"; 2 | 3 | import Button from "./Button"; 4 | 5 | export default { 6 | title: "Components/Button", 7 | component: Button, 8 | argTypes: {}, 9 | } as Meta; 10 | 11 | const Template: StoryFn = (args) =>