Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 14 Next »

Table of Contents

Temporal Token Generation

Current Implementation

For those actions that don't require a registered user, a temporal token must be generated. This temporal token has access to a limited sub-set of the REST API.
A temporal token is only valid for a 5 minutes span after it is created.

Parameters

Base URL: /validateAccount
Parameters:

NameTypeMandatoryDescription
temporalBooleanYesIndicates that we want to create a temporal security token.

 

API Sample

curl 'http://192.168.2.103:8080/PresentationServices/validateAccount?temporal=true&_=1400053144477' -H 'Origin: http://localhost' -H 'Accept-Encoding: gzip,deflate,sdch' -H 'Accept-Language: en-US,en;q=0.8,es;q=0.6,it;q=0.4' -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.132 Safari/537.36' -H 'Accept: application/json, text/javascript, */*; q=0.01' -H 'Referer: http://localhost/pqcnc2/views/loginCode.html' -H 'Connection: keep-alive' --compressed

 

Result
{
"validateAccountFact": {
"statusFact": {
"success": true
}
,"accountFact": {
"pin": null
,"token": "6d033802-9e9d-4fc6-a8fd-2a0c677a43a6"
,"role": null
,"userId": null
,"activeDevices": []
}
}
}

 

List Organizations

Current Implementation

Normally used to fill the 'Organizations' drop down. This API method can be used with a Temporal Token. It returns the list of all the organizations in the system.

Parameters

Base URL: /organizations
Parameters:

NameTypeMandatoryDescription
 tokenString Yes Security Token obtained before. 
temporalSessionBooleanNoDEFAULT: 'false'.
Indicates whether the provided token is temporal or not. 

API Sample

curl 'http://64.87.15.66:8080/PresentationServices/organizations?token=4804dff3-e2cd-498e-a7f6-2239b6a8f6e2&temporalSession=true&_=1400053839602' -H 'Accept: application/json, text/javascript, */*; q=0.01' -H 'User-Agent: Mozilla/5.0 (Linux; Android 4.4.2; Nexus 5 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36' --compressed

Result
{
data: [
{
id: "UNC",
name: "UNC" 
},
{
id: "Another1",
name: "Another Organization"
}
],
statusFact: {
success: true
}
}

Read Organization

Current Implementation

This operation returns all the information of an individual Organization.

Parameters

Base URL: /organizations/{organizationId}
Parameters:

NameTypeMandatoryDescription
{organizationId}StringYesThe id of the Organization.
tokenStringYesSecurity Token obtained before.
userIdStringYesThe id of the logged in user.

API Sample

http://192.168.1.126:8080/PresentationServices/organizations?token=c0014590-c367-4117-9f55-94292996e02a&userId=superadmin

Result
{ "data" : { "id" : "UNC",
"name" : "UNC"
},
"statusFact" : { "success" : true }
}

List Organization's Facilities

Current Implementation

Normally used to fill the 'Facilities' drop down. This API method can be used with a Temporal Token. It returns the list of all the facilities an Organization has.

Parameters

Base URL: /organizations/{organizationId}/facilities
Parameters:

NameTypeMandatoryDescription
{organizationId} StringYesThe id of the Organization.
tokenStringYesSecurity Token obtained before.
temporalSessionBooleanNoDEFAULT: 'false'.
Indicates whether the provided token is temporal or not. 

API Sample

curl 'http://192.168.0.14:8080/PresentationServices/organizations/UNC/facilities?token=a0c654bf-f3d0-4c21-8e0a-f8d94ac33548&temporalSession=true&_=1400055586281' -H 'Accept: application/json, text/javascript, */*; q=0.01' -H 'User-Agent: Mozilla/5.0 (Linux; Android 4.4.2; Nexus 5 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36' --compressed

Result
{
data: [
{
id: "NorthEastern",
nfcEnabled: true,
nfcSelfModificationEnabled: true,
name: "North Eastern",
barCodeEnabled: true,
organizationId: "UNC"
},
{
id: "Vidant",
nfcEnabled: false,
nfcSelfModificationEnabled: false,
name: "Vidant",
barCodeEnabled: false,
organizationId: "UNC"
},
{
id: "UNC",
nfcEnabled: true,
nfcSelfModificationEnabled: false,
name: "UNC",
barCodeEnabled: true,
organizationId: "UNC"
}
],
statusFact: {
success: true
}
}

Read Organization's Facility

Current Implementation

This operation returns all the information of an individual Facility.

Parameters

Base URL: /organizations/{organizationId}/facilities/{facilityId}
Parameters:

NameTypeMandatoryDescription
{organizationId} StringYesThe id of the Organization.
{facilityId}StringYesThe id of the Facility
tokenStringYesSecurity Token obtained before.
userIdStringYesThe id of the logged in user.

API Sample

Happy Scenario

http://192.168.1.126:8080/PresentationServices/organizations/UNC/facilities/Vidant?token=c0014590-c367-4117-9f55-94292996e02a&userId=superadmin

Result
{ "data" : {
id: "Vidant",
nfcEnabled: false,
nfcSelfModificationEnabled: false,
name: "Vidant",
barCodeEnabled: false,
organizationId: "UNC"
},
"statusFact" : { "success" : true }
}

Non Existing Facility

http://192.168.1.126:8080/PresentationServices/organizations/UNC/facilities/FakeFacility?token=c0014590-c367-4117-9f55-94292996e02a&userId=superadmin?token=c0014590-c367-4117-9f55-94292996e02a&userId=superadmin

Result
{ "statusFact" : { "failMessage" : "Error reading Facility",
"success" : false
} }

Non matching Organization-Facility

http://192.168.1.126:8080/PresentationServices/organizations/Another1/facilities/Vidant?token=c0014590-c367-4117-9f55-94292996e02a&userId=superadmin?token=c0014590-c367-4117-9f55-94292996e02a&userId=superadmin

Result
{ "statusFact" : { "failMessage" : "Error reading Facility",
"success" : false
} }

List Organization's Roles

Current Implementation

Normally used to fill the 'Roles' drop down. This API method can be used with a Temporal Token. It returns the list of all the roles an Organization has.

Parameters

Base URL: /organizations/{organizationId}/roles
Parameters:

NameTypeMandatoryDescription
{organizationId} StringYesThe id of the Organization.
tokenStringYesSecurity Token obtained before.
temporalSessionBooleanNoDEFAULT: 'false'.
Indicates whether the provided token is temporal or not. 

API Sample

curl 'http://192.168.0.14:8080/PresentationServices/organizations/UNC/roles?token=a0c654bf-f3d0-4c21-8e0a-f8d94ac33548&temporalSession=true&_=1400055586282' -H 'Accept: application/json, text/javascript, */*; q=0.01' -H 'User-Agent: Mozilla/5.0 (Linux; Android 4.4.2; Nexus 5 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36' --compressed

Result
{
data: [
{
id: 1,
description: "",
name: "admin",
organizationId: "UNC"
},
{
id: 2,
description: "",
name: "pod",
organizationId: "UNC"
}
],
statusFact: {
success: true
}
}

List Facility's Rooms

Current Implementation

Returns the list of all the Rooms of a Facility has.

Parameters

Base URL: /organizations/{organizationId}/facilities/{facilityId}/rooms
Parameters:

NameTypeMandatoryDescription
{organizationId} StringYesThe id of the Organization.
{facilityId}StringYesThe id of the Facility.
tokenStringYesSecurity Token obtained before.
userIdStringYesThe id of the logged in user.

API Sample

Happy Path

http://192.168.1.126:8080/PresentationServices/organizations/UNC/facilities/UNC/rooms?token=c0014590-c367-4117-9f55-94292996e02a&userId=superadmin

Result
{ "data" : [ { "facilityId" : "UNC",
"id" : "poda",
"name" : "Pod A"
},
{ "facilityId" : "UNC",
"id" : "podb",
"name" : "Pod B"
},
{ "facilityId" : "UNC",
"id" : "podc",
"name" : "Pod C"
},
{ "facilityId" : "UNC",
"id" : "podd",
"name" : "Pod D"
},
{ "facilityId" : "UNC",
"id" : "pode",
"name" : "Pod E"
},
{ "facilityId" : "UNC",
"id" : "podf",
"name" : "Pod F"
},
{ "facilityId" : "UNC",
"id" : "podg",
"name" : "Pod G"
}
],
"statusFact" : { "success" : true }
}

Read Facility's Room

Current Implementation

Returns all the information of a particular room within a Facility.

Parameters

Base URL: /organizations/{organizationId}/facilities/{facilityId}/rooms/{roomId}
Parameters:

NameTypeMandatoryDescription
{organizationId} StringYesThe id of the Organization.
{facilityId}StringYesThe id of the Facility.
{roomId}StringYesThe id of the Room.
tokenStringYesSecurity Token obtained before.
userIdStringYesThe id of the logged in user.

API Sample

Happy Path

http://192.168.1.126:8080/PresentationServices/organizations/UNC/facilities/UNC/rooms/poda?token=c0014590-c367-4117-9f55-94292996e02a&userId=superadmin

Result
{ "data" : { "facilityId" : "UNC",
"id" : "poda",
"name" : "Pod A"
},
"statusFact" : { "success" : true }
}

Non Existing Room

http://192.168.1.126:8080/PresentationServices/organizations/UNC/facilities/UNC/rooms/podX?token=c0014590-c367-4117-9f55-94292996e02a&userId=superadmin

Result
{ "statusFact" : { "failMessage" : "Error reading Room",
"success" : false
} }

User Registration

Current Implementation

This is a POST method. It persists a user in the database with a 'PENDING' status. Users with 'PENDING' status are not allowed to login into the application.

The following are the validations checked on the incoming data:

Mandatory fields:

  • firstName
  • lastName
  • email
  • password
  • facility
  • role
  • status

Validations:

  • A Facility with 'facility' id must exist
  • A Role with 'role' id must exist
  • A UserStatus with 'status' value must exist
  • 'password' must be longer than 5 characters and shorter than 20
  • If 'tagId (aka 'pin') is not null, it must be longer than 5 characters and shorter than 20
  • 'email' must be a well formed email
  • 'email' must be unique among existing users

Parameters

Base URL: /users
Parameters:

NameTypeMandatoryDescription
tokenStringYesSecurity Token obtained before.
temporalSessionBooleanNoDEFAULT: 'false'.
Indicates whether the provided token is temporal or not. 
firstNameStringYesThe name for the new user.
lastNameStringYesThe last name for the new user.
emailStringYesThe email address for the new user.
passwordStringYesThe password for the new user.
At the moment, this is plain text. 
organizationStringYesThe id of the organization for the new user.
facilityStringYesThe id of the facility for the new user.
roleStringYesThe id of the role for the new user.
tagIdStringNoThe NFC tag id (aka 'pin') for the new user.

API Sample

Happy Path

curl 'http://192.168.0.14:8080/PresentationServices/users' -H 'Accept: application/json, text/javascript, */*; q=0.01' -H 'Origin: file://' -H 'User-Agent: Mozilla/5.0 (Linux; Android 4.4.2; Nexus 5 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36' -H 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' --data 'firstName=Esteban&lastName=Aliverti&email=esteban.aliverti%40cogmed.com&password=1234&passwordConfirm=1234&organization=UNC&facility=Vidant&role=1&tagId=&token=01b1b134-71e9-4fad-9ca2-45b254e134ab&temporalSession=true' --compressed

Result
{ "data" : { "email" : "esteban.aliverti@cogmed.com",
"facilityId" : "Vidant",
"facilityName" : "Vidant",
"firstName" : "Esteban",
"id" : "5f238a75-58e5-434e-8576-7d84f911e63e",
"lastName" : "Aliverti",
"organizationId" : "UNC",
"organizationName" : "UNC",
"roleId" : 1,
"roleName" : "admin",
"status" : "PENDING",
"updateDate" : "Wed May 14 10:34:44 CEST 2014"
},
"statusFact" : { "success" : true }
}

Malformed email submitted

curl 'http://192.168.0.14:8080/PresentationServices/users' -H 'Accept: application/json, text/javascript, */*; q=0.01' -H 'Origin: file://' -H 'User-Agent: Mozilla/5.0 (Linux; Android 4.4.2; Nexus 5 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36' -H 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' --data 'firstName=Esteban&lastName=Aliverti&email=esteban.aliverti%40cogmed&password=1234&passwordConfirm=1234&organization=UNC&facility=Vidant&role=1&tagId=&token=01b1b134-71e9-4fad-9ca2-45b254e134ab&temporalSession=true' --compressed

Result
{ "data" : [ { "message" : "Malformed email: 'esteban.aliverti@cogmed'" } ],
"statusFact" : { "failMessage" : "Validation errors found",
"success" : false
}
}

Mandatory fields missing

curl 'http://192.168.0.14:8080/PresentationServices/users' -H 'Accept: application/json, text/javascript, */*; q=0.01' -H 'Origin: file://' -H 'User-Agent: Mozilla/5.0 (Linux; Android 4.4.2; Nexus 5 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36' -H 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' --data 'firstName=&lastName=Aliverti&email=esteban.aliverti%40cogmed.com&password=1234&passwordConfirm=1234&organization=UNC&facility=&role=1&tagId=&token=01b1b134-71e9-4fad-9ca2-45b254e134ab&temporalSession=true' --compressed

Result
{ "data" : [ { "message" : "First name is mandatory" },
{ "message" : "Facility is mandatory" }
],
"statusFact" : { "failMessage" : "Validation errors found",
"success" : false
}
}

List possible Users Statuses

Current Implementation

Normally used to fill the 'Status' drop down for a User. It returns the list of all the statuses a User can has.

Parameters

Base URL: /userStatuses
Parameters:

NameTypeMandatoryDescription
tokenStringYesSecurity Token obtained before.
userIdStringYesThe id of the logged in user.

API Sample

curl 'http://192.168.0.14:8080/PresentationServices/userStatuses?userId=sigal&token=8a4804ef-3301-4f89-a5a9-c3fed479d8c3&_=1400057312395' -H 'Accept: application/json, text/javascript, */*; q=0.01' -H 'User-Agent: Mozilla/5.0 (Linux; Android 4.4.2; Nexus 5 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36' --compressed

Result
{ "data" : [ { "value" : "ACTIVE" },
{ "value" : "PENDING" },
{ "value" : "SUSPENDED" },
{ "value" : "INACTIVE" }
],
"statusFact" : { "success" : true }
}

List Users

Current Implementation

Lists all the users in the application according to a series of filter parameters.

Parameters

Base URL: /users
Parameters:

NameTypeMandatoryDescription
tokenStringYesSecurity Token obtained before.
userIdStringYesThe id of the logged in user.
locationENUMYes

Possible values: ['organization', 'facility'].

Specifies whether we want to filter users by Organization or Facility.

locationIdStringYesThe id of the organization or facility we want to use for the filter.
statusStringNoThe id of the user's status we want to use for the filter.

API Sample

curl 'http://192.168.0.14:8080/PresentationServices/users?location=facility&locationId=UNC&status=ACTIVE&userId=sigal&token=8a4804ef-3301-4f89-a5a9-c3fed479d8c3&_=1400057312400' -H 'Accept: application/json, text/javascript, */*; q=0.01' -H 'User-Agent: Mozilla/5.0 (Linux; Android 4.4.2; Nexus 5 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36' --compressed

Result
{ "data" : [ { "email" : "e@e.com",
"facilityId" : "UNC",
"facilityName" : "UNC",
"firstName" : "e",
"id" : "354a7aae-ac06-4892-ac61-ce302351eb35",
"lastName" : "e",
"organizationId" : "UNC",
"organizationName" : "UNC",
"pin" : "esteban",
"roleId" : 2,
"roleName" : "pod",
"status" : "ACTIVE",
"username" : "username-e",
"updateDate" : "2014-01-06 19:07:40.0"
},
{ "facilityId" : "UNC",
"facilityName" : "UNC",
"id" : "chargenurse",
"organizationId" : "UNC",
"organizationName" : "UNC",
"pin" : "charge",
"roleId" : 1,
"roleName" : "admin",
"status" : "ACTIVE",
"username" : "username-charge",
"updateDate" : "2013-03-08 01:20:37.0"
},
...
],
"statusFact" : { "success" : true }
}

Read User Information

Current Implementation

Returns the information related to a User.

Parameters

Base URL: /users/{requestedUserId}
Parameters:

NameTypeMandatoryDescription
{requestedUserId}StringYesThe id of the requested user.
tokenStringYesSecurity Token obtained before.
userIdStringYesThe id of the logged in user.

API Sample

curl 'http://192.168.0.14:8080/PresentationServices/users/354a7aae-ac06-4892-ac61-ce302351eb35?userId=sigal&token=8a4804ef-3301-4f89-a5a9-c3fed479d8c3&_=1400057312409' -H 'Accept: application/json, text/javascript, */*; q=0.01' -H 'User-Agent: Mozilla/5.0 (Linux; Android 4.4.2; Nexus 5 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36' --compressed

Result
{
data: {
id: "354a7aae-ac06-4892-ac61-ce302351eb35",
lastName: "e",
facilityName: "UNC",
organizationName: "UNC",
status: "ACTIVE",
pin: "esteban",
email: "e@e.com",
roleName: "pod",
organizationId: "UNC",
firstName: "e",
facilityId: "UNC",
updateDate: "2014-01-06 19:07:40.0",
roleId: 2
},
statusFact: {
success: true
}
}

Update User Information

Current Implementation

This is a POST method. Modifies user information such as Status, Name, Last Name, Organization, Role, etc.

The following are the validations checked on the incoming data:

Mandatory fields:

  • firstName
  • lastName
  • email
  • password
  • facility
  • role
  • status

Validations:

  • A Facility with 'facility' id must exist
  • A Role with 'role' id must exist
  • A UserStatus with 'status' value must exist
  • 'password' must be longer than 5 characters and shorter than 20
  • If 'tagId' (aka 'pin') is not null, it must be longer than 5 characters and shorter than 20
  • 'email' must be a well formed email
  • 'email' must be unique among existing users.

The result in case of validation errors has the same structure as the validation errors returned by the patient creation operation.

I.e.

Result
{ "data" : [ { "message" : "First name is mandatory" },
{ "message" : "Facility is mandatory" }
],
"statusFact" : { "failMessage" : "Validation errors found",
"success" : false
}
}

Parameters

Base URL: /users/{requestedUserId}
Parameters:

NameTypeMandatoryDescription
{requestedUserId}StringYesThe id of the requested user.
tokenStringYesSecurity Token obtained before.
userIdStringYesThe id of the logged in user.
firstNameStringYesThe new name for the user.
lastNameStringYesThe new last name for the user.
emailStringYesThe new email address for the user.
passwordStringNo

The new password for the user.
At the moment, this is plain text. If this value is not provided, the original password of the user will not be modified.

organizationStringYesThe new id of the organization for the user.
facilityStringYesThe new id of the facility for the user.
roleStringYesThe new id of the role for the user.
tagIdStringNoThe new NFC tag id (aka 'pin') for the new user. If this value is not provided, the original pin of the user will not be modified.

API Sample

curl 'http://192.168.2.103:8080/PresentationServices/users/354a7aae-ac06-4892-ac61-ce302351eb35' -H 'Accept: application/json, text/javascript, */*; q=0.01' -H 'Origin: file://' -H 'User-Agent: Mozilla/5.0 (Linux; Android 4.4.2; Nexus 5 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36' -H 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' --data 'firstName=e&lastName=e&email=e%40e.com&password=&organization=UNC&facility=UNC&role=2&status=SUSPENDED&userId=sigal&token=8a4804ef-3301-4f89-a5a9-c3fed479d8c3' --compressed

 

Result
{ "data" : { "email" : "e@e.com",
"facilityId" : "UNC",
"facilityName" : "UNC",
"firstName" : "e",
"id" : "354a7aae-ac06-4892-ac61-ce302351eb35",
"lastName" : "e",
"organizationId" : "UNC",
"organizationName" : "UNC",
"roleId" : 2,
"roleName" : "pod",
"status" : "SUSPENDED",
"updateDate" : "Wed May 14 13:24:38 CEST 2014"
},
"statusFact" : { "success" : true }
}

Delete User

Current Implementation

This is a DELETE method. Modifies user status to INACTIVE.

The final result is the same as using the Update User Information operation using INACTIVE as the new status.

Parameters

Base URL: /users/{requestedUserId}
Parameters:

NameTypeMandatoryDescription
{requestedUserId}StringYesThe id of the requested user.
tokenStringYesSecurity Token obtained before.
userIdStringYesThe id of the logged in user.

API Sample

curl -X DELETE 'http://192.168.2.103:8080/PresentationServices/users/354a7aae-ac06-4892-ac61-ce302351eb35' -H 'Accept: application/json, text/javascript, */*; q=0.01' -H 'Origin: file://' -H 'User-Agent: Mozilla/5.0 (Linux; Android 4.4.2; Nexus 5 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36' -H 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' --compressed

Result
{ "statusFact" : { "success" : true }}
  • No labels