Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

This was the project page for the 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
titleRef example
concept.conceptDatatype \->
display: "Numeric",
uuid: "8d4a4488-c2cc-11de-8d13-0010c6dffd0f",
uri: "/ws/rest/conceptdatatype/8d4a4488-c2cc-11de-8d13-0010c6dffd0f"


Concept Properties

Code Block
javatitleConcept object
// 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
titleConcept object in JSON
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
locale: en
description: "Stuff in the blood" (<-- this is an optional include)
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"
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


Add a name to a concept
POST to /ws/rest/concept/theconceptsuuid/name
with content:
name:a name
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

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
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
   { hiAbsolute: 1000
     hiCritical: 150
     units: kg
     precise: false

User Stories for 1.0

See Web Service 1.0 User Stories