use of org.sagebionetworks.bridge.models.StatusMessage in project BridgeServer2 by Sage-Bionetworks.
the class CRCController method updateParticipant.
@PostMapping("/v1/cuimc/participants/{userId}/laborders")
public StatusMessage updateParticipant(@PathVariable String userId) {
App app = httpBasicAuthentication();
AccountId accountId = parseAccountId(app.getIdentifier(), userId);
Account account = accountService.getAccount(accountId).orElseThrow(() -> new EntityNotFoundException(Account.class));
if (account == null) {
throw new EntityNotFoundException(Account.class);
}
updateState(account, SELECTED);
accountService.updateAccount(account);
return new StatusMessage("Participant updated.");
}
use of org.sagebionetworks.bridge.models.StatusMessage in project BridgeServer2 by Sage-Bionetworks.
the class CRCController method postProcedureRequest.
@PutMapping("/v1/cuimc/procedurerequests")
public ResponseEntity<StatusMessage> postProcedureRequest() {
App app = httpBasicAuthentication();
IParser parser = FHIR_CONTEXT.newJsonParser();
JsonNode data = parseJson(JsonNode.class);
ProcedureRequest procedure = parser.parseResource(ProcedureRequest.class, data.toString());
String userId = findUserId(procedure.getSubject());
int status = writeReportAndUpdateState(app, userId, data, PROCEDURE_REPORT, AccountStates.TESTS_COLLECTED, true);
if (status == 200) {
return ResponseEntity.ok(new StatusMessage("ProcedureRequest updated."));
}
return ResponseEntity.created(URI.create("/v1/cuimc/procedurerequests/" + userId)).body(new StatusMessage("ProcedureRequest created."));
}
use of org.sagebionetworks.bridge.models.StatusMessage in project BridgeServer2 by Sage-Bionetworks.
the class CRCController method internalLabShipmentRequest.
ResponseEntity<StatusMessage> internalLabShipmentRequest(App app, AccountId accountId) {
Account account = accountService.getAccount(accountId).orElseThrow(() -> new EntityNotFoundException(Account.class));
if (account.getDataGroups().contains(SHIP_TESTS_REQUESTED.name().toLowerCase())) {
throw new LimitExceededException("Limited to one active shipment request.");
}
boolean isTestUser = account.getDataGroups().contains(TEST_USER_GROUP);
LOG.info("Lab shipment requested for {} participant", isTestUser ? "test" : "non-test");
LocalDate date = LocalDate.now();
Order.ShippingInfo.Address address = validateAndGetAddress(account);
String orderNumber = account.getId() + "_" + date;
Order o = new Order(isTestUser, orderNumber, account.getId(), date, new Order.ShippingInfo(address, GBF_TEST_KIT_SHIP_METHOD), new Order.LineItem(GBF_TEST_KIT_PART_NUMBER, 1));
gbfOrderService.placeOrder(o, isTestUser);
JsonNode node = JsonNodeFactory.instance.objectNode().put(SHIPMENT_REPORT_KEY_ORDER_ID, orderNumber);
// participants will not have Org Sponsored Studies in RequestContext, so for lab shipment reports, don't set study IDs
writeReportAndUpdateState(app, account.getId(), node, SHIPMENT_REPORT, SHIP_TESTS_REQUESTED, false);
return ResponseEntity.accepted().body(new StatusMessage(isTestUser ? "Test" : "Non-test" + " shipment requested."));
}
use of org.sagebionetworks.bridge.models.StatusMessage in project BridgeServer2 by Sage-Bionetworks.
the class AppConfigElementsController method deleteElementRevision.
@DeleteMapping("/v3/appconfigs/elements/{id}/revisions/{revision}")
public StatusMessage deleteElementRevision(@PathVariable String id, @PathVariable String revision, @RequestParam(required = false) String physical) {
UserSession session = getAuthenticatedSession(DEVELOPER);
Long revisionLong = BridgeUtils.getLongOrDefault(revision, null);
if (revisionLong == null) {
throw new BadRequestException("Revision is not a valid revision number");
}
if ("true".equals(physical) && session.isInRole(ADMIN)) {
service.deleteElementRevisionPermanently(session.getAppId(), id, revisionLong);
} else {
service.deleteElementRevision(session.getAppId(), id, revisionLong);
}
// App config elements are included in the app configs, so allow cache to update
cacheProvider.removeSetOfCacheKeys(CacheKey.appConfigList(session.getAppId()));
return new StatusMessage("App config element revision deleted.");
}
use of org.sagebionetworks.bridge.models.StatusMessage in project BridgeServer2 by Sage-Bionetworks.
the class AppConfigElementsController method deleteElementAllRevisions.
@DeleteMapping("/v3/appconfigs/elements/{id}")
public StatusMessage deleteElementAllRevisions(@PathVariable String id, @RequestParam(required = false) String physical) {
UserSession session = getAuthenticatedSession(DEVELOPER);
if ("true".equals(physical) && session.isInRole(ADMIN)) {
service.deleteElementAllRevisionsPermanently(session.getAppId(), id);
} else {
service.deleteElementAllRevisions(session.getAppId(), id);
}
// App config elements are included in the app configs, so allow cache to update
cacheProvider.removeSetOfCacheKeys(CacheKey.appConfigList(session.getAppId()));
return new StatusMessage("App config element deleted.");
}
Aggregations