From a788fb6b0f050a777a9256fde388526d33a31210 Mon Sep 17 00:00:00 2001 From: rehammuzzamil Date: Tue, 23 Jun 2020 18:42:15 +0500 Subject: [PATCH 1/7] 34 : Add Action dynamicValue --- src/main/java/org/smartregister/domain/Action.java | 11 +++++++++++ .../smartregister/pathevaluator/task/TaskHelper.java | 4 ++++ 2 files changed, 15 insertions(+) diff --git a/src/main/java/org/smartregister/domain/Action.java b/src/main/java/org/smartregister/domain/Action.java index 1f3566b0..1ebc6694 100644 --- a/src/main/java/org/smartregister/domain/Action.java +++ b/src/main/java/org/smartregister/domain/Action.java @@ -2,6 +2,7 @@ import java.util.Set; +import com.ibm.fhir.model.resource.PlanDefinition; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; @@ -38,6 +39,8 @@ public class Action { private String definitionUri; + private PlanDefinition.Action.DynamicValue dynamicValue; + public String getIdentifier() { return identifier; } @@ -142,6 +145,14 @@ public void setDefinitionUri(String definitionUri) { this.definitionUri = definitionUri; } + public PlanDefinition.Action.DynamicValue getDynamicValue() { + return dynamicValue; + } + + public void setDynamicValue(PlanDefinition.Action.DynamicValue dynamicValue) { + this.dynamicValue = dynamicValue; + } + @AllArgsConstructor @NoArgsConstructor @Getter diff --git a/src/main/java/org/smartregister/pathevaluator/task/TaskHelper.java b/src/main/java/org/smartregister/pathevaluator/task/TaskHelper.java index 6973e957..4fd29156 100644 --- a/src/main/java/org/smartregister/pathevaluator/task/TaskHelper.java +++ b/src/main/java/org/smartregister/pathevaluator/task/TaskHelper.java @@ -41,6 +41,10 @@ public void generateTask(Resource resource, Action action, String planIdentifier task.setExecutionEndDate(new DateTime(action.getTimingPeriod() != null ? action.getTimingPeriod().getEnd() : null)); task.setAuthoredOn(DateTime.now()); task.setLastModified(DateTime.now()); + if(action.getDynamicValue().getExpression().getName().as(com.ibm.fhir.model.type.String.class).getValue().equals("defaultBusinessStatus")) { +// task.setBusinessStatus(); + //TODO : Populate business status from expression + } task.setBusinessStatus("Not Visited"); task.setRequester(instance.getUserName()); task.setOwner(instance.getUserName()); From 41c06128f0f17e561e3d8bc20fd78e6ea1da8038 Mon Sep 17 00:00:00 2001 From: rehammuzzamil Date: Tue, 23 Jun 2020 18:51:53 +0500 Subject: [PATCH 2/7] 34 : Add Action dynamicValue --- .../java/org/smartregister/domain/Action.java | 7 +++---- .../smartregister/domain/DynamicValue.java | 21 +++++++++++++++++++ .../pathevaluator/task/TaskHelper.java | 2 +- 3 files changed, 25 insertions(+), 5 deletions(-) create mode 100644 src/main/java/org/smartregister/domain/DynamicValue.java diff --git a/src/main/java/org/smartregister/domain/Action.java b/src/main/java/org/smartregister/domain/Action.java index 1ebc6694..c351bc0a 100644 --- a/src/main/java/org/smartregister/domain/Action.java +++ b/src/main/java/org/smartregister/domain/Action.java @@ -2,7 +2,6 @@ import java.util.Set; -import com.ibm.fhir.model.resource.PlanDefinition; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; @@ -39,7 +38,7 @@ public class Action { private String definitionUri; - private PlanDefinition.Action.DynamicValue dynamicValue; + private DynamicValue dynamicValue; public String getIdentifier() { return identifier; @@ -145,11 +144,11 @@ public void setDefinitionUri(String definitionUri) { this.definitionUri = definitionUri; } - public PlanDefinition.Action.DynamicValue getDynamicValue() { + public DynamicValue getDynamicValue() { return dynamicValue; } - public void setDynamicValue(PlanDefinition.Action.DynamicValue dynamicValue) { + public void setDynamicValue(DynamicValue dynamicValue) { this.dynamicValue = dynamicValue; } diff --git a/src/main/java/org/smartregister/domain/DynamicValue.java b/src/main/java/org/smartregister/domain/DynamicValue.java new file mode 100644 index 00000000..505e95b5 --- /dev/null +++ b/src/main/java/org/smartregister/domain/DynamicValue.java @@ -0,0 +1,21 @@ +package org.smartregister.domain; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.ToString; +import lombok.Builder; + +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +@ToString +@Builder(toBuilder = true) +public class DynamicValue { + + private String path; + + private Expression expression; +} diff --git a/src/main/java/org/smartregister/pathevaluator/task/TaskHelper.java b/src/main/java/org/smartregister/pathevaluator/task/TaskHelper.java index 4fd29156..a04cb9cf 100644 --- a/src/main/java/org/smartregister/pathevaluator/task/TaskHelper.java +++ b/src/main/java/org/smartregister/pathevaluator/task/TaskHelper.java @@ -41,7 +41,7 @@ public void generateTask(Resource resource, Action action, String planIdentifier task.setExecutionEndDate(new DateTime(action.getTimingPeriod() != null ? action.getTimingPeriod().getEnd() : null)); task.setAuthoredOn(DateTime.now()); task.setLastModified(DateTime.now()); - if(action.getDynamicValue().getExpression().getName().as(com.ibm.fhir.model.type.String.class).getValue().equals("defaultBusinessStatus")) { + if(action.getDynamicValue().getExpression().getName().equals("defaultBusinessStatus")) { // task.setBusinessStatus(); //TODO : Populate business status from expression } From 6d26c515c2ac280f242ec5243b94e44c359e7b31 Mon Sep 17 00:00:00 2001 From: rehammuzzamil Date: Tue, 23 Jun 2020 18:59:20 +0500 Subject: [PATCH 3/7] Merge master branch --- .../org/smartregister/pathevaluator/task/TaskHelper.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/smartregister/pathevaluator/task/TaskHelper.java b/src/main/java/org/smartregister/pathevaluator/task/TaskHelper.java index 18e41fa0..ab7ee580 100644 --- a/src/main/java/org/smartregister/pathevaluator/task/TaskHelper.java +++ b/src/main/java/org/smartregister/pathevaluator/task/TaskHelper.java @@ -45,10 +45,11 @@ public void generateTask(Resource resource, Action action, String planIdentifier task.setExecutionEndDate(getDateTime(action.getTimingPeriod(), false)); task.setAuthoredOn(DateTime.now()); task.setLastModified(DateTime.now()); - if(action.getDynamicValue().getExpression().getName().equals("defaultBusinessStatus")) { -// task.setBusinessStatus(); - //TODO : Populate business status from expression - } + //TODO : Generate task according to defaultBusinessStatus +// if(action.getDynamicValue().getExpression().getName().equals("defaultBusinessStatus")) { +// task.setBusinessStatus(); +// +// } task.setBusinessStatus("Not Visited"); task.setRequester(username); task.setOwner(username); From 45e5b527d19eb873efd4b118e29d7ab912485492 Mon Sep 17 00:00:00 2001 From: rehammuzzamil Date: Wed, 24 Jun 2020 21:07:12 +0500 Subject: [PATCH 4/7] 34 : Add Action dynamicValue --- .../pathevaluator/task/TaskHelper.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/smartregister/pathevaluator/task/TaskHelper.java b/src/main/java/org/smartregister/pathevaluator/task/TaskHelper.java index ab7ee580..01b3873c 100644 --- a/src/main/java/org/smartregister/pathevaluator/task/TaskHelper.java +++ b/src/main/java/org/smartregister/pathevaluator/task/TaskHelper.java @@ -6,6 +6,7 @@ import java.util.UUID; import java.util.logging.Logger; +import com.ibm.fhir.path.FHIRPathElementNode; import org.joda.time.DateTime; import org.joda.time.LocalDate; import org.smartregister.domain.Action; @@ -45,12 +46,14 @@ public void generateTask(Resource resource, Action action, String planIdentifier task.setExecutionEndDate(getDateTime(action.getTimingPeriod(), false)); task.setAuthoredOn(DateTime.now()); task.setLastModified(DateTime.now()); - //TODO : Generate task according to defaultBusinessStatus -// if(action.getDynamicValue().getExpression().getName().equals("defaultBusinessStatus")) { -// task.setBusinessStatus(); -// -// } - task.setBusinessStatus("Not Visited"); + if (action.getDynamicValue().getExpression().getName().equals("defaultBusinessStatus")) { + FHIRPathElementNode node = PathEvaluatorLibrary.getInstance() + .evaluateElementExpression(resource, action.getDynamicValue().getExpression().getExpression()); + com.ibm.fhir.model.type.String businessStatus = node.element().as(com.ibm.fhir.model.type.String.class); + task.setBusinessStatus(businessStatus.getValue()); + } else { + task.setBusinessStatus("Not Visited"); + } task.setRequester(username); task.setOwner(username); TaskDao taskDao = PathEvaluatorLibrary.getInstance().getTaskProvider().getTaskDao(); From 0e7aaf8d4bc5bd22258e93ae0ccde571aef3114d Mon Sep 17 00:00:00 2001 From: rehammuzzamil Date: Wed, 24 Jun 2020 21:25:15 +0500 Subject: [PATCH 5/7] 34 : Add null checks --- .../java/org/smartregister/pathevaluator/task/TaskHelper.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/smartregister/pathevaluator/task/TaskHelper.java b/src/main/java/org/smartregister/pathevaluator/task/TaskHelper.java index 01b3873c..bf0cd861 100644 --- a/src/main/java/org/smartregister/pathevaluator/task/TaskHelper.java +++ b/src/main/java/org/smartregister/pathevaluator/task/TaskHelper.java @@ -46,7 +46,8 @@ public void generateTask(Resource resource, Action action, String planIdentifier task.setExecutionEndDate(getDateTime(action.getTimingPeriod(), false)); task.setAuthoredOn(DateTime.now()); task.setLastModified(DateTime.now()); - if (action.getDynamicValue().getExpression().getName().equals("defaultBusinessStatus")) { + if (action.getDynamicValue() != null && action.getDynamicValue().getExpression() != null && + action.getDynamicValue().getExpression().getName().equals("defaultBusinessStatus")) { FHIRPathElementNode node = PathEvaluatorLibrary.getInstance() .evaluateElementExpression(resource, action.getDynamicValue().getExpression().getExpression()); com.ibm.fhir.model.type.String businessStatus = node.element().as(com.ibm.fhir.model.type.String.class); From b5baa7e701a54055e1760d927e5f72d6b8ad5068 Mon Sep 17 00:00:00 2001 From: rehammuzzamil Date: Thu, 25 Jun 2020 11:04:59 +0500 Subject: [PATCH 6/7] 34 : Add tests --- .../smartregister/pathevaluator/TestData.java | 65 ++++++++++++++++++- .../pathevaluator/task/TaskHelperTest.java | 11 ++++ 2 files changed, 75 insertions(+), 1 deletion(-) diff --git a/src/test/java/org/smartregister/pathevaluator/TestData.java b/src/test/java/org/smartregister/pathevaluator/TestData.java index ef36a248..739ee14b 100644 --- a/src/test/java/org/smartregister/pathevaluator/TestData.java +++ b/src/test/java/org/smartregister/pathevaluator/TestData.java @@ -40,7 +40,65 @@ public class TestData { .registerTypeAdapter(LocalDate.class, new DateTypeConverter()).create(); public static String plan = "{\"identifier\":\"d18f15ec-afaf-42f3-ba96-d207c456645b\",\"version\":\"2\",\"name\":\"A1-59ad4fa0-1945-4b50-a6e3-a056a7cdceb2-2019-09-09\",\"title\":\"A1 - Ban Khane Chu OA - 2019-09-09(deprecated)\",\"status\":\"retired\",\"date\":\"2019-09-09\",\"effectivePeriod\":{\"start\":\"2019-09-09\",\"end\":\"2019-09-29\"},\"useContext\":[{\"code\":\"interventionType\",\"valueCodableConcept\":\"FI\"},{\"code\":\"fiStatus\",\"valueCodableConcept\":\"A1\"},{\"code\":\"fiReason\",\"valueCodableConcept\":\"Routine\"},{\"code\":\"caseNum\",\"valueCodableConcept\":\"3336\"},{\"code\":\"opensrpEventId\",\"valueCodableConcept\":\"75049cd6-d77b-4239-9092-7bd1aa0d438c\"},{\"code\":\"taskGenerationStatus\",\"valueCodableConcept\":\"True\"}],\"jurisdiction\":[{\"code\":\"59ad4fa0-1945-4b50-a6e3-a056a7cdceb2\"}],\"serverVersion\":1568110931837,\"goal\":[{\"id\":\"Case_Confirmation\",\"description\":\"Confirm the index case\",\"priority\":\"medium-priority\",\"target\":[{\"measure\":\"Number of cases confirmed\",\"detail\":{\"detailQuantity\":{\"value\":1,\"comparator\":\">=\",\"unit\":\"case(s)\"}},\"due\":\"2019-09-19\"}]},{\"id\":\"RACD_register_families\",\"description\":\"Register all families and family members in all residential structures enumerated or added (100%) within operational area\",\"priority\":\"medium-priority\",\"target\":[{\"measure\":\"Percent of residential structures with full family registration\",\"detail\":{\"detailQuantity\":{\"value\":100,\"comparator\":\">=\",\"unit\":\"Percent\"}},\"due\":\"2019-09-29\"}]},{\"id\":\"RACD_Blood_Screening\",\"description\":\"Visit all residential structures (100%) within a 1 km radius of a confirmed index case and test each registered person\",\"priority\":\"medium-priority\",\"target\":[{\"measure\":\"Number of registered people tested\",\"detail\":{\"detailQuantity\":{\"value\":50,\"comparator\":\">=\",\"unit\":\"Person(s)\"}},\"due\":\"2019-09-29\"}]},{\"id\":\"RACD_bednet_distribution\",\"description\":\"Visit 100% of residential structures in the operational area and provide nets\",\"priority\":\"medium-priority\",\"target\":[{\"measure\":\"Percent of residential structures received nets\",\"detail\":{\"detailQuantity\":{\"value\":90,\"comparator\":\">=\",\"unit\":\"Percent\"}},\"due\":\"2019-09-29\"}]},{\"id\":\"Larval_Dipping\",\"description\":\"Perform a minimum of three larval dipping activities in the operational area\",\"priority\":\"medium-priority\",\"target\":[{\"measure\":\"Number of larval dipping activities completed\",\"detail\":{\"detailQuantity\":{\"value\":3,\"comparator\":\">=\",\"unit\":\"activit(y|ies)\"}},\"due\":\"2019-09-29\"}]},{\"id\":\"Mosquito_Collection\",\"description\":\"Set a minimum of three mosquito collection traps and complete the mosquito collection process\",\"priority\":\"medium-priority\",\"target\":[{\"measure\":\"Number of mosquito collection activities completed\",\"detail\":{\"detailQuantity\":{\"value\":3,\"comparator\":\">=\",\"unit\":\"activit(y|ies)\"}},\"due\":\"2019-09-29\"}]},{\"id\":\"BCC_Focus\",\"description\":\"Complete at least 1 BCC activity for the operational area\",\"priority\":\"medium-priority\",\"target\":[{\"measure\":\"Number of BCC Activities Completed\",\"detail\":{\"detailQuantity\":{\"value\":1,\"comparator\":\">=\",\"unit\":\"activit(y|ies)\"}},\"due\":\"2019-09-29\"}]}],\"action\":[{\"identifier\":\"baebfd98-2f1f-4a5e-9478-680f13b45697\",\"prefix\":1,\"title\":\"Case Confirmation\",\"description\":\"Confirm the index case\",\"code\":\"Case Confirmation\",\"timingPeriod\":{\"start\":\"2019-09-09\",\"end\":\"2019-09-19\"},\"reason\":\"Investigation\",\"goalId\":\"Case_Confirmation\",\"subjectCodableConcept\":{\"text\":\"Case_Confirmation\"},\"taskTemplate\":\"Case_Confirmation\"},{\"identifier\":\"9f554b5a-0d00-4f18-996f-30dce50e57d8\",\"prefix\":2,\"title\":\"Family Registration\",\"description\":\"Register all families & family members in all residential structures enumerated (100%) within the operational area\",\"code\":\"RACD Register Family\",\"timingPeriod\":{\"start\":\"2019-09-09\",\"end\":\"2019-09-29\"},\"reason\":\"Investigation\",\"goalId\":\"RACD_register_families\",\"subjectCodableConcept\":{\"text\":\"Residential_Structure\"},\"taskTemplate\":\"RACD_register_families\"},{\"identifier\":\"28164940-e2cb-4622-8153-b6ac8ff6e940\",\"prefix\":3,\"title\":\"Blood screening\",\"description\":\"Visit all residential structures (100%) within a 1 km radius of a confirmed index case and test each registered person\",\"code\":\"Blood Screening\",\"timingPeriod\":{\"start\":\"2019-09-09\",\"end\":\"2019-09-29\"},\"reason\":\"Investigation\",\"goalId\":\"RACD_Blood_Screening\",\"subjectCodableConcept\":{\"text\":\"Person\"},\"taskTemplate\":\"RACD_Blood_Screening\"},{\"identifier\":\"b9f68512-376f-49c9-bb53-80d9e81a73d2\",\"prefix\":4,\"title\":\"Bednet Distribution\",\"description\":\"Visit 100% of residential structures in the operational area and provide nets\",\"code\":\"Bednet Distribution\",\"timingPeriod\":{\"start\":\"2019-09-09\",\"end\":\"2019-09-29\"},\"reason\":\"Routine\",\"goalId\":\"RACD_bednet_distribution\",\"subjectCodableConcept\":{\"text\":\"Residential_Structure\"},\"taskTemplate\":\"Bednet_Distribution\"},{\"identifier\":\"3b3f265d-05fe-4c16-a5a1-141bac82f128\",\"prefix\":5,\"title\":\"Larval Dipping\",\"description\":\"Perform a minimum of three larval dipping activities in the operational area\",\"code\":\"Larval Dipping\",\"timingPeriod\":{\"start\":\"2019-09-09\",\"end\":\"2019-09-29\"},\"reason\":\"Investigation\",\"goalId\":\"Larval_Dipping\",\"subjectCodableConcept\":{\"text\":\"Breeding_Site\"},\"taskTemplate\":\"Larval_Dipping\"},{\"identifier\":\"c295655a-8630-4bc1-a5fd-79b22a9b1125\",\"prefix\":6,\"title\":\"Mosquito Collection\",\"description\":\"Set a minimum of three mosquito collection traps and complete the mosquito collection process\",\"code\":\"Mosquito Collection\",\"timingPeriod\":{\"start\":\"2019-09-09\",\"end\":\"2019-09-29\"},\"reason\":\"Investigation\",\"goalId\":\"Mosquito_Collection\",\"subjectCodableConcept\":{\"text\":\"Mosquito_Collection_Point\"},\"taskTemplate\":\"Mosquito_Collection_Point\"},{\"identifier\":\"8b899c73-56c8-40a2-a738-6a62b459e8f8\",\"prefix\":7,\"title\":\"Behaviour Change Communication\",\"description\":\"Conduct BCC activity\",\"code\":\"BCC\",\"timingPeriod\":{\"start\":\"2019-09-09\",\"end\":\"2019-09-29\"},\"reason\":\"Investigation\",\"goalId\":\"BCC_Focus\",\"subjectCodableConcept\":{\"text\":\"Operational_Area\"},\"taskTemplate\":\"BCC_Focus\"}]}"; - + + public static String plan_1 = "{\n" + + "\"identifier\": \"3204259e-1109-4baf-934b-05662d51bbd0\",\n" + + "\"version\": \"1\",\n" + + "\"name\": \"MDA-2020-06-23-Dynamic-Task-Test-Plan\",\n" + + "\"title\": \"MDA 2020-06-23 Dynamic Task Test Plan\",\n" + + "\"status\": \"active\",\n" + + "\"date\": \"2020-06-23\",\n" + + "\"effectivePeriod\": {\n" + + "\"start\": \"2020-06-23\",\n" + + "\"end\": \"2020-12-31\"\n" + + "},\n" + + "\"useContext\": [],\n" + + "\"jurisdiction\": [{\n" + + "\"code\": \"45017166-cc14-4f2f-b83f-4a72ce17bf91\"\n" + + "}],\n" + + "\"action\": [{\n" + + "\"identifier\": \"3802af3a-f40c-4705-849e-1727b603bd4e\",\n" + + "\"prefix\": 1,\n" + + "\"title\": \"Family Registration\",\n" + + "\"description\": \"Register all families and family members in all residential structures enumerated (100%) within the operational area\",\n" + + "\"code\": \"RACD Register Family\",\n" + + "\"trigger\": [{\n" + + "\"type\": \"named-event\",\n" + + "\"name\": \"plan_activation\"\n" + + "},\n" + + "{\n" + + "\"type\": \"named-event\",\n" + + "\"name\": \"event-submission\",\n" + + "\"condition\": {\n" + + "\"expression\": \"questionnaire = 'Register_Structure'\"\n" + + "}\n" + + "}\n" + + "],\n" + + "\"condition\": [{\n" + + "\"kind\": \"applicability\",\n" + + "\"expression\": {\n" + + "\"expression\": \"Location.type.where(id='locationType').text = 'Residential Structure'\"\n" + + "}\n" + + "}],\n" + + "\"timingPeriod\": {\n" + + "\"start\": \"2020-06-04\",\n" + + "\"end\": \"2020-10-01\"\n" + + "},\n" + + "\"reason\": \"Routine\",\n" + + "\"goalId\": \"RACD_register_all_families\",\n" + + "\"subjectCodableConcept\": {\n" + + "\"text\": \"Location\"\n" + + "},\n" + + "\"definitionUri\": \"zambia_family_register.json\",\n" + + "\"dynamicValue\": {\n" + + "\"expression\": {\n" + + "\"name\": \"defaultBusinessStatus\",\n" + + "\"expression\": \"\"\n" + + "}\n" + + "}\n" + + "}]\n" + + "}"; + public static PlanDefinition createPlan() { return gson.fromJson(plan, PlanDefinition.class); } @@ -72,4 +130,9 @@ public static QuestionnaireResponse createResponse() { .subject(Reference.builder().reference(of("098787kml-jsks09")).build()).item(structureType, businessStatus) .build(); } + + public static PlanDefinition createPlanV1() { + //TODO : Define expression + return gson.fromJson(plan_1, PlanDefinition.class); + } } diff --git a/src/test/java/org/smartregister/pathevaluator/task/TaskHelperTest.java b/src/test/java/org/smartregister/pathevaluator/task/TaskHelperTest.java index 739402d4..1fdafbb6 100644 --- a/src/test/java/org/smartregister/pathevaluator/task/TaskHelperTest.java +++ b/src/test/java/org/smartregister/pathevaluator/task/TaskHelperTest.java @@ -8,6 +8,7 @@ import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; import org.smartregister.domain.Action; +import org.smartregister.domain.PlanDefinition; import org.smartregister.domain.Task; import org.smartregister.pathevaluator.PathEvaluatorLibrary; import org.smartregister.pathevaluator.TestData; @@ -16,6 +17,7 @@ import java.util.UUID; import static org.mockito.ArgumentMatchers.any; +import static org.smartregister.pathevaluator.TestData.createPlanV1; @RunWith(MockitoJUnitRunner.class) public class TaskHelperTest { @@ -54,4 +56,13 @@ public void testGenerateTask() { Mockito.doNothing().when(taskDao).saveTask(any(Task.class)); taskHelper.generateTask(patient, action, planIdentifier, jurisdiction, "testUser"); } + + @Test + public void testGenerateTaskWithDefaultBusinessStatus() { + String planIdentifier = UUID.randomUUID().toString(); + String jurisdiction = "12123"; + PlanDefinition planDefinition = createPlanV1(); + Mockito.doNothing().when(taskDao).saveTask(any(Task.class)); + taskHelper.generateTask(patient, planDefinition.getActions().get(0), planIdentifier, jurisdiction, "testUser"); + } } From 93a7ae943b6c387c2e6edc62916cdf3932db1b58 Mon Sep 17 00:00:00 2001 From: rehammuzzamil Date: Thu, 25 Jun 2020 11:44:50 +0500 Subject: [PATCH 7/7] 34 : if expression with name defaultBusinessStatus then expression will be used to populate the business status of generated tasks --- .../org/smartregister/pathevaluator/task/TaskHelper.java | 5 +---- src/test/java/org/smartregister/pathevaluator/TestData.java | 2 +- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/smartregister/pathevaluator/task/TaskHelper.java b/src/main/java/org/smartregister/pathevaluator/task/TaskHelper.java index bf0cd861..743dc4f4 100644 --- a/src/main/java/org/smartregister/pathevaluator/task/TaskHelper.java +++ b/src/main/java/org/smartregister/pathevaluator/task/TaskHelper.java @@ -48,10 +48,7 @@ public void generateTask(Resource resource, Action action, String planIdentifier task.setLastModified(DateTime.now()); if (action.getDynamicValue() != null && action.getDynamicValue().getExpression() != null && action.getDynamicValue().getExpression().getName().equals("defaultBusinessStatus")) { - FHIRPathElementNode node = PathEvaluatorLibrary.getInstance() - .evaluateElementExpression(resource, action.getDynamicValue().getExpression().getExpression()); - com.ibm.fhir.model.type.String businessStatus = node.element().as(com.ibm.fhir.model.type.String.class); - task.setBusinessStatus(businessStatus.getValue()); + task.setBusinessStatus(action.getDynamicValue().getExpression().getExpression()); } else { task.setBusinessStatus("Not Visited"); } diff --git a/src/test/java/org/smartregister/pathevaluator/TestData.java b/src/test/java/org/smartregister/pathevaluator/TestData.java index 739ee14b..1f75dda2 100644 --- a/src/test/java/org/smartregister/pathevaluator/TestData.java +++ b/src/test/java/org/smartregister/pathevaluator/TestData.java @@ -93,7 +93,7 @@ public class TestData { + "\"dynamicValue\": {\n" + "\"expression\": {\n" + "\"name\": \"defaultBusinessStatus\",\n" - + "\"expression\": \"\"\n" + + "\"expression\": \"expression\"\n" + "}\n" + "}\n" + "}]\n"