diff --git a/backend/src/main/java/gov/cdc/usds/simplereport/api/queue/QueueMutationResolver.java b/backend/src/main/java/gov/cdc/usds/simplereport/api/queue/QueueMutationResolver.java index 53de39dfa7..c98daa452e 100644 --- a/backend/src/main/java/gov/cdc/usds/simplereport/api/queue/QueueMutationResolver.java +++ b/backend/src/main/java/gov/cdc/usds/simplereport/api/queue/QueueMutationResolver.java @@ -101,7 +101,34 @@ public void updateTimeOfTestQuestions( Map symptomsMap = parseSymptoms(symptoms); - testOrderService.updateTimeOfTestQuestions( + testOrderService.updateAoeQuestions( + patientId, + pregnancy, + syphilisHistory, + symptomsMap, + symptomOnset, + noSymptoms, + genderOfSexualPartners); + + if (testResultDelivery != null) { + personService.updateTestResultDeliveryPreference(patientId, testResultDelivery); + } + } + + @MutationMapping + public void updateAoeQuestions( + @Argument UUID patientId, + @Argument String pregnancy, + @Argument String syphilisHistory, + @Argument String symptoms, + @Argument LocalDate symptomOnset, + @Argument Boolean noSymptoms, + @Argument List genderOfSexualPartners, + @Argument TestResultDeliveryPreference testResultDelivery) { + + Map symptomsMap = parseSymptoms(symptoms); + + testOrderService.updateAoeQuestions( patientId, pregnancy, syphilisHistory, diff --git a/backend/src/main/java/gov/cdc/usds/simplereport/service/TestOrderService.java b/backend/src/main/java/gov/cdc/usds/simplereport/service/TestOrderService.java index 5bf10ff9d0..c95345a83c 100644 --- a/backend/src/main/java/gov/cdc/usds/simplereport/service/TestOrderService.java +++ b/backend/src/main/java/gov/cdc/usds/simplereport/service/TestOrderService.java @@ -455,7 +455,7 @@ public TestOrder addPatientToQueue( } @AuthorizationConfiguration.RequirePermissionUpdateTestForPatient - public void updateTimeOfTestQuestions( + public void updateAoeQuestions( UUID patientId, String pregnancy, String syphilisHistory, diff --git a/backend/src/main/resources/graphql/main.graphqls b/backend/src/main/resources/graphql/main.graphqls index 6aa8bd7e14..fdab43081d 100644 --- a/backend/src/main/resources/graphql/main.graphqls +++ b/backend/src/main/resources/graphql/main.graphqls @@ -694,6 +694,16 @@ type Mutation { genderOfSexualPartners: [String] testResultDelivery: TestResultDeliveryPreference ): String @requiredPermissions(allOf: ["UPDATE_TEST"]) + updateAoeQuestions( + patientId: ID! + pregnancy: String + syphilisHistory: String + symptoms: String @Size(min: 0, max: 1024) + symptomOnset: LocalDate + noSymptoms: Boolean + genderOfSexualPartners: [String] + testResultDelivery: TestResultDeliveryPreference + ): String @requiredPermissions(allOf: ["UPDATE_TEST"]) sendPatientLinkSms(internalId: ID!): Boolean @requiredPermissions(allOf: ["UPDATE_TEST"]) sendPatientLinkSmsByTestEventId(testEventId: ID!): Boolean diff --git a/backend/src/test/java/gov/cdc/usds/simplereport/api/graphql/QueueManagementTest.java b/backend/src/test/java/gov/cdc/usds/simplereport/api/graphql/QueueManagementTest.java index 55ddda3221..e37ceb23cb 100644 --- a/backend/src/test/java/gov/cdc/usds/simplereport/api/graphql/QueueManagementTest.java +++ b/backend/src/test/java/gov/cdc/usds/simplereport/api/graphql/QueueManagementTest.java @@ -352,7 +352,7 @@ void queueOperations_standardUser_successDependsOnFacilityAccess() throws Except performQueueUpdateMutation(updateVariables, Optional.empty()); updateSelfPrivileges(Role.USER, false, Set.of(_secondSite.getInternalId())); - // updateTimeOfTestQuestions uses the exact same security restrictions + // updateAoeQuestions uses the exact same security restrictions Map removeVariables = Map.of("patientId", personId.toString()); performRemoveFromQueueMutation(removeVariables, Optional.of(ACCESS_ERROR)); updateSelfPrivileges(Role.USER, false, Set.of(_site.getInternalId())); diff --git a/backend/src/test/resources/graphql-test/update-aoe-questions.graphql b/backend/src/test/resources/graphql-test/update-aoe-questions.graphql new file mode 100644 index 0000000000..f880d06e06 --- /dev/null +++ b/backend/src/test/resources/graphql-test/update-aoe-questions.graphql @@ -0,0 +1,21 @@ +mutation UpdateAOE( + $patientId: ID! + $symptoms: String + $symptomOnset: LocalDate + $pregnancy: String + $syphilisHistory: String + $noSymptoms: Boolean + $genderOfSexualPartners: [String] + $testResultDelivery: TestResultDeliveryPreference +) { + updateAoeQuestions( + patientId: $patientId + pregnancy: $pregnancy + syphilisHistory: $syphilisHistory + symptoms: $symptoms + noSymptoms: $noSymptoms + symptomOnset: $symptomOnset + genderOfSexualPartners: $genderOfSexualPartners + testResultDelivery: $testResultDelivery + ) +} diff --git a/frontend/src/generated/graphql.tsx b/frontend/src/generated/graphql.tsx index 0db90ef2f0..59110bdf89 100644 --- a/frontend/src/generated/graphql.tsx +++ b/frontend/src/generated/graphql.tsx @@ -228,6 +228,7 @@ export type Mutation = { setRegistrationLinkIsDeleted?: Maybe; setUserIsDeleted?: Maybe; submitQueueItem?: Maybe; + updateAoeQuestions?: Maybe; updateDeviceType?: Maybe; updateFacility?: Maybe; updateFeatureFlag?: Maybe; @@ -466,6 +467,19 @@ export type MutationSubmitQueueItemArgs = { specimenTypeId: Scalars["ID"]["input"]; }; +export type MutationUpdateAoeQuestionsArgs = { + genderOfSexualPartners?: InputMaybe< + Array> + >; + noSymptoms?: InputMaybe; + patientId: Scalars["ID"]["input"]; + pregnancy?: InputMaybe; + symptomOnset?: InputMaybe; + symptoms?: InputMaybe; + syphilisHistory?: InputMaybe; + testResultDelivery?: InputMaybe; +}; + export type MutationUpdateDeviceTypeArgs = { input: UpdateDeviceType; };