Property Representation (GET)

The properties of an object can be found in the View Objects page. Object properties in Oracle Health InsuranceComponents can have different data types, this section how the different data types are represented in a resource representation as a response to a GET operation.

Empty Properties

Properties that have no value ("are null") are not present in the resource representation.

Basic Properties (Single Value)

The table below describes how the basic properties are represented. Basic Properties have a single, simple (=non-composite) value. They are also know as native data types or primitive types. Examples:

  1. The "claim" resource has a property "code".

  2. The "claimline" resource has a property "sequence".

Type in View Objects Page JSON Datatype JSON Representation Example Remark

Integer

Number

"sequence" : 2

Long

Number

"id" : 50422

BigDecimal

Number

"claimedNumberOfUnits" : 1.2345

Always using a decimal point

OhiMoney

Object

"totalClaimedAmount" : {

"value" : 123.46,

"currency" : "USD"

}

Currency is the ISO 4217 currency code.

Date

String

"entryDate" : "2012-05-11"

Datetime

Object

"startTime" : {

"value" : "2012-02-24T14:45:29.851+01:00",

"timezone" : "Europe/Amsterdam"

}

The "timezone" attribute is added for future use. It is currently only present in the payload definition, but the value is not processed. Nor is it populated during GET operations.

String

String

"code" : "ABC"

Boolean

Boolean

"manual" : true

Reference Properties (Single Value)

Properties can also have a more complex type. For example: a claim has a property "locationProvider" of type "organizationProvider". The type "organizationProvider" is a composition of multiple native data types and other object types (contains "code", "name" etc).

Reference Properties are represented as links in an HTTP API resource representation:

"<propertyName>": {
  "links": [
    {
      "href": "http://[hostName]:[portNumber]/[api-context-root]/generic/{referenceCollection}/{id}",
      "rel": "canonical"
    }
  ]
}

Insurable Entity referencing Properties

A reference can also be to a customer defined Insurable Entity. For example, a claim has a servicedEntity, which can either refer to a person, a car or a house.

For those properties, the link will reference the resource specific for the insurable entity type.

"<propertyName>": {
  "links": [
    {
      "href": "http://[hostName]:[portNumber]/[api-context-root]/generic/{insurable entity type referenceCollection}/{id}",
      "rel": "canonical"
    }
  ]
}

For example:

"car": {
  "links": [
    {
      "href": "http://[hostName]:[portNumber]/[api-context-root]/generic/cars/123",
      "rel": "canonical"
    }
  ]
}
Note

Oracle Health Insurance Components does not support multi value or time valid properties that reference an insurable entity type.

Flex Code based Properties Diagnosis, Procedure and Provider (Single Value)

Those are represented similar to reference properties with the addition of "flexCodeDefinitionCode" and "value":

"<propertyName>": {
  "flexCodeDefinitionCode": "<code of the flex code definition>",
  "value": "<flex code>"
  "links": [
    {
      "href": "http://[hostName]:[portNumber]/[api-context-root]/generic/{referenceCollection}/{id}",
      "rel": "canonical"
    }
  ]
}

This applied to flex codes of all types (diagnoses, procedures and providers). For consistency reasons, fixed properties that reference a procedure, a diagnosis or a provider have the same representation.

Flex Code based Properties (Single Value)

Flex codes are represented similar to reference properties with the addition of "flexCodeDefinitionCode", "descriptor" and "value":

"<propertyName>": {
  "flexCodeDefinitionCode": "<code of the flex code definition>",
  "value": "<flex code>",
  "descriptor": "<value of the descriptor attribute of this flex code>",
  "links": [
    {
      "href": "http://[hostName]:[portNumber]/[api-context-root]/generic/flexcodes/{id}",
      "rel": "canonical"
    }
  ]
}

Dynamic Record (Single Value)

Many tables in Oracle Health Insuranceapplications can be extended with dynamic records. Single value dynamic records are presented in the resource like this:

"<propertyName>": {
  "id": 1,
  ... record properties represented the same way as resource properties
}

The properties of the dynamic record are represented using the normal representations matching their data type. For example: dynamic record definition "favoriteDentist" has two properties:

  1. "dentist" which is of type "provider".

  2. "lastVisit" which is of type "date".

Object "person" is extended with record definition "favoriteDentist" (single value), field usage name is "myDentist". The resource presentation of a person will look like this:

"myDentist": {
  "id": 12345,
  "dentist": {
    "flexCodeDefinitionCode": "<code of the flex code definition>",
    "descriptor": "<value of the descriptor attribute of this flex code>",
    "value": "<flex code>"
    "links": [
      {
        "href": "http://[hostName]:[portNumber]/[api-context-root]/generic/providers/{id}",
        "rel": "canonical"
      }
    ]
  },
  "lastVisit": "2012-05-11"
}

Basic Properties (Multi Value)

Multi value types are represented as array:

"multiValueProperty" : [{value 1 representation}, {value 2 representation} ..., {value n representation}]

Some examples:

"extractedTeeth" : [1,5,8],
"visitedStates" : ["NY", "CA"]

Flex Code based Properties Diagnosis, Procedure and Provider (Multi Value)

Those are represented as an array as well:

"<multi value propertyName>":
  [{
    "flexCodeDefinitionCode": "<code of the flex code definition>",
    "value": "<flex code>"
    "links": [
      {
        "href": "http://[hostName]:[portNumber]/[api-context-root]/generic/{referenceCollection}/{id1}",
        "rel": "canonical"
      }
    ]
  }, {
    "flexCodeDefinitionCode": "<code of the flex code definition>",
    "value": "<flex code>"
    "links": [
      {
        "href": "http://[hostName]:[portNumber]/[api-context-root]/generic/{referenceCollection}/{id2}",
        "rel": "canonical"
      }
    ]
  }]

