diff --git a/omod/src/main/java/org/openmrs/module/queue/web/resources/QueueEntryResource.java b/omod/src/main/java/org/openmrs/module/queue/web/resources/QueueEntryResource.java index e4eeb26c..e60873e0 100644 --- a/omod/src/main/java/org/openmrs/module/queue/web/resources/QueueEntryResource.java +++ b/omod/src/main/java/org/openmrs/module/queue/web/resources/QueueEntryResource.java @@ -16,6 +16,9 @@ import java.util.Map; import java.util.Optional; +import io.swagger.models.Model; +import io.swagger.models.ModelImpl; +import io.swagger.models.properties.*; import lombok.Getter; import lombok.extern.slf4j.Slf4j; import org.openmrs.PersonName; @@ -127,6 +130,56 @@ public DelegatingResourceDescription getCreatableProperties() throws ResourceDoe return description; } + @Override + public Model getGETModel(Representation rep) { + ModelImpl model = (ModelImpl) super.getGETModel(rep); + if (rep instanceof RefRepresentation || rep instanceof DefaultRepresentation) { + model.property("uuid", new StringProperty()).property("queue", new RefProperty("#/definitions/QueueGetRef")) + .property("display", new StringProperty()) + .property("status", new RefProperty("#/definitions/ConceptGetRef")) + .property("priority", new RefProperty("#/definitions/ConceptGetRef")) + .property("priorityComment", new StringProperty()) + .property("patient", new RefProperty("#/definitions/PatientGetRef")) + .property("visit", new RefProperty("#/definitions/VisitGetRef")) + .property("sortWeight", new DoubleProperty()).property("startedAt", new DateProperty()) + .property("endedAt", new DateProperty()) + .property("locationWaitingFor", new RefProperty("#/definitions/LocationGetRef")) + .property("queueComingFrom", new RefProperty("#/definitions/QueueGetRef")) + .property("providerWaitingFor", new RefProperty("#/definitions/ProviderGetRef")); + } else if (rep instanceof FullRepresentation) { + model.property("uuid", new StringProperty()).property("queue", new RefProperty("#/definitions/QueueGetRef")) + .property("display", new StringProperty()) + .property("status", new RefProperty("#/definitions/ConceptGetRef")) + .property("priority", new RefProperty("#/definitions/ConceptGetRef")) + .property("priorityComment", new StringProperty()) + .property("patient", new RefProperty("#/definitions/PatientGetRef")) + .property("visit", new RefProperty("#/definitions/VisitGetRef")) + .property("sortWeight", new DoubleProperty()).property("startedAt", new DateProperty()) + .property("endedAt", new DateProperty()) + .property("locationWaitingFor", new RefProperty("#/definitions/LocationGetRef")) + .property("queueComingFrom", new RefProperty("#/definitions/QueueGetRef")) + .property("providerWaitingFor", new RefProperty("#/definitions/ProviderGetRef")) + .property("voided", new BooleanProperty()).property("voidedReason", new StringProperty()) + .property("auditInfo", new StringProperty()) + .property("previousQueueEntry", new RefProperty("#/definitions/QueueGetRef")); + } + return model; + } + + @Override + public Model getCREATEModel(Representation rep) { + return new ModelImpl().property("queue", new RefProperty("#/definitions/QueueCreate")) + .property("status", new RefProperty("#/definitions/ConceptCreate")) + .property("priority", new RefProperty("#/definitions/ConceptCreate")) + .property("priorityComment", new StringProperty()) + .property("patient", new RefProperty("#/definitions/PatientCreate")) + .property("visit", new RefProperty("#/definitions/VisitCreate")).property("sortWeight", new DoubleProperty()) + .property("startedAt", new DateProperty()) + .property("locationWaitingFor", new RefProperty("#/definitions/LocationCreate")) + .property("queueComingFrom", new RefProperty("#/definitions/QueueCreate")) + .property("providerWaitingFor", new RefProperty("#/definitions/ProviderCreate")); + } + @Override public DelegatingResourceDescription getUpdatableProperties() throws ResourceDoesNotSupportOperationException { DelegatingResourceDescription description = new DelegatingResourceDescription(); @@ -141,6 +194,16 @@ public DelegatingResourceDescription getUpdatableProperties() throws ResourceDoe return description; } + @Override + public Model getUPDATEModel(Representation rep) { + return new ModelImpl().property("status", new RefProperty("#/definitions/ConceptCreate")) + .property("priority", new RefProperty("#/definitions/ConceptCreate")) + .property("priorityComment", new StringProperty()).property("sortWeight", new DoubleProperty()) + .property("startedAt", new DateProperty()).property("endedAt", new DateProperty()) + .property("locationWaitingFor", new RefProperty("#/definitions/LocationCreate")) + .property("providerWaitingFor", new RefProperty("#/definitions/ProviderCreate")); + } + @Override public DelegatingResourceDescription getRepresentationDescription(Representation representation) { DelegatingResourceDescription description = new DelegatingResourceDescription(); diff --git a/omod/src/main/java/org/openmrs/module/queue/web/resources/QueueEntrySubResource.java b/omod/src/main/java/org/openmrs/module/queue/web/resources/QueueEntrySubResource.java index 14e018f7..a0b30f7f 100644 --- a/omod/src/main/java/org/openmrs/module/queue/web/resources/QueueEntrySubResource.java +++ b/omod/src/main/java/org/openmrs/module/queue/web/resources/QueueEntrySubResource.java @@ -16,6 +16,9 @@ import java.util.Collections; import java.util.Optional; +import io.swagger.models.Model; +import io.swagger.models.ModelImpl; +import io.swagger.models.properties.*; import org.openmrs.api.context.Context; import org.openmrs.module.queue.api.QueueServicesWrapper; import org.openmrs.module.queue.api.search.QueueEntrySearchCriteria; @@ -116,6 +119,18 @@ public DelegatingResourceDescription getCreatableProperties() throws ResourceDoe return description; } + @Override + public Model getCREATEModel(Representation rep) { + return new ModelImpl().property("priorityComment", new StringProperty()).property("sortWeight", new DoubleProperty()) + .property("startedAt", new DateProperty()) + .property("patient", new RefProperty("#/definitions/PatientCreate")) + .property("priority", new RefProperty("#/definitions/ConceptCreate")) + .property("locationWaitingFor", new RefProperty("#/definitions/LocationCreate")) + .property("queueComingFrom", new RefProperty("#/definitions/QueueCreate")) + .property("status", new RefProperty("#/definitions/ConceptCreate")) + .property("providerWaitingFor", new RefProperty("#/definitions/ProviderCreate")); + } + @Override public DelegatingResourceDescription getUpdatableProperties() throws ResourceDoesNotSupportOperationException { DelegatingResourceDescription description = new DelegatingResourceDescription(); @@ -125,6 +140,12 @@ public DelegatingResourceDescription getUpdatableProperties() throws ResourceDoe return description; } + @Override + public Model getUPDATEModel(Representation rep) { + return new ModelImpl().property("priorityComment", new StringProperty()).property("sortWeight", new DoubleProperty()) + .property("endedAt", new DateProperty()); + } + @Override public DelegatingResourceDescription getRepresentationDescription(Representation representation) { DelegatingResourceDescription resourceDescription = new DelegatingResourceDescription(); @@ -177,6 +198,36 @@ private void addSharedResourceDescriptionProperties(DelegatingResourceDescriptio resourceDescription.addProperty("endedAt"); } + @Override + public Model getGETModel(Representation rep) { + ModelImpl model = (ModelImpl) super.getGETModel(rep); + if (rep instanceof RefRepresentation || rep instanceof DefaultRepresentation) { + model.property("uuid", new StringProperty()).property("display", new StringProperty()) + .property("sortWeight", new DoubleProperty()).property("startedAt", new DateProperty()) + .property("endedAt", new DateProperty()) + .property("status", new RefProperty("#/definitions/ConceptGetRef")) + .property("priority", new RefProperty("#/definitions/ConceptGetRef")) + .property("priorityComment", new StringProperty()) + .property("patient", new RefProperty("#/definitions/PatientGetRef")) + .property("locationWaitingFor", new RefProperty("#/definitions/LocationGetRef")) + .property("queueComingFrom", new RefProperty("#/definitions/QueueGetRef")) + .property("providerWaitingFor", new RefProperty("#/definitions/ProviderGetRef")); + } else if (rep instanceof FullRepresentation) { + model.property("uuid", new StringProperty()).property("display", new StringProperty()) + .property("sortWeight", new DoubleProperty()).property("startedAt", new DateProperty()) + .property("endedAt", new DateProperty()) + .property("status", new RefProperty("#/definitions/ConceptGetFull")) + .property("priority", new RefProperty("#/definitions/ConceptGetFull")) + .property("priorityComment", new StringProperty()).property("voided", new BooleanProperty()) + .property("voidedReason", new StringProperty()).property("auditInfo", new StringProperty()) + .property("patient", new RefProperty("#/definitions/PatientGetRef")) + .property("locationWaitingFor", new RefProperty("#/definitions/LocationGetFull")) + .property("queueComingFrom", new RefProperty("#/definitions/QueueGetFull")) + .property("providerWaitingFor", new RefProperty("#/definitions/ProviderGetFull")); + } + return model; + } + @PropertyGetter("display") public String getDisplay(QueueEntry queueEntry) { //Display patient name diff --git a/omod/src/main/java/org/openmrs/module/queue/web/resources/QueueResource.java b/omod/src/main/java/org/openmrs/module/queue/web/resources/QueueResource.java index c8e06181..9b8fed8b 100644 --- a/omod/src/main/java/org/openmrs/module/queue/web/resources/QueueResource.java +++ b/omod/src/main/java/org/openmrs/module/queue/web/resources/QueueResource.java @@ -16,6 +16,10 @@ import java.util.Map; import java.util.Optional; +import io.swagger.models.Model; +import io.swagger.models.ModelImpl; +import io.swagger.models.properties.RefProperty; +import io.swagger.models.properties.StringProperty; import org.openmrs.api.context.Context; import org.openmrs.module.queue.api.QueueServicesWrapper; import org.openmrs.module.queue.api.search.QueueSearchCriteria; @@ -152,6 +156,51 @@ public DelegatingResourceDescription getUpdatableProperties() throws ResourceDoe return this.getCreatableProperties(); } + @Override + public Model getGETModel(Representation rep) { + ModelImpl model = (ModelImpl) super.getGETModel(rep); + if (rep instanceof RefRepresentation) { + model.property("uuid", new StringProperty().example("uuid")).property("display", new StringProperty()) + .property("name", new StringProperty()).property("description", new StringProperty()); + } + if (rep instanceof DefaultRepresentation) { + model.property("uuid", new StringProperty().example("uuid")).property("display", new StringProperty()) + .property("name", new StringProperty()).property("description", new StringProperty()) + .property("location", new RefProperty("#/definitions/LocationGet")) + .property("service", new RefProperty("#/definitions/ConceptGet")) + .property("priorityConceptSet", new RefProperty("#/definitions/ConceptGet")) + .property("statusConceptSet", new RefProperty("#/definitions/ConceptGet")) + .property("allowedPriorities", new RefProperty("#/definitions/ConceptGet")) + .property("allowedStatuses", new RefProperty("#/definitions/ConceptGet")); + } + if (rep instanceof FullRepresentation) { + model.property("uuid", new StringProperty().example("uuid")).property("display", new StringProperty()) + .property("name", new StringProperty()).property("description", new StringProperty()) + .property("location", new RefProperty("#/definitions/LocationGet")) + .property("service", new RefProperty("#/definitions/ConceptGet")) + .property("priorityConceptSet", new RefProperty("#/definitions/ConceptGet")) + .property("statusConceptSet", new RefProperty("#/definitions/ConceptGet")) + .property("allowedPriorities", new RefProperty("#/definitions/ConceptGet")) + .property("allowedStatuses", new RefProperty("#/definitions/ConceptGet")) + .property("auditInfo", new StringProperty()); + } + return model; + } + + @Override + public Model getCREATEModel(Representation rep) { + return new ModelImpl().property("name", new StringProperty()).property("description", new StringProperty()) + .property("location", new RefProperty("#/definitions/LocationCreate")) + .property("service", new RefProperty("#/definitions/ConceptCreate")) + .property("priorityConceptSet", new RefProperty("#/definitions/ConceptCreate")) + .property("statusConceptSet", new RefProperty("#/definitions/ConceptCreate")); + } + + @Override + public Model getUPDATEModel(Representation rep) { + return getCREATEModel(rep); + } + @Override @SuppressWarnings("unchecked") protected PageableResult doSearch(RequestContext requestContext) { diff --git a/omod/src/main/java/org/openmrs/module/queue/web/resources/QueueRoomResource.java b/omod/src/main/java/org/openmrs/module/queue/web/resources/QueueRoomResource.java index 744b06e7..f7f017a0 100644 --- a/omod/src/main/java/org/openmrs/module/queue/web/resources/QueueRoomResource.java +++ b/omod/src/main/java/org/openmrs/module/queue/web/resources/QueueRoomResource.java @@ -14,6 +14,10 @@ import java.util.Map; import java.util.Optional; +import io.swagger.models.Model; +import io.swagger.models.ModelImpl; +import io.swagger.models.properties.RefProperty; +import io.swagger.models.properties.StringProperty; import org.openmrs.api.context.Context; import org.openmrs.module.queue.api.QueueServicesWrapper; import org.openmrs.module.queue.api.search.QueueRoomSearchCriteria; @@ -142,6 +146,38 @@ public DelegatingResourceDescription getUpdatableProperties() throws ResourceDoe return this.getCreatableProperties(); } + @Override + public Model getGETModel(Representation rep) { + ModelImpl model = (ModelImpl) super.getGETModel(rep); + if (rep instanceof DefaultRepresentation) { + model.property("uuid", new StringProperty()).property("display", new StringProperty()) + .property("name", new StringProperty()).property("description", new StringProperty()) + .property("queue", new RefProperty("#/definitions/QueueGet")); + } + if (rep instanceof FullRepresentation) { + model.property("queue", new RefProperty("#/definitions/QueueGetFull")) + .property("auditInfo", new StringProperty()).property("queue", new StringProperty()); + } + + if (rep instanceof RefRepresentation) { + model.property("uuid", new StringProperty()).property("display", new StringProperty()) + .property("name", new StringProperty()).property("description", new StringProperty()) + .property("queue", new RefProperty("#/definitions/QueueGetRef")); + } + return model; + } + + @Override + public Model getCREATEModel(Representation rep) { + return new ModelImpl().property("name", new StringProperty()).property("description", new StringProperty()) + .property("queue", new RefProperty("#/definitions/QueueCreate")); + } + + @Override + public Model getUPDATEModel(Representation rep) { + return getCREATEModel(rep); + } + @PropertyGetter("display") public String getDisplay(QueueRoom queueRoom) { return queueRoom.getName(); diff --git a/omod/src/main/java/org/openmrs/module/queue/web/resources/RoomProviderMapResource.java b/omod/src/main/java/org/openmrs/module/queue/web/resources/RoomProviderMapResource.java index 9bbeac38..8704c149 100644 --- a/omod/src/main/java/org/openmrs/module/queue/web/resources/RoomProviderMapResource.java +++ b/omod/src/main/java/org/openmrs/module/queue/web/resources/RoomProviderMapResource.java @@ -14,6 +14,10 @@ import java.util.Map; import java.util.Optional; +import io.swagger.models.Model; +import io.swagger.models.ModelImpl; +import io.swagger.models.properties.RefProperty; +import io.swagger.models.properties.StringProperty; import org.openmrs.api.context.Context; import org.openmrs.module.queue.api.QueueServicesWrapper; import org.openmrs.module.queue.api.search.RoomProviderMapSearchCriteria; @@ -141,4 +145,36 @@ public DelegatingResourceDescription getUpdatableProperties() throws ResourceDoe return this.getCreatableProperties(); } + @Override + public Model getGETModel(Representation rep) { + ModelImpl model = (ModelImpl) super.getGETModel(rep); + if (rep instanceof DefaultRepresentation || rep instanceof FullRepresentation) { + model.property("uuid", new StringProperty()).property("queueRoom", new StringProperty()).property("provider", + new RefProperty("#/definitions/ProviderGetRef")); + } + if (rep instanceof FullRepresentation) { + model.property("provider", new RefProperty("#/definitions/ProviderGet")); + } + return model; + } + + @Override + public Model getCREATEModel(Representation rep) { + ModelImpl model = new ModelImpl().property("provider", new StringProperty().example("uuid")).property("queueRoom", + new StringProperty().example("uuid")); + if (rep instanceof FullRepresentation) { + model.property("provider", new RefProperty("#/definitions/ProviderCreate")); + } + return model; + } + + @Override + public Model getUPDATEModel(Representation rep) { + ModelImpl model = new ModelImpl().property("provider", new StringProperty().example("uuid")).property("queueRoom", + new StringProperty().example("uuid")); + if (rep instanceof FullRepresentation) { + model.property("provider", new RefProperty("#/definitions/ProviderCreate")); + } + return model; + } } diff --git a/pom.xml b/pom.xml index 800ae940..655c8a1f 100644 --- a/pom.xml +++ b/pom.xml @@ -309,6 +309,15 @@ net.revelc.code impsort-maven-plugin 1.5.0 + + + + org.codehaus.plexus + plexus-utils + 3.5.1 + + javax, java, * true @@ -321,6 +330,13 @@ + + + org.apache.maven.plugins + maven-resources-plugin + 3.1.0 + +