Base View Details

The Base View Generation Integration Point can be used to generate base views and to browse them.

Creation of Base Views

There is one base view for each functionally meaningful entity of the Oracle Health Insurance application. Besides the entity model, also the extensibility configuration influences the generation of the base views. The (re)generation of the base views is not done automatically, but must be triggered using the above mentioned integration point.

Events that may result in (re)generation of the base views:

  1. The initial installation of an OHI application

  2. The installation of a patch of an OHI application

  3. The installation of a new version of an OHI application

  4. A change in the extensibility configuration

  5. An import using CMT that impacts the extensibility configuration.

A CMT export does NOT include the generated base views. Therefore, it is needed to regenerate them in the target environment after an CMT import when the extensibility configuration has changed.
The base views are part of the OHI database schema. That means that the base views ARE part of a database dump or export that contains the whole schema.

What gets generated

This section describes the various types of views that are created and their definition.

A Base View for each Entity

For each entity B, a view is generated with the following characteristics:

View Property Value Example Value

Name

<B.NAME>_BV

PAS_BRANDS_BV

Comment

Comment from Base Table

Evaluated benefit specifications by claim lines during claims processing.

The view name consists of:

  • Internal Application Area Code

  • '_'

  • Entity Name

  • '_BV'

The internal application area codes organize data model objects into separate functional areas. The entity names correspond to the data model names (of the implementation guides) more or less directly.

The view generation does not generate a view for each and every entity/table. It skips tables that are technical, or bound too much to internal processing. Use the generic HTTP API resource "tables" to get the list of skipped tables. Those tables have indicator indGenerateBaseView with value "false".

Columns

The base view contains the following columns:

Category Condition Alias Alias Example Comment Comment Example

Fixed columns in the base table

The column is not a technical column, nor a horizontal dynamic field column. The column does not contain PII

<BASE COLUM NAME>

CODE

From Base Column Comment

The code of the product

Fixed columns in the translation table