Flex Code based Properties (Multi Value)

Those are represented as an array as well:

"<multi value propertyName>":
  [{
    "flexCodeDefinitionCode": "<code of the flex code definition>",
    "value": "<flex code>",
    "descriptor": "<value of the descriptor attribute of this flex code>",
    "links": [
      {
        "href": "http://[hostName]:[portNumber]/[api-context-root]/generic/flexcodes/{id1}",
        "rel": "canonical"
      }
    ]
  }, {
    "flexCodeDefinitionCode": "<code of the flex code definition>",
    "value": "<flex code>",
    "descriptor": "<value of the descriptor attribute of this flex code>",
    "links": [
      {
        "href": "http://[hostName]:[portNumber]/[api-context-root]/generic/flexcodes/{id2}",
        "rel": "canonical"
      }
    ]
  }]

Dynamic Record (Multi Value)

Again, represented as array:

"myDentists": [{
  "id": 123,
  "dentist": {
    "flexCodeDefinitionCode": "<code of the flex code definition>",
    "value": "<flex code>"
    "links": [
      {
        "href": "http://[hostName]:[portNumber]/[api-context-root]/generic/providers/{id1}",
        "rel": "canonical"
      }
    ]
  },
  "lastVisit": "2012-05-11"
}, {
  "id": 456,
  "dentist": {
    "flexCodeDefinitionCode": "<code of the flex code definition>",
    "value": "<flex code>"
    "links": [
      {
        "href": "http://[hostName]:[portNumber]/[api-context-root]/generic/providers/{id2}",
        "rel": "canonical"
      }
    ]
  },
  "lastVisit": "2013-05-11"
}]

Basic Properties (Time Valid)

Time valid properties are represented as an array. The array elements have an additional required "startDate" and an optional "endDate" property.

"<property name of time valid string>": [
  {
    "startDate": "2016-11-05",
    "endDate": "2016-11-21",
    "value": "A"
  },
  {
    "startDate": "2016-12-05",
    "endDate": "2016-12-21",
    "value": "B"
 }
]

Reference Properties (Time Valid)

Just included in an array and startDate and endDate added like this:

"referenceTimeValid":
  [{
    "startDate": "2016-12-05",
    "endDate": "2016-12-21",
    "links": [
      {
         "href": "http://[hostName]:[portNumber]/[api-context-root]/generic/{referenceCollection}/{id1}",
        "rel": "canonical"
      }
    ]
  }, {
    "startDate": "2016-11-05",
    "endDate": "2016-11-21",
    "links": [
      {
        "href": "http://[hostName]:[portNumber]/[api-context-root]/generic/{referenceCollection}/{id2}",
        "rel": "canonical"
      }
    ]
  }]

Flex Code based Properties Diagnosis, Procedure, Provider (Time Valid)

Just included in an array and startDate and endDate added like this:

"<multi value propertyName>":
  [{
    "startDate": "2015-12-05",
    "endDate": "2015-12-21",
    "flexCodeDefinitionCode": "<code of the flex code definition>",
    "value": "<flex code>"
    "links": [
      {
        "href": "http://[hostName]:[portNumber]/[api-context-root]/generic/{referenceCollection}/{id1}",
        "rel": "canonical"
      }
    ]
  }, {
    "startDate": "2016-12-05",
    "endDate": "2016-12-21",
    "flexCodeDefinitionCode": "<code of the flex code definition>",
    "value": "<flex code>"
    "links": [
      "href": "http://[hostName]:[portNumber]/[api-context-root]/generic/{referenceCollection}/{id2}",
      "rel": "canonical"
    }
  ]
}]

Flex Code based Properties (Time Valid)

Just included in an array and startDate and endDate added like this:

"<multi value propertyName>":
  [{
    "startDate": "2015-12-05",
    "endDate": "2015-12-21",
    "flexCodeDefinitionCode": "<code of the flex code definition>",
    "value": "<flex code>",
    "descriptor": "<value of the descriptor attribute of this flex code>",
    "links": [
      {
        "href": "http://[hostName]:[portNumber]/[api-context-root]/generic/flexcodes/{id1}",
        "rel": "canonical"
      }
    ]
  }, {
    "startDate": "2016-12-05",
    "endDate": "2016-12-21",
    "flexCodeDefinitionCode": "<code of the flex code definition>",
    "value": "<flex code>",
    "descriptor": "<value of the descriptor attribute of this flex code>",
    "links": [
      "href": "http://[hostName]:[portNumber]/[api-context-root]/generic/flexcodes/{id2}",
      "rel": "canonical"
    }
  ]
}]

Dynamic Record (Time Valid)

Included in an array and startDate and endDate added like this example:

"myDentists": [{
  "id": 123,
  "startDate": "2012-05-11"
  "endDate": "2012-06-11"
  "dentist": {
    "flexCodeDefinitionCode": "<code of the flex code definition>",
    "value": "<flex code>"
    "links": [
      {
        "href": "http://[hostName]:[portNumber]/[api-context-root]/generic/providers/{id1}",
        "rel": "canonical"
      }
    ]
  },
}, {
  "id": 456,
  "startDate": "2013-05-11"
  "endDate": "2013-06-11"
  "dentist": {
    "flexCodeDefinitionCode": "<code of the flex code definition>",
    "value": "<flex code>"
    "links": [
      {
        "href": "http://[hostName]:[portNumber]/[api-context-root]/generic/providers/{id2}",
        "rel": "canonical"
      }
    ]
  },
}]