diff --git a/src/main/java/org/hisp/dhis/api/ApiFields.java b/src/main/java/org/hisp/dhis/api/ApiFields.java index c6a85d2a..618ee636 100644 --- a/src/main/java/org/hisp/dhis/api/ApiFields.java +++ b/src/main/java/org/hisp/dhis/api/ApiFields.java @@ -380,6 +380,9 @@ public class ApiFields { PROGRAM_STAGE_DATA_ELEMENT_FIELDS, PROGRAM_STAGE_SECTION_FIELDS); + public static final String PROGRAM_STAGE_EXT_FIELDS = + String.format("%1$s,dataEntryForm[%2$s]", PROGRAM_STAGE_FIELDS, ID_FIELDS); + public static final String PROGRAM_TRACKED_ENTITY_ATTRIBUTES_FIELDS = String.format( """ diff --git a/src/main/java/org/hisp/dhis/model/ProgramStage.java b/src/main/java/org/hisp/dhis/model/ProgramStage.java index 69e4fd89..e5b569f5 100644 --- a/src/main/java/org/hisp/dhis/model/ProgramStage.java +++ b/src/main/java/org/hisp/dhis/model/ProgramStage.java @@ -82,6 +82,8 @@ public class ProgramStage extends NameableObject { @JsonProperty private FeatureType featureType; + @JsonProperty private DataEntryForm dataEntryForm; + /** * Constructor. * diff --git a/src/main/java/org/hisp/dhis/model/metadata/MetadataEntity.java b/src/main/java/org/hisp/dhis/model/metadata/MetadataEntity.java index 762ba2f1..267fb861 100644 --- a/src/main/java/org/hisp/dhis/model/metadata/MetadataEntity.java +++ b/src/main/java/org/hisp/dhis/model/metadata/MetadataEntity.java @@ -73,6 +73,7 @@ import static org.hisp.dhis.api.ApiFields.PROGRAM_RULE_FIELDS; import static org.hisp.dhis.api.ApiFields.PROGRAM_RULE_VARIABLE_FIELDS; import static org.hisp.dhis.api.ApiFields.PROGRAM_SECTION_FIELDS; +import static org.hisp.dhis.api.ApiFields.PROGRAM_STAGE_EXT_FIELDS; import static org.hisp.dhis.api.ApiFields.PROGRAM_STAGE_FIELDS; import static org.hisp.dhis.api.ApiFields.PROGRAM_STAGE_SECTION_FIELDS; import static org.hisp.dhis.api.ApiFields.RELATIONSHIP_TYPE_FIELDS; @@ -343,7 +344,7 @@ public enum MetadataEntity { PROGRAM_STAGE( ProgramStage.class, PROGRAM_STAGE_FIELDS, - PROGRAM_STAGE_FIELDS, + PROGRAM_STAGE_EXT_FIELDS, "programStages", Dhis2Objects::getProgramStages), PROGRAM_STAGE_SECTION( diff --git a/src/test/java/org/hisp/dhis/ProgramStageApiTest.java b/src/test/java/org/hisp/dhis/ProgramStageApiTest.java index 00cccc5c..ae511707 100644 --- a/src/test/java/org/hisp/dhis/ProgramStageApiTest.java +++ b/src/test/java/org/hisp/dhis/ProgramStageApiTest.java @@ -72,6 +72,16 @@ void getGetProgramStage() { assertNotNull(programStage.getReferral()); } + @Test + void getGetProgramStageWithDataEntryForm() { + Dhis2 dhis2 = new Dhis2(TestFixture.DEFAULT_CONFIG); + + ProgramStage programStage = dhis2.getProgramStage("pSllsjpfLH2"); + assertNotNull(programStage); + assertEquals("pSllsjpfLH2", programStage.getId()); + assertNotNull(programStage.getDataEntryForm()); + } + @Test void getProgramStages() { Dhis2 dhis2 = new Dhis2(TestFixture.DEFAULT_CONFIG);