Note |
---|
This was the project page for the Webservices.rest Module while it was being created. See that page for up-to-date documentation |
...
When an object is a subresource on another object (e.g. conceptDatatype property on Concept object) the full ConceptDatatype object is not returned. Instead a "Ref" kind of class with String properties for uuid
, uri
, and a display
fills the concept.conceptDatatype property. The ref looks like this:
Code Block | lang | javascript|||
---|---|---|---|---|
| ||||
concept.conceptDatatype \-> { display: "Numeric", uuid: "8d4a4488-c2cc-11de-8d13-0010c6dffd0f", uri: "/ws/rest/conceptdatatype/8d4a4488-c2cc-11de-8d13-0010c6dffd0f" } |
...
Adding A Web Service
See this page on Adding a Web Service Step by Step Guide for Core Developers (REST 1.x)
Adding a Web Service to Your Module
See this page on Adding a Web Service Step by Step Guide for Module Developers (REST 1.x)
Concept Example
Concept Properties
Code Block | lang | java|||
---|---|---|---|---|
| ||||
// required for creation Ref conceptDatatype Ref conceptClass String name // primary name String locale // locale of primary name // always returned (in addition to above) String uuid boolean retired // optional (null unless requested) String description AuditInfo auditInfo List<Ref> names List<Ref> shortNames List<Ref> descriptions List<Ref> setMembers List<ConceptAnswer> answers // intentionally not exposed: conceptId, isSet, version |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ conceptDatatype: {display:"Numeric", uuid: "2348321402134", link:"/ws/rest/conceptdatatype/2348321402134"}, conceptClass: {display:"Finding", uuid: "nhj32fdnm2-23nmd32", link:"/ws/rest/conceptdatatype/2348321402134"}, name: "Weight (KG)", locale: "en_US", uuid: 3219fnmj23r9nmfd, retired: false, description: "A patient's weight as determined in kilograms", /\* (only returned if asked for) \*/ names: \[{display:"Weight (KG)", uuid: "3n23dnk23r", link:"ws/rest/concept/3219fnmj23r9nmfd/name/3n23dnk23r"}, {display:"Uzito (KG)", uuid: "39i324i8abf-234", link:"ws/rest/concept/3219fnmj23r9nmfd/name/39i324i8abf-234"}\], descriptions: \[\], setMembers: \[{...},{...},{...}\] } |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
Ref creator Date dateCreated Ref changedBy Date dateChanged Ref retiredBy Date dateRetired String retireReason Ref voidedBy Date dateVoided String voidReason |
...
Create a concept
POST to /ws/rest/concept
with content:
conceptDatatype: Numeric
conceptClass: test
name: HEMOGLOBIN
locale: en
description: "Stuff in the blood" (<-- this is an optional include)
returns:
success = 201 CREATED
location: http://.../ws/rest/concept/newconceptuuid
content: default rep of created concept
...
Update a concept
PUT to /ws/rest/concept/2dw23-z113-234234-2sdfr3
with content:
conceptClass: "Symptom"
description: "a new description"
returns:
success = 204 NO CONTENT
or no concept found for given uuid = 404 NOT FOUND error code returned
or on failure = 400 or 500 error code returned
Delete a concept
DELETE to /ws/rest/concept/2dw23-z113-234234-2sdfr3?reason=because
(delete calls do not have bodies)
returns:success = 204 NO CONTENT
Purge a concept
DELETE to /ws/rest/concept/2dw23-z113-234234-2sdfr3?purge=true
returns:
success = 204 NO CONTENT
...
Add a name to a concept
POST to /ws/rest/concept/theconceptsuuid/name
with content:
name:a name
locale:en_US
preferred:true
type:Fully Specified
...other name properties optional
...
Add a short name to a concept
POST to /ws/rest/concept/theconceptuuid/shortname
with request body content:
name:a short name
locale:en_US
Remove a short name from a concept:
(same options as Add Name To Concept/Remove Name From Concept. The point is that short name is a separate property, not an alternate name)
Edit an existing name (only props sent will get changed)
PUT to /ws/rest/concept/theconceptuuid/name/thenameuuid
localePreferred:true
locale:en_US
name:a modified name
Add member to set needs work
PUT to /ws/rest/concept/theconceptuuid/members
beforeOtherMember:othermemberuuid (assigns isSet=true on the set if not already specified. if beforeOtherMember is null, thememberuuid is put at the end of the list)
Add many members to a set
POST to /ws/rest/concept/thesetconceptuuid/members
memberUuids:2342349323, 2349234923420394, snmcnmw4923409234234, 2349284347nhj3
(Replaces all with the given order)
...
Are treated as optional properties on the concept class:
GET to /ws/rest/concept/349882349823
with representation: v=custom(default,conceptNumeric)
will return:
name: Weight (KG)
locale: en
retired: false
conceptNumeric:
{ hiAbsolute: 1000
hiCritical: 150
....
units: kg
precise: false
}