The column is not one of ('ID', 'LANGUAGE, 'SOURCE_LANG', 'BASE_TABLE_ID'). The column does not contain PII

<TL Column Name>

DESCR

From TL Column Comment

The description of the product

For each dynamic field usage defined for the base table

Single Value, non Time Valid, type=Field, IND_PII = N

DynamicFieldUsage.name.toUpperWithUnderscores()

HOBBY

DynamicFieldUsage.displayName

Hobby

For each dynamic field usage defined for the base table

Single Value, non Time Valid, type=Code IND_PII = N

DynamicFieldUsage.name.toUpperWithUnderscores()

ADMISSION_TYPE

DynamicFieldUsage.displayName

Admission Type

DynamicFieldUsage.name.toUpperWithUnderscores()_ID

ADMISSION_TYPE_ID

DynamicFieldUsage.displayName ID

Admission Type ID

DynamicFieldUsage.name.toUpperWithUnderscores()_DESCR

ADMISSION_TYPE_DESCR

FlexCodeFieldUsage.displayName of the descriptor column

Admission Type Description

Method toUpperWithUnderscores() denotes the conversion from CamelCase to UPPERCASE_WITH_UNDERSCORES. For example, accidentDate gets converted into ACCIDENT_DATE.
Fixed Columns

The implementation guide’s data model section gives more information about the fixed attributes. These columns have the same names and data types as the underlying table columns. The contents of columns are not transformed by the views.

Dynamic Field Columns, Single Value, not Time Valid

Those dynamic fields come in two flavors, which are handled differently:

  1. The dynamic field is a free field. Free fields can hold a character-, a numeric- or a date value.

  2. The dynamic field is a code field. Code fields can be of type flex code, procedure, diagnosis or provider.

Not all OHI applications support flex codes of all types. Some may support only flex code and provider for example.
Free Field

For free fields, a single column is added to the view. The column name is based on the usage name of the dynamic field, converted from CamelCase to UPPERCASE_WITH_UNDERSCORES.

Code Field of Types Flex Code, Diagnosis or Procedure

For code fields of type flex code, diagnoses or procedure, the view contains three columns:

  • The first column holds the internal technical key of the code field

  • The second one holds the key value of the flex code with the same usage name based naming convention as used for free fields.

  • A third column contains the description of the flex code:

    • for flex code the description shows the descriptor field

    • for diagnosis and procedure the description shows the description of diagnosis and provider.

Code Field of Type Provider

For code fields of type provider the view contains six columns: The first and second are identical to the flex code, procedure and diagnosis types.

A second set of columns shows relevant information of the provider if applicable:

  • Initials

  • First name

  • Middle name

  • Name

when the usageName changes, and the views get regenerated, all SQL statements that use the old column name of the view need to be changed as well.
Dynamic field usage where indicator PII? is set, are not included.

A Base View for each Dynamic Field that is Time Valid and/or Multi Value, of type Field

For every dynamic field usage of type field, an additional base view is generated with following characteristics:

View Property Value Example Value

Name

<Base Table>_DF_<Usage>_BV

CLA_CLAIMS_DF_COLOR_BV

Comment

This is a dynamic field view for <usage.displayName>

This is a dynamic field view for Color.

The view has those columns:

Alias Alias Example Comment Comment Example

ID

ID

Identification generated by the system

Identification generated by the system

BASE_TABLE_ID

BASE_TABLE_ID

Reference to <BASE VIEW>

Reference to CTR_CLAIMS_BV

DynamicFieldUsage.name.toUpper()

ADMISSION_TYPE

DynamicFieldUsage.displayName

Admission Type

START_DATE

START_DATE

Start Date

Start Date

END_DATE

END_DATE

End Date

End Date

The start- and end date are only included for time valid usages.

A Base View for each Dynamic Field that is Time Valid and/or Multi Value, of type Code

For every dynamic field usage of type code, an additional base view is generated, identical to a dynamic field of type field. Instead of a single column that holds the value, three columns are created:

Alias Alias Example Comment Comment Example

ID, BASE_TABLE_ID, START_DATE, END_DATE as in field example

…​

…​

…​

DynamicFieldUsage.name.toUpper()_ID

ADMISSION_TYPE_ID

DynamicFieldUsage.displayName

Admission Type

DynamicFieldUsage.name.toUpper()

ADMISSION_TYPE

DynamicFieldUsage.displayName

Admission Type

DynamicFieldUsage.name.toUpper()_DESCR

ADMISSION_TYPE_DESCR

FlexCodeFieldUsage.displayName of the descriptor column

Description of the admission type

A Base View for each Dynamic Record

For every dynamic field usage of type record, an additional base view is generated with following characteristics:

View Property Value Example Value

Name

<Base Table>_DR_<Usage>_BV

CLA_CLAIMS_DR_COLOR_BV

Comment

This is a dynamic record view for <usage.displayName>

This is a dynamic record view for Color.

The view has those columns:

Condition Alias Alias Example Comment Comment Example

ID

ID

Identification generated by the system

Identification generated by the system

BASE_TABLE_ID

BASE_TABLE_ID

Reference to <BASE VIEW>

Reference to CTR_CLAIMS_BV

For each flex code field usage of type Field

flexCodeFieldUsage.name().toUpper()

HOBBY

flexCodeFieldUsage.displayName()

Hobby of the member

For each flex code field usage of type Code

flexCodeFieldUsage.name().toUpper()

ADMISSION_TYPE

flexCodeFieldUsage.displayName()

Admission Type

flexCodeFieldUsage.name().toUpper()_ID

ADMISSION_TYPE_ID

flexCodeFieldUsage.displayName() ID

Admission Type ID

flexCodeFieldUsage.name().toUpper()_DESCR

ADMISSION_TYPE_DESCR

FlexCodeFieldUsage.displayName of the descriptor column

Description of Admission Type

Time valid=Y

START_DATE

START_DATE

Start Date

Start Date

Time valid=Y

END_DATE

END_DATE

End Date

End Date

A Base View for each Flex Code Definition

For every flex code definition, an additional base view is generated with the following characteristics:

View Property Value Example Value

Name

COD_FLEX_CODES_<Code of the Flex Code Definition>_BV

COD_FLEX_CODES_BRANCH_OF_WORK_BV

Comment

Description of the flex code definition

Branch of work

Those views are useful for retrieving the 'valid values' of a flex code definition.
No base views are generated for flex code sets. This is not possible because the definitions of the flex code definitions in the set may be different, making it impossible to union them together in a single views.

The view has those columns:

Condition Alias Alias Example Comment Comment Example

ID

ID

Identification generated by the system

Identification generated by the system

For each flex code field usage

flexCodeFieldUsage.name().toUpperWithUnderscores()

BRANCH_OF_WORK_CODE

flexCodeFieldUsage.description

Branch of work code

What gets removed

Existing base views for which the source where they were based on no longer exists, are removed during the base view generation process.

Examples are:

  • A dynamic field usage has been dropped or renamed

  • A table has been dropped after installation of a new application version, rendering the base view obsolete.