On this page:

21.1Setting Up PostgreSQL

 

This page contains details on how to set up databases for use with PostgreSQL.

21.1.1Supported Versions

 

See platform requirements for information on supported versions of PostgreSQL.

21.1.2Setting up a Cluster Manager Database

 

To initialize a new PostgreSQL database for the Cluster Manager, initialize a database with the following SQL:

create sequence SEQ_AUDITEVT_PID start 1 increment 50;
create sequence SEQ_AUDITEVT_TARGETMODULE_PID start 1 increment 50;
create sequence SEQ_AUDITEVT_TARGETRES_PID start 1 increment 50;
create sequence SEQ_AUDITEVT_TARGETUSER_PID start 1 increment 50;
create sequence SEQ_AUDITEVT_TYPE_PID start 1 increment 50;
create sequence SEQ_CDATEMPLATE_PID start 1 increment 50;
create sequence SEQ_CDATEMPLATEPARAM_PID start 1 increment 50;
create sequence SEQ_EMPILINKRUL_PID start 1 increment 50;
create sequence SEQ_EMPIMODRUL_PID start 1 increment 50;
create sequence SEQ_EMPIREVIEWQUEUE_PID start 1 increment 50;
create sequence SEQ_EMPISTDMTCHRUL_PID start 1 increment 50;
create sequence SEQ_FHIRSEARCHPARAM_PID start 1 increment 50;
create sequence SEQ_HTTPSESSION_PID start 1 increment 50;
create sequence SEQ_MODULE_CFGPROP_PID start 1 increment 50;
create sequence SEQ_MODULE_DEP_PID start 1 increment 50;
create sequence SEQ_MODULE_PID start 1 increment 50;
create sequence SEQ_MODULE_PROT_CFG_PID start 1 increment 50;
create sequence SEQ_MODULE_PROT_DEP_PID start 1 increment 50;
create sequence SEQ_MODULE_PROT_SUPPLIES_PID start 1 increment 50;
create sequence SEQ_MODULE_PROTOTYPE_PID start 1 increment 50;
create sequence SEQ_NODE_PID start 1 increment 50;
create sequence SEQ_OA2ATOKADNLINFO_PID start 1 increment 50;
create sequence SEQ_OA2ATOKEN_PID start 1 increment 50;
create sequence SEQ_OA2ATOKGRNTDA_PID start 1 increment 50;
create sequence SEQ_OA2ATOKSCP_PID start 1 increment 50;
create sequence SEQ_OA2AUTHCODE_PID start 1 increment 50;
create sequence SEQ_OA2CLIDETAASCOP_PID start 1 increment 50;
create sequence SEQ_OA2CLIDETAGSCOP_PID start 1 increment 50;
create sequence SEQ_OA2CLIDETAUTHGRNTTYP_PID start 1 increment 50;
create sequence SEQ_OA2CLIDETCLISEC_PID start 1 increment 50;
create sequence SEQ_OA2CLIDETREGREDIRURI_PID start 1 increment 50;
create sequence SEQ_OA2CLIENTDETAILS_PID start 1 increment 50;
create sequence SEQ_OA2CLIENTDETAILSSCOPE_PID start 1 increment 50;
create sequence SEQ_OA2CLIENTPERM_PID start 1 increment 50;
create sequence SEQ_OA2REFTOKEN_PID start 1 increment 50;
create sequence SEQ_OA2RTOKADNLINFO_PID start 1 increment 50;
create sequence SEQ_OA2RTOKGRNTDA_PID start 1 increment 50;
create sequence SEQ_OA2RTOKREQPRM_PID start 1 increment 50;
create sequence SEQ_OA2RTOKSCP_PID start 1 increment 50;
create sequence SEQ_OA2SERVER_PID start 1 increment 50;
create sequence SEQ_USER_PERM_PID start 1 increment 50;
create sequence SEQ_USER_PID start 1 increment 50;
create sequence SEQ_USERDEFLNCHCTX_PID start 1 increment 50;
create sequence SEQ_USERTFAKEY_PID start 1 increment 50;
create sequence SEQ_USROA2CLNTAPRVDSCP_PID start 1 increment 50;
create sequence SEQ_XACT_LOG_PID start 1 increment 50;
create sequence SEQ_XACT_LOG_STEP_PID start 1 increment 50;

    create table CDR_AUDIT_EVT (
       PID int8 not null,
        AUSER_TYPE int4,
        REMOTE_ADDRESS varchar(100),
        HAVE_TARGET_MODULES boolean not null,
        HAVE_TARGET_RESOURCES boolean not null,
        HAVE_TARGET_USERS boolean not null,
        EVT_TIMESTAMP timestamp not null,
        TYPE_DISPLAY varchar(200) not null,
        CLIENT_PID int8,
        ENDPOINT_MODULE_PID int8 not null,
        TYPE_PID int8 not null,
        USER_PID int8,
        primary key (PID)
    );

    create table CDR_AUDIT_EVT_TARGET_MODULE (
       PID int8 not null,
        EVENT_PID int8 not null,
        MODULE_PID int8 not null,
        primary key (PID)
    );

    create table CDR_AUDIT_EVT_TARGET_RES (
       PID int8 not null,
        REQ_VAL_RESULT int4,
        RES_ID varchar(120) not null,
        TENANT_ID_STR varchar(20),
        RES_VERSION int8,
        EVENT_PID int8 not null,
        PERS_MODULE_PID int8 not null,
        primary key (PID)
    );

    create table CDR_AUDIT_EVT_TARGET_USER (
       PID int8 not null,
        EVENT_PID int8 not null,
        USER_PID int8 not null,
        primary key (PID)
    );

    create table CDR_AUDIT_EVT_TYPE (
       PID int8 not null,
        CODEVAL varchar(200),
        SYSTEM_URL varchar(200),
        primary key (PID)
    );

    create table CDR_CDA_TEMPLATE (
       PID int8 not null,
        TEMPLATE_DESCRIPTION varchar(250),
        TEMPLATE_ID varchar(250) not null,
        TEMPLATE_CONTENT text not null,
        MODULE_PID int8 not null,
        primary key (PID)
    );

    create table CDR_CDA_TEMPLATE_PARAM (
       PID int8 not null,
        TEMPLATE_PARAMETER_NAME varchar(250) not null,
        TEMPLATE_PID int8,
        primary key (PID)
    );

    create table CDR_CLUSTMGR_MODULE_MET_GAUGE (
       GAUGE_ID varchar(100) not null,
        INTRVL int4 not null,
        START_TIME timestamp not null,
        ISCOLLAPSED boolean not null,
        GAUGE_VAL int8 not null,
        MODULE_PID int8 not null,
        primary key (GAUGE_ID, INTRVL, MODULE_PID, START_TIME)
    );

    create table CDR_CLUSTMGR_MODULE_METRIC_HC (
       HEALTHCHECK_ID varchar(100) not null,
        ERROR_STRING varchar(200),
        IS_HEALTHY boolean not null,
        HEALTHY_STRING varchar(200),
        MODULE_PID int8 not null,
        primary key (HEALTHCHECK_ID, MODULE_PID)
    );

    create table CDR_CLUSTMGR_MODULE_METRIC_TMR (
       INTRVL int4 not null,
        METER_ID varchar(100) not null,
        START_TIME timestamp not null,
        ISCOLLAPSED boolean not null,
        COUNTV int8,
        RATE_15_MIN float4 not null,
        FIRST_SINCE_RS boolean not null,
        RATE_5_MIN float4 not null,
        LATENCY_MAX int4 default 0 not null,
        LATENCY_MEAN int4 default 0 not null,
        LATENCY_MIN int4 default 0 not null,
        RATE_1_MIN float4 not null,
        MODULE_PID int8 not null,
        primary key (INTRVL, METER_ID, MODULE_PID, START_TIME)
    );

    create table CDR_DB_VERSION (
       DB_VERSION varchar(100) not null,
        DB_INIT_TIME timestamp not null,
        primary key (DB_VERSION)
    );

    create table CDR_EMPI_LINK_RULE (
       PID int8 not null,
        MAX_WEIGHT float4,
        MIN_WEIGHT float4,
        RULE_ORDER int4 not null,
        RULE_OUTCOME varchar(100) not null,
        MODULE_PID int8 not null,
        REVIEW_QUEUE_PID int8,
        primary key (PID)
    );

    create table CDR_EMPI_MODULE_RULE (
       PID int8 not null,
        EID_SYSTEM varchar(200) not null,
        MODULE_PID int8 not null,
        primary key (PID)
    );

    create table CDR_EMPI_REVIEWQUEUE (
       PID int8 not null,
        QUEUE_ID varchar(200) not null,
        QUEUE_NAME varchar(200) not null,
        RULE_ORDER int4 not null,
        MODULE_PID int8 not null,
        primary key (PID)
    );

    create table CDR_EMPI_STD_MATCH_RULE (
       PID int8 not null,
        MATCH_ADDR_CITY varchar(100) not null,
        MATCH_ADDR_COUNTRY varchar(100) not null,
        MATCH_ADDR_PC varchar(100) not null,
        MATCH_ADDR_STATE varchar(100) not null,
        MATCH_BIRTHDATE varchar(100) not null,
        MATCH_ADDR_GENDER varchar(100) not null,
        MATCH_NAME_FAMANDGVN varchar(100) not null,
        RULE_ORDER int4 not null,
        RULE_WEIGHT float4 not null,
        MODULE_PID int8 not null,
        primary key (PID)
    );

    create table CDR_FHIR_SEARCHPARAM (
       PID int8 not null,
        SP_BASE varchar(500) not null,
        SP_CODE varchar(500) not null,
        SP_DESC varchar(500),
        SP_FHIR_STATUS varchar(255),
        LAST_UPDATED timestamp not null,
        LAST_USED timestamp,
        STAT_OVERALL_COUNT int8,
        SP_PATH varchar(500),
        STAT_RESOURCE_SPREAD float8 not null,
        SP_RES_ID varchar(150),
        SP_SYNC_STATUS varchar(255) not null,
        SP_TITLE varchar(500),
        SP_TYPE varchar(20),
        BUF_UNIQUE_RESOURCES oid,
        BUF_UNIQUE_VALUES oid,
        STAT_VALUE_SPREAD float8 not null,
        MODULE_PID int8 not null,
        primary key (PID)
    );

    create table CDR_GLOBAL_GAUGE (
       ID varchar(200) not null,
        VAL_DOUBLE float8,
        VAL_LONG int8,
        primary key (ID)
    );

    create table CDR_HTTP_SESSION (
       PID int8 not null,
        SES_ATTRS oid not null,
        SES_EXPIRY timestamp not null,
        LAST_ACCESSED_TIME timestamp,
        MAX_INACTIVE int8 not null,
        SES_ID varchar(200) not null,
        MODULE_PID int8 not null,
        primary key (PID)
    );

    create table CDR_MODULE (
       PID int8 not null,
        DELETED boolean not null,
        MODULE_DISABLED boolean not null,
        MODULE_ID varchar(30) not null,
        RESTART_REQUIRED boolean not null,
        MASTER_MODULE_PID int8,
        NODE_PID int8 not null,
        PROTOTYPE_PID int8 not null,
        primary key (PID)
    );

    create table CDR_MODULE_CFG_PROP (
       PID int8 not null,
        VALUE_STRING varchar(200),
        VALUE_EXTENDED text,
        MODULE_PID int8 not null,
        PROTOTYPE_PID int8 not null,
        primary key (PID)
    );

    create table CDR_MODULE_DEP (
       PID int8 not null,
        MODULE_PID int8 not null,
        PROTOTYPE_PID int8 not null,
        TARGET_PID int8,
        primary key (PID)
    );

    create table CDR_MODULE_PROT_CFG (
       PID int8 not null,
        IS_ADVANCED boolean not null,
        CATEGORY_KEY varchar(100) not null,
        DEFAULT_VALUE varchar(200),
        DESC_KEY varchar(200),
        ENUM_TYPE varchar(200),
        CFG_INDEX int4 not null,
        CFG_KEY varchar(200) not null,
        NAME_KEY varchar(200) not null,
        IS_OPTIONAL boolean not null,
        CFG_TYPE varchar(100) not null,
        PROTOTYPE_PID int8 not null,
        primary key (PID)
    );

    create table CDR_MODULE_PROT_DEP (
       PID int8 not null,
        DESCRIPTION_KEY varchar(200) not null,
        ENTRY_KEY varchar(200) not null,
        PROTOTYPE_PID int8,
        primary key (PID)
    );

    create table CDR_MODULE_PROT_SUPPLIES (
       PID int8 not null,
        ENTRY_KEY int4 not null,
        PROTOTYPE_PID int8,
        primary key (PID)
    );

    create table CDR_MODULE_PROTOTYPE (
       PID int8 not null,
        MODULE_TYPE varchar(200) not null,
        STOPPABLE boolean not null,
        primary key (PID)
    );

    create table CDR_MODULE_STATUS (
       CONCEPTS_INDEXED_UNTIL timestamp,
        FULLTEXT_INDEXED_UNTIL timestamp,
        PORTVAL int4,
        MODULE_STATUS int4 not null,
        MODULE_STATUS_DESC varchar(200),
        MODULE_PID int8 not null,
        primary key (MODULE_PID)
    );

    create table CDR_NODE (
       PID int8 not null,
        NODE_ID varchar(30) not null,
        primary key (PID)
    );

    create table CDR_NODE_STATUS (
       IS_RUNNNING boolean not null,
        STARTED_TIME timestamp,
        STOPPED_TIME timestamp,
        NODE_PID int8 not null,
        primary key (NODE_PID)
    );

    create table CDR_OA2_CLI_DET_AUTH_GRNT_TYP (
       PID int8 not null,
        GRANT_TYPE varchar(100) not null,
        CLIENT_PID int8 not null,
        primary key (PID)
    );

    create table CDR_OA2_CLI_DET_AUTOAP_SCOPE (
       PID int8 not null,
        SCOPE varchar(100) not null,
        CLIENT_PID int8 not null,
        primary key (PID)
    );

    create table CDR_OA2_CLI_DET_AUTOGRNT_SCOPE (
       PID int8 not null,
        SCOPE varchar(100) not null,
        CLIENT_PID int8 not null,
        primary key (PID)
    );

    create table CDR_OA2_CLI_DET_CLISEC (
       PID int8 not null,
        SEC_ACTIVATION timestamp,
        SEC_CREATION timestamp,
        SEC_DESC varchar(250),
        SEC_EXPIRATION timestamp,
        CLI_SECRET varchar(250) not null,
        CLIENT_PID int8 not null,
        primary key (PID)
    );

    create table CDR_OA2_CLI_DET_REG_REDIR_URI (
       PID int8 not null,
        REDIR_URI varchar(200) not null,
        CLIENT_PID int8 not null,
        primary key (PID)
    );

    create table CDR_OA2_SERVER (
       PID int8 not null,
        ISS varchar(200) not null,
        SERVER_NAME varchar(200),
        INTRSPCT_CLIENT_ID varchar(200),
        INTRSPCT_CLIENT_SCRT varchar(200),
        JWKS_FILE varchar(200),
        JWKS_TEXT text,
        MODULE_PID int8 not null,
        primary key (PID)
    );

    create table CDR_OAUTH2_ATOKEN (
       PID int8 not null,
        EXPIRATION timestamp not null,
        GRANT_TYPE varchar(20),
        ID_TOKEN_VAL varchar(1000),
        ISSUED timestamp not null,
        REDIRECT_URI varchar(200),
        TOKEN_VAL varchar(1000) not null,
        TOKEN_HASH varchar(150) not null,
        CLIENT_PID int8 not null,
        MODULE_PID int8 not null,
        REFRESH_TOKEN_PID int8,
        USER_PID int8,
        primary key (PID)
    );

    create table CDR_OAUTH2_ATOKEN_ADNLINFO (
       PID int8 not null,
        INFO_KEY varchar(200) not null,
        INFO_VALUE varchar(200) not null,
        TOKEN_PID int8 not null,
        primary key (PID)
    );

    create table CDR_OAUTH2_ATOKEN_GRNTDA (
       PID int8 not null,
        PERM_ARG varchar(200),
        PERM_NAME varchar(100) not null,
        TOKEN_PID int8 not null,
        primary key (PID)
    );

    create table CDR_OAUTH2_ATOKEN_SCOPE (
       PID int8 not null,
        SCOPE varchar(100) not null,
        TOKEN_PID int8 not null,
        primary key (PID)
    );

    create table CDR_OAUTH2_AUTH_CODE (
       PID int8 not null,
        OAUTH2_AUTHENTICATION oid,
        CLIENT_ID varchar(200) not null,
        CODE_VAL varchar(100) not null,
        EXPIRATION timestamp not null,
        STATE_VAL varchar(100),
        primary key (PID)
    );

    create table CDR_OAUTH2_CLIENT_DET_SCOPE (
       PID int8 not null,
        SCOPE varchar(100) not null,
        CLIENT_PID int8 not null,
        primary key (PID)
    );

    create table CDR_OAUTH2_CLIENT_DETAILS (
       PID int8 not null,
        ACCESS_TOKEN_VALIDITY_SECONDS int4,
        ALWAYS_REQUIRE_APPROVAL boolean,
        CAN_INTROSPECT_ANY boolean,
        CAN_INTROSPECT_OWN boolean,
        CAN_REUSE_TOKENS boolean,
        CLIENT_ID varchar(200) not null,
        CLIENT_NAME varchar(200),
        CLIENT_SECRET varchar(200),
        ENABLED boolean,
        FIXED_SCOPE boolean not null,
        REFRESH_TOKEN_VALIDITY_SECONDS int4,
        REMEMBER_APPROVED_SCOPES boolean,
        SECRET_CLIENT_CAN_CHANGE boolean,
        SECRET_REQUIRED boolean not null,
        MODULE_PID int8,
        primary key (PID)
    );

    create table CDR_OAUTH2_CLIENT_PERM (
       PID int8 not null,
        PERMISSION_TYPE varchar(100) not null,
        PERMISSION_ARG varchar(100),
        CLIENT_PID int8 not null,
        primary key (PID)
    );

    create table CDR_OAUTH2_JWT_UNIQ_ID (
       JWT_ID varchar(500) not null,
        CONSUMED_TIMESTAMP timestamp not null,
        primary key (JWT_ID)
    );

    create table CDR_OAUTH2_REFRESH_TOKEN (
       PID int8 not null,
        EXPIRATION timestamp,
        ISSUED timestamp not null,
        TOKEN_VAL varchar(150) not null,
        CLIENT_PID int8,
        USER_PID int8,
        primary key (PID)
    );

    create table CDR_OAUTH2_RTOKEN_ADNLINFO (
       PID int8 not null,
        INFO_KEY varchar(200) not null,
        INFO_VALUE varchar(200) not null,
        TOKEN_PID int8 not null,
        primary key (PID)
    );

    create table CDR_OAUTH2_RTOKEN_GRNTDA (
       PID int8 not null,
        PERM_ARG varchar(200),
        PERM_NAME varchar(100) not null,
        TOKEN_PID int8 not null,
        primary key (PID)
    );

    create table CDR_OAUTH2_RTOKEN_REQPRM (
       PID int8 not null,
        PARM_KEY varchar(200) not null,
        PARM_VALUE varchar(1600) not null,
        TOKEN_PID int8 not null,
        primary key (PID)
    );

    create table CDR_OAUTH2_RTOKEN_SCOPE (
       PID int8 not null,
        SCOPE varchar(100) not null,
        TOKEN_PID int8 not null,
        primary key (PID)
    );

    create table CDR_USER_DETAILS (
       PID int8 not null,
        IS_ANON_ACCT boolean,
        CREDS_EXPIRE_ON timestamp,
        USER_DISABLED boolean not null,
        EMAIL varchar(200),
        EXPIRES_ON timestamp,
        IS_EXTERNAL boolean,
        FAMILY_NAME varchar(200),
        GIVEN_NAME varchar(200),
        LAST_ACTIVE timestamp,
        USER_LOCKED boolean not null,
        MODULE_PID int8 not null,
        NOTES text,
        USER_PASSWORD varchar(200),
        IS_SERVICE_ACCT boolean,
        IS_SYSTEM_USER boolean not null,
        UPDATED_TS timestamp not null,
        USERNAME varchar(200) not null,
        USERNAME_HAS_NAMESPACE boolean,
        primary key (PID)
    );

    create table CDR_USER_DETAILS_DEF_LNCH_CTX (
       PID int8 not null,
        CONTEXT_TYPE varchar(50) not null,
        RESOURCE_ID varchar(64) not null,
        USER_PID int8 not null,
        primary key (PID)
    );

    create table CDR_USER_DETAILS_OA2CLNAPRVSCP (
       PID int8 not null,
        IS_APPROVED boolean not null,
        SCOPE varchar(100) not null,
        CLIENT_PID int8 not null,
        USER_PID int8 not null,
        primary key (PID)
    );

    create table CDR_USER_PERM (
       PID int8 not null,
        PERMISSION_TYPE varchar(100) not null,
        PERMISSION_ARG varchar(100),
        USER_PID int8,
        primary key (PID)
    );

    create table CDR_USER_TFA_KEY (
       PID int8 not null,
        CONFIRMED_AT timestamp,
        KEY_EXPIRES timestamp,
        FAILED_VERIFS int4,
        A_KEY varchar(250) not null,
        A_STYLE varchar(20) not null,
        OPTLOCK int4 not null,
        USER_PID int8 not null,
        primary key (PID)
    );

    create table CDR_XACT_LOG (
       PID int8 not null,
        INITIAL_TIMESTAMP timestamp not null,
        EVT_OUTCOME int4 not null,
        SRC_XACT_ID varchar(128),
        EVT_SUBTYPE int4 not null,
        EVT_TYPE int4 not null,
        CLIENT_PID int8,
        CDR_ENDPOINT_MODULE_PID int8,
        USER_PID int8,
        primary key (PID)
    );

    create table CDR_XACT_LOG_STEP (
       STEP_PID int8 not null,
        BODY_BYTES oid,
        BODY_TYPE int4,
        LOCAL_HOST varchar(100),
        LOCAL_PORT int4,
        EVT_OUTCOME int4,
        PROCESSING_TIME int8,
        REMOTE_HOST varchar(100),
        REMOTE_PORT int4,
        REQUEST_URL_STR varchar(250),
        REQ_VAL_RESULT int4,
        REQUEST_VERB varchar(7),
        RESPONSE_STATUS int2,
        SUBSCRIPTION_ID varchar(77),
        LOG_TIMESTAMP timestamp not null,
        STEP_TYPE int4 not null,
        LOG_PID int8 not null,
        primary key (STEP_PID)
    );
create index IDX_AUDITEVT_TARGMOD_EVT on CDR_AUDIT_EVT_TARGET_MODULE (EVENT_PID);
create index IDX_AUDITEVT_TARGRES_EVT on CDR_AUDIT_EVT_TARGET_RES (EVENT_PID);
create index IDX_AUDITEVT_TARGUSR_EVT on CDR_AUDIT_EVT_TARGET_USER (EVENT_PID);

    alter table if exists CDR_AUDIT_EVT_TYPE 
       add constraint IDX_AUDITEVTTYPE_SYSTEM_CODE unique (SYSTEM_URL, CODEVAL);
create index IDX_CDR_TEMPLATE_ID on CDR_CDA_TEMPLATE (TEMPLATE_ID);

    alter table if exists CDR_CDA_TEMPLATE 
       add constraint IDX_CDATEMPL_ID unique (TEMPLATE_ID);
create index IDX_MODMETGAUGE_COLLAPSED on CDR_CLUSTMGR_MODULE_MET_GAUGE (ISCOLLAPSED);
create index IDX_MODMETGAUGE_STARTTIME on CDR_CLUSTMGR_MODULE_MET_GAUGE (START_TIME);
create index IDX_MODMETGAUGE_INTERVLSTRTTM on CDR_CLUSTMGR_MODULE_MET_GAUGE (INTRVL, START_TIME);
create index IDX_MODMETTMR_COLLAPSED on CDR_CLUSTMGR_MODULE_METRIC_TMR (ISCOLLAPSED);
create index IDX_MODMETTMR_STARTTIME on CDR_CLUSTMGR_MODULE_METRIC_TMR (START_TIME);
create index IDX_MODMETTMR_INTERVLSTRTTM on CDR_CLUSTMGR_MODULE_METRIC_TMR (INTRVL, START_TIME);

    alter table if exists CDR_EMPI_MODULE_RULE 
       add constraint IDX_EMPIMODRUL_MOD unique (MODULE_PID);
create index IDX_FHIRSP_SP_RES_ID on CDR_FHIR_SEARCHPARAM (MODULE_PID, SP_RES_ID);
create index IDX_FHIRSP_BASE on CDR_FHIR_SEARCHPARAM (MODULE_PID, SP_BASE);
create index IDX_FHIRSP_CODE on CDR_FHIR_SEARCHPARAM (MODULE_PID, SP_CODE);
create index IDX_FHIRSP_OVERALLCOUNT on CDR_FHIR_SEARCHPARAM (MODULE_PID, STAT_OVERALL_COUNT);
create index IDX_FHIRSP_RESSPREAD on CDR_FHIR_SEARCHPARAM (MODULE_PID, STAT_RESOURCE_SPREAD);
create index IDX_FHIRSP_TYPE on CDR_FHIR_SEARCHPARAM (MODULE_PID, SP_TYPE);
create index IDX_FHIRSP_VALSPREAD on CDR_FHIR_SEARCHPARAM (MODULE_PID, STAT_VALUE_SPREAD);
create index IDX_FHIRSP_LASTUPDATED on CDR_FHIR_SEARCHPARAM (MODULE_PID, LAST_UPDATED);
create index IDX_FHIRSP_LASTUSED on CDR_FHIR_SEARCHPARAM (MODULE_PID, LAST_USED);
create index IDX_HTTPSESSION_EXPIRY on CDR_HTTP_SESSION (SES_EXPIRY);
create index IDX_HTTPSESSION_MODULE on CDR_HTTP_SESSION (MODULE_PID);

    alter table if exists CDR_HTTP_SESSION 
       add constraint IDX_HTTPSESSION_ID unique (SES_ID);

    alter table if exists CDR_MODULE 
       add constraint IDX_MODULE_ID unique (NODE_PID, MODULE_ID);

    alter table if exists CDR_MODULE_CFG_PROP 
       add constraint IDX_CDR_MODULE_CDR_PROP_MODKEY unique (MODULE_PID, PROTOTYPE_PID);

    alter table if exists CDR_MODULE_PROT_CFG 
       add constraint IDX_CDR_MODULE_PROT_CDG_MODKEY unique (PROTOTYPE_PID, CFG_KEY);

    alter table if exists CDR_MODULE_PROT_DEP 
       add constraint IDX_MODULEPROTDEP_PROT_KEY unique (PROTOTYPE_PID, ENTRY_KEY);

    alter table if exists CDR_MODULE_PROTOTYPE 
       add constraint IDX_MODULEPROTOTYPE_TYPE unique (MODULE_TYPE);

    alter table if exists CDR_NODE 
       add constraint IDX_NODE_ID unique (NODE_ID);

    alter table if exists CDR_OA2_CLI_DET_AUTH_GRNT_TYP 
       add constraint IDX_OA2TOKGRTTYP_TOK_GRNT_TYP unique (CLIENT_PID, GRANT_TYPE);

    alter table if exists CDR_OA2_CLI_DET_AUTOAP_SCOPE 
       add constraint IDX_OA2CLIDETAASCOPE_TOK_SCOP unique (CLIENT_PID, SCOPE);

    alter table if exists CDR_OA2_CLI_DET_AUTOGRNT_SCOPE 
       add constraint IDX_OA2CLIDETAGSCOPE_TOK_SCOP unique (CLIENT_PID, SCOPE);

    alter table if exists CDR_OA2_CLI_DET_CLISEC 
       add constraint IDX_OA2CLIDETCLISEC_SECRET unique (CLIENT_PID, CLI_SECRET);

    alter table if exists CDR_OA2_CLI_DET_REG_REDIR_URI 
       add constraint IDX_OA2CLIDETRRURI_TOK_SCO unique (CLIENT_PID, REDIR_URI);

    alter table if exists CDR_OA2_SERVER 
       add constraint IDX_OA2SERVER_MODULE_ISSURL unique (MODULE_PID, ISS);
create index IDX_OA2ATOKEN_TOKEN_HASH on CDR_OAUTH2_ATOKEN (TOKEN_HASH);
create index IDX_OA2ATOKEN_USER on CDR_OAUTH2_ATOKEN (USER_PID);
create index IDX_OA2ATOKEN_EXPIRATION on CDR_OAUTH2_ATOKEN (EXPIRATION);

    alter table if exists CDR_OAUTH2_ATOKEN_ADNLINFO 
       add constraint IDX_OA2ATOKADLNF_ATOKEN_ADNLNF unique (TOKEN_PID, INFO_KEY);

    alter table if exists CDR_OAUTH2_ATOKEN_SCOPE 
       add constraint IDX_OA2ATOKSCP_ATOKEN_SCOPE unique (TOKEN_PID, SCOPE);
create index IDX_OA2AUTHCODE_EXPIRATION on CDR_OAUTH2_AUTH_CODE (EXPIRATION);

    alter table if exists CDR_OAUTH2_AUTH_CODE 
       add constraint IDX_OA2AUTHCODE_CODE unique (CODE_VAL);

    alter table if exists CDR_OAUTH2_CLIENT_DET_SCOPE 
       add constraint IDX_OA2CLIDETSCOP_TOKEN_SCOPE unique (CLIENT_PID, SCOPE);

    alter table if exists CDR_OAUTH2_CLIENT_DETAILS 
       add constraint IDX_OA2CLIENTDETAILS_CLI_MOD unique (MODULE_PID, CLIENT_ID);
create index IDX_OA2JWTUNIQID_TIMESTAMP on CDR_OAUTH2_JWT_UNIQ_ID (CONSUMED_TIMESTAMP);
create index IDX_OA2REFTOKEN_USER on CDR_OAUTH2_REFRESH_TOKEN (USER_PID);
create index IDX_OA2REFTOKEN_EXPIRATION on CDR_OAUTH2_REFRESH_TOKEN (EXPIRATION);

    alter table if exists CDR_OAUTH2_REFRESH_TOKEN 
       add constraint IDX_OA2REFTOKEN_TOKEN unique (TOKEN_VAL);

    alter table if exists CDR_OAUTH2_RTOKEN_ADNLINFO 
       add constraint IDX_OA2RTOKADLNF_RTOKEN_ADNLNF unique (TOKEN_PID, INFO_KEY);

    alter table if exists CDR_OAUTH2_RTOKEN_REQPRM 
       add constraint IDX_OA2RTOKREQPRM_RTOKEN_PARM unique (TOKEN_PID, PARM_KEY);

    alter table if exists CDR_OAUTH2_RTOKEN_SCOPE 
       add constraint IDX_OA2RTOKSCP_RTOKEN_SCOPE unique (TOKEN_PID, SCOPE);
create index IDX_USER_FAMILYNAME on CDR_USER_DETAILS (MODULE_PID, FAMILY_NAME);
create index IDX_USER_GIVENNAME on CDR_USER_DETAILS (MODULE_PID, GIVEN_NAME);

    alter table if exists CDR_USER_DETAILS 
       add constraint IDX_USERDET_MODULE_USERNAME unique (MODULE_PID, USERNAME);
create index IDX_USERDEFLNCHCTX_USER on CDR_USER_DETAILS_DEF_LNCH_CTX (USER_PID);

    alter table if exists CDR_USER_DETAILS_DEF_LNCH_CTX 
       add constraint IDX_USERDEFLNCHCTX_USER_CTYP unique (USER_PID, CONTEXT_TYPE);
create index IDX_USROA2CLNTAPRVDSCP_CLNTUSR on CDR_USER_DETAILS_OA2CLNAPRVSCP (CLIENT_PID, USER_PID);

    alter table if exists CDR_USER_TFA_KEY 
       add constraint IDX_USERTFAKEY_USER unique (USER_PID);
create index IDX_XACTLOG_INITTS on CDR_XACT_LOG (INITIAL_TIMESTAMP);
create index IDX_XACTLOGSTEP_LOGID on CDR_XACT_LOG_STEP (LOG_PID);

    alter table if exists CDR_AUDIT_EVT 
       add constraint FK_AUDITEVT_CLIENT 
       foreign key (CLIENT_PID) 
       references CDR_OAUTH2_CLIENT_DETAILS;

    alter table if exists CDR_AUDIT_EVT 
       add constraint FK_AUDITEVT_ENDPOINTMODULE 
       foreign key (ENDPOINT_MODULE_PID) 
       references CDR_MODULE;

    alter table if exists CDR_AUDIT_EVT 
       add constraint FK_AUDITEVT_TYPE 
       foreign key (TYPE_PID) 
       references CDR_AUDIT_EVT_TYPE;

    alter table if exists CDR_AUDIT_EVT 
       add constraint FK_AUDITEVT_USER 
       foreign key (USER_PID) 
       references CDR_USER_DETAILS;

    alter table if exists CDR_AUDIT_EVT_TARGET_MODULE 
       add constraint FK_AUDITEVT_TARGETMODULE_EVT 
       foreign key (EVENT_PID) 
       references CDR_AUDIT_EVT;

    alter table if exists CDR_AUDIT_EVT_TARGET_MODULE 
       add constraint FK_AUDITEVT_TARGETMOD_MODULE 
       foreign key (MODULE_PID) 
       references CDR_MODULE;

    alter table if exists CDR_AUDIT_EVT_TARGET_RES 
       add constraint FK_AUDITEVT_TARGETRES_EVT 
       foreign key (EVENT_PID) 
       references CDR_AUDIT_EVT;

    alter table if exists CDR_AUDIT_EVT_TARGET_RES 
       add constraint FK_AUDITEVT_TARGETRES_PERSMOD 
       foreign key (PERS_MODULE_PID) 
       references CDR_MODULE;

    alter table if exists CDR_AUDIT_EVT_TARGET_USER 
       add constraint FK_AUDITEVT_TARGETUSER_EVT 
       foreign key (EVENT_PID) 
       references CDR_AUDIT_EVT;

    alter table if exists CDR_AUDIT_EVT_TARGET_USER 
       add constraint FK_AUDITEVT_TARGETUSER_USER 
       foreign key (USER_PID) 
       references CDR_USER_DETAILS;

    alter table if exists CDR_CDA_TEMPLATE 
       add constraint FK_CDA_MODULE 
       foreign key (MODULE_PID) 
       references CDR_MODULE;

    alter table if exists CDR_CDA_TEMPLATE_PARAM 
       add constraint FK_CDATEMPLATE_PID 
       foreign key (TEMPLATE_PID) 
       references CDR_CDA_TEMPLATE;

    alter table if exists CDR_CLUSTMGR_MODULE_MET_GAUGE 
       add constraint FK_CLUSTMGR_MODMETGAUGE_MOD 
       foreign key (MODULE_PID) 
       references CDR_MODULE;

    alter table if exists CDR_CLUSTMGR_MODULE_METRIC_HC 
       add constraint FK_CLUSTMGR_MODMET_MOD 
       foreign key (MODULE_PID) 
       references CDR_MODULE;

    alter table if exists CDR_CLUSTMGR_MODULE_METRIC_TMR 
       add constraint FK_CLUSTMGR_MODULEMETTMR_MOD 
       foreign key (MODULE_PID) 
       references CDR_MODULE;

    alter table if exists CDR_EMPI_LINK_RULE 
       add constraint FK_EMPILINKRUL_MODULE 
       foreign key (MODULE_PID) 
       references CDR_MODULE;

    alter table if exists CDR_EMPI_LINK_RULE 
       add constraint FK_EMPILINKRUL_REVIEW_QUEUE 
       foreign key (REVIEW_QUEUE_PID) 
       references CDR_EMPI_REVIEWQUEUE;

    alter table if exists CDR_EMPI_MODULE_RULE 
       add constraint FK_EMPIMODRUL_MODULE 
       foreign key (MODULE_PID) 
       references CDR_MODULE;

    alter table if exists CDR_EMPI_REVIEWQUEUE 
       add constraint FK_EMPIREVIEWQUEUE_MODULE 
       foreign key (MODULE_PID) 
       references CDR_MODULE;

    alter table if exists CDR_EMPI_STD_MATCH_RULE 
       add constraint FK_EMPISTDMTCHRUL_MODULE 
       foreign key (MODULE_PID) 
       references CDR_MODULE;

    alter table if exists CDR_FHIR_SEARCHPARAM 
       add constraint FK_FHIRSEARCHPARAM_MODULE 
       foreign key (MODULE_PID) 
       references CDR_MODULE;

    alter table if exists CDR_HTTP_SESSION 
       add constraint FK_HTTPSESSION_MODULE 
       foreign key (MODULE_PID) 
       references CDR_MODULE;

    alter table if exists CDR_MODULE 
       add constraint FK_MODULE_MASTERMOD 
       foreign key (MASTER_MODULE_PID) 
       references CDR_MODULE;

    alter table if exists CDR_MODULE 
       add constraint FK_MODULE_NODE 
       foreign key (NODE_PID) 
       references CDR_NODE;

    alter table if exists CDR_MODULE 
       add constraint FK_MODULE_PROTOTYPE 
       foreign key (PROTOTYPE_PID) 
       references CDR_MODULE_PROTOTYPE;

    alter table if exists CDR_MODULE_CFG_PROP 
       add constraint FK_MODULECFGPROP_MODULE 
       foreign key (MODULE_PID) 
       references CDR_MODULE;

    alter table if exists CDR_MODULE_CFG_PROP 
       add constraint FK_MODULECFGPROP_PROTOTYPE 
       foreign key (PROTOTYPE_PID) 
       references CDR_MODULE_PROT_CFG;

    alter table if exists CDR_MODULE_DEP 
       add constraint FK_MODULEDEP_MODULE 
       foreign key (MODULE_PID) 
       references CDR_MODULE;

    alter table if exists CDR_MODULE_DEP 
       add constraint FK_MODULEDEP_PROTOTYPE 
       foreign key (PROTOTYPE_PID) 
       references CDR_MODULE_PROT_DEP;

    alter table if exists CDR_MODULE_DEP 
       add constraint FK_MODULEDEP_TARGET 
       foreign key (TARGET_PID) 
       references CDR_MODULE;

    alter table if exists CDR_MODULE_PROT_CFG 
       add constraint FK_CDR_MODULEPROTCFG_PROT 
       foreign key (PROTOTYPE_PID) 
       references CDR_MODULE_PROTOTYPE;

    alter table if exists CDR_MODULE_PROT_DEP 
       add constraint FK_MODULE_PROT_DEP_PROT 
       foreign key (PROTOTYPE_PID) 
       references CDR_MODULE_PROTOTYPE;

    alter table if exists CDR_MODULE_PROT_SUPPLIES 
       add constraint FK_MODULE_PROT_SUPPLIES_PROT 
       foreign key (PROTOTYPE_PID) 
       references CDR_MODULE_PROTOTYPE;

    alter table if exists CDR_MODULE_STATUS 
       add constraint FK_MODULESTATUS_MODULE 
       foreign key (MODULE_PID) 
       references CDR_MODULE;

    alter table if exists CDR_NODE_STATUS 
       add constraint FK_NODESTATUS_NODE 
       foreign key (NODE_PID) 
       references CDR_NODE;

    alter table if exists CDR_OA2_CLI_DET_AUTH_GRNT_TYP 
       add constraint FK_OA2CLIDETAUTHGRNTTY_CLI 
       foreign key (CLIENT_PID) 
       references CDR_OAUTH2_CLIENT_DETAILS;

    alter table if exists CDR_OA2_CLI_DET_AUTOAP_SCOPE 
       add constraint FK_OA2CLIDETAUTOAPPSCOP_CLI 
       foreign key (CLIENT_PID) 
       references CDR_OAUTH2_CLIENT_DETAILS;

    alter table if exists CDR_OA2_CLI_DET_AUTOGRNT_SCOPE 
       add constraint FK_OA2CLIDETAUTOGRNTPSCOP_CLI 
       foreign key (CLIENT_PID) 
       references CDR_OAUTH2_CLIENT_DETAILS;

    alter table if exists CDR_OA2_CLI_DET_CLISEC 
       add constraint FK_OA2CLIDETCLISEC_CLI 
       foreign key (CLIENT_PID) 
       references CDR_OAUTH2_CLIENT_DETAILS;

    alter table if exists CDR_OA2_CLI_DET_REG_REDIR_URI 
       add constraint FK_OA2CLIDETREGREDURI_CLI 
       foreign key (CLIENT_PID) 
       references CDR_OAUTH2_CLIENT_DETAILS;

    alter table if exists CDR_OA2_SERVER 
       add constraint FK_OA2SERVER_MODULE 
       foreign key (MODULE_PID) 
       references CDR_MODULE;

    alter table if exists CDR_OAUTH2_ATOKEN 
       add constraint FK_OA2ATOKEN_CLIENT 
       foreign key (CLIENT_PID) 
       references CDR_OAUTH2_CLIENT_DETAILS;

    alter table if exists CDR_OAUTH2_ATOKEN 
       add constraint FK_OA2ATOKEN_MODULE 
       foreign key (MODULE_PID) 
       references CDR_MODULE;

    alter table if exists CDR_OAUTH2_ATOKEN 
       add constraint FK_OA2ATOKEN_REF_TOK 
       foreign key (REFRESH_TOKEN_PID) 
       references CDR_OAUTH2_REFRESH_TOKEN;

    alter table if exists CDR_OAUTH2_ATOKEN 
       add constraint FK_OA2ATOKEN_USER 
       foreign key (USER_PID) 
       references CDR_USER_DETAILS;

    alter table if exists CDR_OAUTH2_ATOKEN_ADNLINFO 
       add constraint FK_OA2ATOKADNLINFO_TOKEN 
       foreign key (TOKEN_PID) 
       references CDR_OAUTH2_ATOKEN;

    alter table if exists CDR_OAUTH2_ATOKEN_GRNTDA 
       add constraint FK_OA2ATOKGRNTDA_TOKEN 
       foreign key (TOKEN_PID) 
       references CDR_OAUTH2_ATOKEN;

    alter table if exists CDR_OAUTH2_ATOKEN_SCOPE 
       add constraint FK_OA2ATOKSCP_TOKEN 
       foreign key (TOKEN_PID) 
       references CDR_OAUTH2_ATOKEN;

    alter table if exists CDR_OAUTH2_CLIENT_DET_SCOPE 
       add constraint FK_OA2CLIDETSCOP_CLIENT 
       foreign key (CLIENT_PID) 
       references CDR_OAUTH2_CLIENT_DETAILS;

    alter table if exists CDR_OAUTH2_CLIENT_DETAILS 
       add constraint FK_OA2CLIENTDETAILS_MODULE 
       foreign key (MODULE_PID) 
       references CDR_MODULE;

    alter table if exists CDR_OAUTH2_CLIENT_PERM 
       add constraint FK_OA2CLIENTPERM_CLIENT 
       foreign key (CLIENT_PID) 
       references CDR_OAUTH2_CLIENT_DETAILS;

    alter table if exists CDR_OAUTH2_REFRESH_TOKEN 
       add constraint FK_OA2REFTOKEN_CLIENT 
       foreign key (CLIENT_PID) 
       references CDR_OAUTH2_CLIENT_DETAILS;

    alter table if exists CDR_OAUTH2_REFRESH_TOKEN 
       add constraint FK_OA2REFTOKEN_USER 
       foreign key (USER_PID) 
       references CDR_USER_DETAILS;

    alter table if exists CDR_OAUTH2_RTOKEN_ADNLINFO 
       add constraint FK_OA2RTOKADNLINFO_TOKEN 
       foreign key (TOKEN_PID) 
       references CDR_OAUTH2_REFRESH_TOKEN;

    alter table if exists CDR_OAUTH2_RTOKEN_GRNTDA 
       add constraint FK_OA2RTOKGRNTDA_TOKEN 
       foreign key (TOKEN_PID) 
       references CDR_OAUTH2_REFRESH_TOKEN;

    alter table if exists CDR_OAUTH2_RTOKEN_REQPRM 
       add constraint FK_OA2RTOKREQPRM_TOKEN 
       foreign key (TOKEN_PID) 
       references CDR_OAUTH2_REFRESH_TOKEN;

    alter table if exists CDR_OAUTH2_RTOKEN_SCOPE 
       add constraint FK_OA2RTOKSCP_TOKEN 
       foreign key (TOKEN_PID) 
       references CDR_OAUTH2_REFRESH_TOKEN;

    alter table if exists CDR_USER_DETAILS 
       add constraint FK_USERDETAILS_MODULE 
       foreign key (MODULE_PID) 
       references CDR_MODULE;

    alter table if exists CDR_USER_DETAILS_DEF_LNCH_CTX 
       add constraint FK_USERDEFLNCHCTX_USER 
       foreign key (USER_PID) 
       references CDR_USER_DETAILS;

    alter table if exists CDR_USER_DETAILS_OA2CLNAPRVSCP 
       add constraint FK_USROA2CLNTAPRVDSCP_CLIENT 
       foreign key (CLIENT_PID) 
       references CDR_OAUTH2_CLIENT_DETAILS;

    alter table if exists CDR_USER_DETAILS_OA2CLNAPRVSCP 
       add constraint FK_USROA2CLNTAPRVDSCP_USER 
       foreign key (USER_PID) 
       references CDR_USER_DETAILS;

    alter table if exists CDR_USER_PERM 
       add constraint FK_USERPERM_USER 
       foreign key (USER_PID) 
       references CDR_USER_DETAILS;

    alter table if exists CDR_USER_TFA_KEY 
       add constraint FK_USERTFAKEY_USER 
       foreign key (USER_PID) 
       references CDR_USER_DETAILS;

    alter table if exists CDR_XACT_LOG 
       add constraint FK_TRANSIT_CLIENT 
       foreign key (CLIENT_PID) 
       references CDR_OAUTH2_CLIENT_DETAILS;

    alter table if exists CDR_XACT_LOG 
       add constraint FK_XACTLOGSTEP_MODULE 
       foreign key (CDR_ENDPOINT_MODULE_PID) 
       references CDR_MODULE;

    alter table if exists CDR_XACT_LOG 
       add constraint FK_TRANSIT_EVENT 
       foreign key (USER_PID) 
       references CDR_USER_DETAILS;

    alter table if exists CDR_XACT_LOG_STEP 
       add constraint FK_XACTLOGSTEP_XACTLOG 
       foreign key (LOG_PID) 
       references CDR_XACT_LOG;

21.1.3Setting up a FHIR Storage (Relational) Database

 

To initialize a new PostgreSQL database for FHIR Storage (Relational), initialize a database with the following SQL:

create sequence SEQ_BLKEXCOL_PID start 1 increment 50;
create sequence SEQ_BLKEXCOLFILE_PID start 1 increment 50;
create sequence SEQ_BLKEXJOB_PID start 1 increment 50;
create sequence SEQ_CNCPT_MAP_GRP_ELM_TGT_PID start 1 increment 50;
create sequence SEQ_CODESYSTEM_PID start 1 increment 50;
create sequence SEQ_CODESYSTEMVER_PID start 1 increment 50;
create sequence SEQ_CONCEPT_DESIG_PID start 1 increment 50;
create sequence SEQ_CONCEPT_MAP_GROUP_PID start 1 increment 50;
create sequence SEQ_CONCEPT_MAP_GRP_ELM_PID start 1 increment 50;
create sequence SEQ_CONCEPT_MAP_PID start 1 increment 50;
create sequence SEQ_CONCEPT_PC_PID start 1 increment 50;
create sequence SEQ_CONCEPT_PID start 1 increment 50;
create sequence SEQ_CONCEPT_PROP_PID start 1 increment 50;
create sequence SEQ_FORCEDID_ID start 1 increment 50;
create sequence SEQ_HISTORYTAG_ID start 1 increment 50;
create sequence SEQ_IDXCMPSTRUNIQ_ID start 1 increment 50;
create sequence SEQ_RES_REINDEX_JOB start 1 increment 50;
create sequence SEQ_RESLINK_ID start 1 increment 50;
create sequence SEQ_RESOURCE_HISTORY_ID start 1 increment 50;
create sequence SEQ_RESOURCE_ID start 1 increment 50;
create sequence SEQ_RESPARMPRESENT_ID start 1 increment 50;
create sequence SEQ_RESTAG_ID start 1 increment 50;
create sequence SEQ_SEARCH start 1 increment 50;
create sequence SEQ_SEARCH_INC start 1 increment 50;
create sequence SEQ_SEARCH_RES start 1 increment 50;
create sequence SEQ_SPIDX_COORDS start 1 increment 50;
create sequence SEQ_SPIDX_DATE start 1 increment 50;
create sequence SEQ_SPIDX_NUMBER start 1 increment 50;
create sequence SEQ_SPIDX_QUANTITY start 1 increment 50;
create sequence SEQ_SPIDX_STRING start 1 increment 50;
create sequence SEQ_SPIDX_TOKEN start 1 increment 50;
create sequence SEQ_SPIDX_URI start 1 increment 50;
create sequence SEQ_SUBSCRIPTION_ID start 1 increment 50;
create sequence SEQ_TAGDEF_ID start 1 increment 50;
create sequence SEQ_VALUESET_C_DSGNTN_PID start 1 increment 50;
create sequence SEQ_VALUESET_CONCEPT_PID start 1 increment 50;
create sequence SEQ_VALUESET_PID start 1 increment 50;

    create table HFJ_BINARY_STORAGE_BLOB (
       BLOB_ID varchar(200) not null,
        BLOB_DATA oid not null,
        CONTENT_TYPE varchar(100) not null,
        BLOB_HASH varchar(128),
        PUBLISHED_DATE timestamp not null,
        RESOURCE_ID varchar(100) not null,
        BLOB_SIZE int4,
        primary key (BLOB_ID)
    );

    create table HFJ_BLK_EXPORT_COLFILE (
       PID int8 not null,
        RES_ID varchar(100) not null,
        COLLECTION_PID int8 not null,
        primary key (PID)
    );

    create table HFJ_BLK_EXPORT_COLLECTION (
       PID int8 not null,
        TYPE_FILTER varchar(1000),
        RES_TYPE varchar(40) not null,
        OPTLOCK int4 not null,
        JOB_PID int8 not null,
        primary key (PID)
    );

    create table HFJ_BLK_EXPORT_JOB (
       PID int8 not null,
        CREATED_TIME timestamp not null,
        EXP_TIME timestamp not null,
        JOB_ID varchar(36) not null,
        REQUEST varchar(500) not null,
        EXP_SINCE timestamp,
        JOB_STATUS varchar(10) not null,
        STATUS_MESSAGE varchar(500),
        STATUS_TIME timestamp not null,
        OPTLOCK int4 not null,
        primary key (PID)
    );

    create table HFJ_FORCED_ID (
       PID int8 not null,
        FORCED_ID varchar(100) not null,
        RESOURCE_PID int8 not null,
        RESOURCE_TYPE varchar(100) default '',
        primary key (PID)
    );

    create table HFJ_HISTORY_TAG (
       PID int8 not null,
        TAG_ID int8,
        RES_ID int8 not null,
        RES_TYPE varchar(40) not null,
        RES_VER_PID int8 not null,
        primary key (PID)
    );

    create table HFJ_IDX_CMP_STRING_UNIQ (
       PID int8 not null,
        IDX_STRING varchar(200) not null,
        RES_ID int8,
        primary key (PID)
    );

    create table HFJ_RES_LINK (
       PID int8 not null,
        SRC_PATH varchar(200) not null,
        SRC_RESOURCE_ID int8 not null,
        SOURCE_RESOURCE_TYPE varchar(40) not null,
        TARGET_RESOURCE_ID int8,
        TARGET_RESOURCE_TYPE varchar(40) not null,
        TARGET_RESOURCE_URL varchar(200),
        SP_UPDATED timestamp,
        primary key (PID)
    );

    create table HFJ_RES_PARAM_PRESENT (
       PID int8 not null,
        HASH_PRESENCE int8,
        SP_PRESENT boolean not null,
        RES_ID int8 not null,
        primary key (PID)
    );

    create table HFJ_RES_REINDEX_JOB (
       PID int8 not null,
        JOB_DELETED boolean not null,
        REINDEX_COUNT int4,
        RES_TYPE varchar(100),
        SUSPENDED_UNTIL timestamp,
        UPDATE_THRESHOLD_HIGH timestamp not null,
        UPDATE_THRESHOLD_LOW timestamp,
        primary key (PID)
    );

    create table HFJ_RES_TAG (
       PID int8 not null,
        TAG_ID int8,
        RES_ID int8,
        RES_TYPE varchar(40) not null,
        primary key (PID)
    );

    create table HFJ_RES_VER (
       PID int8 not null,
        RES_DELETED_AT timestamp,
        RES_VERSION varchar(7),
        HAS_TAGS boolean not null,
        RES_PUBLISHED timestamp not null,
        RES_UPDATED timestamp not null,
        RES_ENCODING varchar(5) not null,
        RES_TEXT oid,
        RES_ID int8,
        RES_TYPE varchar(40) not null,
        RES_VER int8 not null,
        FORCED_ID_PID int8,
        primary key (PID)
    );

    create table HFJ_RES_VER_PROV (
       RES_VER_PID int8 not null,
        REQUEST_ID varchar(16),
        SOURCE_URI varchar(100),
        RES_PID int8 not null,
        primary key (RES_VER_PID)
    );

    create table HFJ_RESOURCE (
       RES_ID int8 not null,
        RES_DELETED_AT timestamp,
        RES_VERSION varchar(7),
        HAS_TAGS boolean not null,
        RES_PUBLISHED timestamp not null,
        RES_UPDATED timestamp not null,
        SP_HAS_LINKS boolean,
        HASH_SHA256 varchar(64),
        SP_INDEX_STATUS int8,
        RES_LANGUAGE varchar(20),
        SP_CMPSTR_UNIQ_PRESENT boolean,
        SP_COORDS_PRESENT boolean,
        SP_DATE_PRESENT boolean,
        SP_NUMBER_PRESENT boolean,
        SP_QUANTITY_PRESENT boolean,
        SP_STRING_PRESENT boolean,
        SP_TOKEN_PRESENT boolean,
        SP_URI_PRESENT boolean,
        RES_PROFILE varchar(200),
        RES_TYPE varchar(40) not null,
        RES_VER int8,
        FORCED_ID_PID int8,
        primary key (RES_ID)
    );

    create table HFJ_SEARCH (
       PID int8 not null,
        CREATED timestamp not null,
        SEARCH_DELETED boolean,
        EXPIRY_OR_NULL timestamp,
        FAILURE_CODE int4,
        FAILURE_MESSAGE varchar(500),
        LAST_UPDATED_HIGH timestamp,
        LAST_UPDATED_LOW timestamp,
        NUM_BLOCKED int4,
        NUM_FOUND int4 not null,
        PREFERRED_PAGE_SIZE int4,
        RESOURCE_ID int8,
        RESOURCE_TYPE varchar(200),
        SEARCH_LAST_RETURNED timestamp not null,
        SEARCH_PARAM_MAP oid,
        SEARCH_QUERY_STRING text,
        SEARCH_QUERY_STRING_HASH int4,
        SEARCH_TYPE int4 not null,
        SEARCH_STATUS varchar(10) not null,
        TOTAL_COUNT int4,
        SEARCH_UUID varchar(36) not null,
        OPTLOCK_VERSION int4,
        primary key (PID)
    );

    create table HFJ_SEARCH_INCLUDE (
       PID int8 not null,
        SEARCH_INCLUDE varchar(200) not null,
        INC_RECURSE boolean not null,
        REVINCLUDE boolean not null,
        SEARCH_PID int8 not null,
        primary key (PID)
    );

    create table HFJ_SEARCH_RESULT (
       PID int8 not null,
        SEARCH_ORDER int4 not null,
        RESOURCE_PID int8 not null,
        SEARCH_PID int8 not null,
        primary key (PID)
    );

    create table HFJ_SPIDX_COORDS (
       SP_ID int8 not null,
        SP_MISSING boolean,
        SP_NAME varchar(100) not null,
        RES_ID int8 not null,
        RES_TYPE varchar(100) not null,
        SP_UPDATED timestamp,
        HASH_IDENTITY int8,
        SP_LATITUDE float8,
        SP_LONGITUDE float8,
        primary key (SP_ID)
    );

    create table HFJ_SPIDX_DATE (
       SP_ID int8 not null,
        SP_MISSING boolean,
        SP_NAME varchar(100) not null,
        RES_ID int8 not null,
        RES_TYPE varchar(100) not null,
        SP_UPDATED timestamp,
        HASH_IDENTITY int8,
        SP_VALUE_HIGH timestamp,
        SP_VALUE_LOW timestamp,
        primary key (SP_ID)
    );

    create table HFJ_SPIDX_NUMBER (
       SP_ID int8 not null,
        SP_MISSING boolean,
        SP_NAME varchar(100) not null,
        RES_ID int8 not null,
        RES_TYPE varchar(100) not null,
        SP_UPDATED timestamp,
        HASH_IDENTITY int8,
        SP_VALUE numeric(19, 2),
        primary key (SP_ID)
    );

    create table HFJ_SPIDX_QUANTITY (
       SP_ID int8 not null,
        SP_MISSING boolean,
        SP_NAME varchar(100) not null,
        RES_ID int8 not null,
        RES_TYPE varchar(100) not null,
        SP_UPDATED timestamp,
        HASH_IDENTITY int8,
        HASH_IDENTITY_AND_UNITS int8,
        HASH_IDENTITY_SYS_UNITS int8,
        SP_SYSTEM varchar(200),
        SP_UNITS varchar(200),
        SP_VALUE numeric(19, 2),
        primary key (SP_ID)
    );

    create table HFJ_SPIDX_STRING (
       SP_ID int8 not null,
        SP_MISSING boolean,
        SP_NAME varchar(100) not null,
        RES_ID int8 not null,
        RES_TYPE varchar(100) not null,
        SP_UPDATED timestamp,
        HASH_EXACT int8,
        HASH_IDENTITY int8,
        HASH_NORM_PREFIX int8,
        SP_VALUE_EXACT varchar(200),
        SP_VALUE_NORMALIZED varchar(200),
        primary key (SP_ID)
    );

    create table HFJ_SPIDX_TOKEN (
       SP_ID int8 not null,
        SP_MISSING boolean,
        SP_NAME varchar(100) not null,
        RES_ID int8 not null,
        RES_TYPE varchar(100) not null,
        SP_UPDATED timestamp,
        HASH_IDENTITY int8,
        HASH_SYS int8,
        HASH_SYS_AND_VALUE int8,
        HASH_VALUE int8,
        SP_SYSTEM varchar(200),
        SP_VALUE varchar(200),
        primary key (SP_ID)
    );

    create table HFJ_SPIDX_URI (
       SP_ID int8 not null,
        SP_MISSING boolean,
        SP_NAME varchar(100) not null,
        RES_ID int8 not null,
        RES_TYPE varchar(100) not null,
        SP_UPDATED timestamp,
        HASH_IDENTITY int8,
        HASH_URI int8,
        SP_URI varchar(254),
        primary key (SP_ID)
    );

    create table HFJ_SUBSCRIPTION_STATS (
       PID int8 not null,
        CREATED_TIME timestamp not null,
        RES_ID int8,
        primary key (PID)
    );

    create table HFJ_TAG_DEF (
       TAG_ID int8 not null,
        TAG_CODE varchar(200),
        TAG_DISPLAY varchar(200),
        TAG_SYSTEM varchar(200),
        TAG_TYPE int4 not null,
        primary key (TAG_ID)
    );

    create table TRM_CODESYSTEM (
       PID int8 not null,
        CODE_SYSTEM_URI varchar(200) not null,
        CURRENT_VERSION_PID int8,
        CS_NAME varchar(200),
        RES_ID int8,
        primary key (PID)
    );

    create table TRM_CODESYSTEM_VER (
       PID int8 not null,
        CS_DISPLAY varchar(200),
        CODESYSTEM_PID int8,
        CS_VERSION_ID varchar(200),
        RES_ID int8 not null,
        primary key (PID)
    );

    create table TRM_CONCEPT (
       PID int8 not null,
        CODEVAL varchar(500) not null,
        CODESYSTEM_PID int8,
        DISPLAY varchar(400),
        INDEX_STATUS int8,
        PARENT_PIDS text,
        CODE_SEQUENCE int4,
        CONCEPT_UPDATED timestamp,
        primary key (PID)
    );

    create table TRM_CONCEPT_DESIG (
       PID int8 not null,
        LANG varchar(500),
        USE_CODE varchar(500),
        USE_DISPLAY varchar(500),
        USE_SYSTEM varchar(500),
        VAL varchar(2000) not null,
        CS_VER_PID int8,
        CONCEPT_PID int8,
        primary key (PID)
    );

    create table TRM_CONCEPT_MAP (
       PID int8 not null,
        RES_ID int8,
        SOURCE_URL varchar(200),
        TARGET_URL varchar(200),
        URL varchar(200) not null,
        primary key (PID)
    );

    create table TRM_CONCEPT_MAP_GROUP (
       PID int8 not null,
        CONCEPT_MAP_URL varchar(200),
        SOURCE_URL varchar(200) not null,
        SOURCE_VS varchar(200),
        SOURCE_VERSION varchar(200),
        TARGET_URL varchar(200) not null,
        TARGET_VS varchar(200),
        TARGET_VERSION varchar(200),
        CONCEPT_MAP_PID int8 not null,
        primary key (PID)
    );

    create table TRM_CONCEPT_MAP_GRP_ELEMENT (
       PID int8 not null,
        SOURCE_CODE varchar(500) not null,
        CONCEPT_MAP_URL varchar(200),
        SOURCE_DISPLAY varchar(400),
        SYSTEM_URL varchar(200),
        SYSTEM_VERSION varchar(200),
        VALUESET_URL varchar(200),
        CONCEPT_MAP_GROUP_PID int8 not null,
        primary key (PID)
    );

    create table TRM_CONCEPT_MAP_GRP_ELM_TGT (
       PID int8 not null,
        TARGET_CODE varchar(500) not null,
        CONCEPT_MAP_URL varchar(200),
        TARGET_DISPLAY varchar(400),
        TARGET_EQUIVALENCE varchar(50),
        SYSTEM_URL varchar(200),
        SYSTEM_VERSION varchar(200),
        VALUESET_URL varchar(200),
        CONCEPT_MAP_GRP_ELM_PID int8 not null,
        primary key (PID)
    );

    create table TRM_CONCEPT_PC_LINK (
       PID int8 not null,
        CHILD_PID int8,
        CODESYSTEM_PID int8 not null,
        PARENT_PID int8,
        REL_TYPE int4,
        primary key (PID)
    );

    create table TRM_CONCEPT_PROPERTY (
       PID int8 not null,
        PROP_CODESYSTEM varchar(500),
        PROP_DISPLAY varchar(500),
        PROP_KEY varchar(500) not null,
        PROP_TYPE int4 not null,
        PROP_VAL varchar(500),
        PROP_VAL_LOB oid,
        CS_VER_PID int8,
        CONCEPT_PID int8,
        primary key (PID)
    );

    create table TRM_VALUESET (
       PID int8 not null,
        EXPANSION_STATUS varchar(50) not null,
        VSNAME varchar(200),
        RES_ID int8,
        TOTAL_CONCEPT_DESIGNATIONS int8 default 0 not null,
        TOTAL_CONCEPTS int8 default 0 not null,
        URL varchar(200) not null,
        primary key (PID)
    );

    create table TRM_VALUESET_C_DESIGNATION (
       PID int8 not null,
        VALUESET_CONCEPT_PID int8 not null,
        LANG varchar(500),
        USE_CODE varchar(500),
        USE_DISPLAY varchar(500),
        USE_SYSTEM varchar(500),
        VAL varchar(2000) not null,
        VALUESET_PID int8 not null,
        primary key (PID)
    );

    create table TRM_VALUESET_CONCEPT (
       PID int8 not null,
        CODEVAL varchar(500) not null,
        DISPLAY varchar(400),
        VALUESET_ORDER int4 not null,
        SYSTEM_URL varchar(200) not null,
        VALUESET_PID int8 not null,
        primary key (PID)
    );
create index IDX_BLKEX_EXPTIME on HFJ_BLK_EXPORT_JOB (EXP_TIME);

    alter table if exists HFJ_BLK_EXPORT_JOB 
       add constraint IDX_BLKEX_JOB_ID unique (JOB_ID);

    alter table if exists HFJ_FORCED_ID 
       add constraint IDX_FORCEDID_RESID unique (RESOURCE_PID);

    alter table if exists HFJ_FORCED_ID 
       add constraint IDX_FORCEDID_TYPE_FID unique (RESOURCE_TYPE, FORCED_ID);

    alter table if exists HFJ_HISTORY_TAG 
       add constraint IDX_RESHISTTAG_TAGID unique (RES_VER_PID, TAG_ID);
create index IDX_IDXCMPSTRUNIQ_RESOURCE on HFJ_IDX_CMP_STRING_UNIQ (RES_ID);

    alter table if exists HFJ_IDX_CMP_STRING_UNIQ 
       add constraint IDX_IDXCMPSTRUNIQ_STRING unique (IDX_STRING);
create index IDX_RL_TPATHRES on HFJ_RES_LINK (SRC_PATH, TARGET_RESOURCE_ID);
create index IDX_RL_SRC on HFJ_RES_LINK (SRC_RESOURCE_ID);
create index IDX_RL_DEST on HFJ_RES_LINK (TARGET_RESOURCE_ID);
create index IDX_RESPARMPRESENT_RESID on HFJ_RES_PARAM_PRESENT (RES_ID);
create index IDX_RESPARMPRESENT_HASHPRES on HFJ_RES_PARAM_PRESENT (HASH_PRESENCE);

    alter table if exists HFJ_RES_TAG 
       add constraint IDX_RESTAG_TAGID unique (RES_ID, TAG_ID);
create index IDX_RESVER_TYPE_DATE on HFJ_RES_VER (RES_TYPE, RES_UPDATED);
create index IDX_RESVER_ID_DATE on HFJ_RES_VER (RES_ID, RES_UPDATED);
create index IDX_RESVER_DATE on HFJ_RES_VER (RES_UPDATED);

    alter table if exists HFJ_RES_VER 
       add constraint IDX_RESVER_ID_VER unique (RES_ID, RES_VER);
create index IDX_RESVERPROV_SOURCEURI on HFJ_RES_VER_PROV (SOURCE_URI);
create index IDX_RESVERPROV_REQUESTID on HFJ_RES_VER_PROV (REQUEST_ID);
create index IDX_RES_DATE on HFJ_RESOURCE (RES_UPDATED);
create index IDX_RES_LANG on HFJ_RESOURCE (RES_TYPE, RES_LANGUAGE);
create index IDX_RES_PROFILE on HFJ_RESOURCE (RES_PROFILE);
create index IDX_RES_TYPE on HFJ_RESOURCE (RES_TYPE);
create index IDX_INDEXSTATUS on HFJ_RESOURCE (SP_INDEX_STATUS);
create index IDX_SEARCH_LASTRETURNED on HFJ_SEARCH (SEARCH_LAST_RETURNED);
create index IDX_SEARCH_RESTYPE_HASHS on HFJ_SEARCH (RESOURCE_TYPE, SEARCH_QUERY_STRING_HASH, CREATED);

    alter table if exists HFJ_SEARCH 
       add constraint IDX_SEARCH_UUID unique (SEARCH_UUID);

    alter table if exists HFJ_SEARCH_RESULT 
       add constraint IDX_SEARCHRES_ORDER unique (SEARCH_PID, SEARCH_ORDER);
create index IDX_SP_COORDS_HASH on HFJ_SPIDX_COORDS (HASH_IDENTITY, SP_LATITUDE, SP_LONGITUDE);
create index IDX_SP_COORDS_UPDATED on HFJ_SPIDX_COORDS (SP_UPDATED);
create index IDX_SP_COORDS_RESID on HFJ_SPIDX_COORDS (RES_ID);
create index IDX_SP_DATE_HASH on HFJ_SPIDX_DATE (HASH_IDENTITY, SP_VALUE_LOW, SP_VALUE_HIGH);
create index IDX_SP_DATE_UPDATED on HFJ_SPIDX_DATE (SP_UPDATED);
create index IDX_SP_DATE_RESID on HFJ_SPIDX_DATE (RES_ID);
create index IDX_SP_NUMBER_HASH_VAL on HFJ_SPIDX_NUMBER (HASH_IDENTITY, SP_VALUE);
create index IDX_SP_NUMBER_UPDATED on HFJ_SPIDX_NUMBER (SP_UPDATED);
create index IDX_SP_NUMBER_RESID on HFJ_SPIDX_NUMBER (RES_ID);
create index IDX_SP_QUANTITY_HASH on HFJ_SPIDX_QUANTITY (HASH_IDENTITY, SP_VALUE);
create index IDX_SP_QUANTITY_HASH_UN on HFJ_SPIDX_QUANTITY (HASH_IDENTITY_AND_UNITS, SP_VALUE);
create index IDX_SP_QUANTITY_HASH_SYSUN on HFJ_SPIDX_QUANTITY (HASH_IDENTITY_SYS_UNITS, SP_VALUE);
create index IDX_SP_QUANTITY_UPDATED on HFJ_SPIDX_QUANTITY (SP_UPDATED);
create index IDX_SP_QUANTITY_RESID on HFJ_SPIDX_QUANTITY (RES_ID);
create index IDX_SP_STRING_HASH_IDENT on HFJ_SPIDX_STRING (HASH_IDENTITY);
create index IDX_SP_STRING_HASH_NRM on HFJ_SPIDX_STRING (HASH_NORM_PREFIX, SP_VALUE_NORMALIZED);
create index IDX_SP_STRING_HASH_EXCT on HFJ_SPIDX_STRING (HASH_EXACT);
create index IDX_SP_STRING_UPDATED on HFJ_SPIDX_STRING (SP_UPDATED);
create index IDX_SP_STRING_RESID on HFJ_SPIDX_STRING (RES_ID);
create index IDX_SP_TOKEN_HASH on HFJ_SPIDX_TOKEN (HASH_IDENTITY);
create index IDX_SP_TOKEN_HASH_S on HFJ_SPIDX_TOKEN (HASH_SYS);
create index IDX_SP_TOKEN_HASH_SV on HFJ_SPIDX_TOKEN (HASH_SYS_AND_VALUE);
create index IDX_SP_TOKEN_HASH_V on HFJ_SPIDX_TOKEN (HASH_VALUE);
create index IDX_SP_TOKEN_UPDATED on HFJ_SPIDX_TOKEN (SP_UPDATED);
create index IDX_SP_TOKEN_RESID on HFJ_SPIDX_TOKEN (RES_ID);
create index IDX_SP_URI on HFJ_SPIDX_URI (RES_TYPE, SP_NAME, SP_URI);
create index IDX_SP_URI_HASH_IDENTITY on HFJ_SPIDX_URI (HASH_IDENTITY, SP_URI);
create index IDX_SP_URI_HASH_URI on HFJ_SPIDX_URI (HASH_URI);
create index IDX_SP_URI_RESTYPE_NAME on HFJ_SPIDX_URI (RES_TYPE, SP_NAME);
create index IDX_SP_URI_UPDATED on HFJ_SPIDX_URI (SP_UPDATED);
create index IDX_SP_URI_COORDS on HFJ_SPIDX_URI (RES_ID);

    alter table if exists HFJ_SUBSCRIPTION_STATS 
       add constraint IDX_SUBSC_RESID unique (RES_ID);

    alter table if exists HFJ_TAG_DEF 
       add constraint IDX_TAGDEF_TYPESYSCODE unique (TAG_TYPE, TAG_SYSTEM, TAG_CODE);

    alter table if exists TRM_CODESYSTEM 
       add constraint IDX_CS_CODESYSTEM unique (CODE_SYSTEM_URI);
create index IDX_CONCEPT_INDEXSTATUS on TRM_CONCEPT (INDEX_STATUS);
create index IDX_CONCEPT_UPDATED on TRM_CONCEPT (CONCEPT_UPDATED);

    alter table if exists TRM_CONCEPT 
       add constraint IDX_CONCEPT_CS_CODE unique (CODESYSTEM_PID, CODEVAL);

    alter table if exists TRM_CONCEPT_MAP 
       add constraint IDX_CONCEPT_MAP_URL unique (URL);
create index IDX_CNCPT_MAP_GRP_CD on TRM_CONCEPT_MAP_GRP_ELEMENT (SOURCE_CODE);
create index IDX_CNCPT_MP_GRP_ELM_TGT_CD on TRM_CONCEPT_MAP_GRP_ELM_TGT (TARGET_CODE);

    alter table if exists TRM_VALUESET 
       add constraint IDX_VALUESET_URL unique (URL);
create index IDX_VALUESET_C_DSGNTN_VAL on TRM_VALUESET_C_DESIGNATION (VAL);

    alter table if exists TRM_VALUESET_CONCEPT 
       add constraint IDX_VS_CONCEPT_CS_CD unique (VALUESET_PID, SYSTEM_URL, CODEVAL);

    alter table if exists TRM_VALUESET_CONCEPT 
       add constraint IDX_VS_CONCEPT_ORDER unique (VALUESET_PID, VALUESET_ORDER);

    alter table if exists HFJ_BLK_EXPORT_COLFILE 
       add constraint FK_BLKEXCOLFILE_COLLECT 
       foreign key (COLLECTION_PID) 
       references HFJ_BLK_EXPORT_COLLECTION;

    alter table if exists HFJ_BLK_EXPORT_COLLECTION 
       add constraint FK_BLKEXCOL_JOB 
       foreign key (JOB_PID) 
       references HFJ_BLK_EXPORT_JOB;

    alter table if exists HFJ_FORCED_ID 
       add constraint FK_FORCEDID_RESOURCE 
       foreign key (RESOURCE_PID) 
       references HFJ_RESOURCE;

    alter table if exists HFJ_HISTORY_TAG 
       add constraint FKtderym7awj6q8iq5c51xv4ndw 
       foreign key (TAG_ID) 
       references HFJ_TAG_DEF;

    alter table if exists HFJ_HISTORY_TAG 
       add constraint FK_HISTORYTAG_HISTORY 
       foreign key (RES_VER_PID) 
       references HFJ_RES_VER;

    alter table if exists HFJ_IDX_CMP_STRING_UNIQ 
       add constraint FK_IDXCMPSTRUNIQ_RES_ID 
       foreign key (RES_ID) 
       references HFJ_RESOURCE;

    alter table if exists HFJ_RES_LINK 
       add constraint FK_RESLINK_SOURCE 
       foreign key (SRC_RESOURCE_ID) 
       references HFJ_RESOURCE;

    alter table if exists HFJ_RES_LINK 
       add constraint FK_RESLINK_TARGET 
       foreign key (TARGET_RESOURCE_ID) 
       references HFJ_RESOURCE;

    alter table if exists HFJ_RES_PARAM_PRESENT 
       add constraint FK_RESPARMPRES_RESID 
       foreign key (RES_ID) 
       references HFJ_RESOURCE;

    alter table if exists HFJ_RES_TAG 
       add constraint FKbfcjbaftmiwr3rxkwsy23vneo 
       foreign key (TAG_ID) 
       references HFJ_TAG_DEF;

    alter table if exists HFJ_RES_TAG 
       add constraint FK_RESTAG_RESOURCE 
       foreign key (RES_ID) 
       references HFJ_RESOURCE;

    alter table if exists HFJ_RES_VER 
       add constraint FKh20i7lcbchkaxekvwg9ix4hc5 
       foreign key (FORCED_ID_PID) 
       references HFJ_FORCED_ID;

    alter table if exists HFJ_RES_VER_PROV 
       add constraint FK_RESVERPROV_RES_PID 
       foreign key (RES_PID) 
       references HFJ_RESOURCE;

    alter table if exists HFJ_RES_VER_PROV 
       add constraint FK_RESVERPROV_RESVER_PID 
       foreign key (RES_VER_PID) 
       references HFJ_RES_VER;

    alter table if exists HFJ_RESOURCE 
       add constraint FKhjgj8cp879gfxko25cx5o692r 
       foreign key (FORCED_ID_PID) 
       references HFJ_FORCED_ID;

    alter table if exists HFJ_SEARCH_INCLUDE 
       add constraint FK_SEARCHINC_SEARCH 
       foreign key (SEARCH_PID) 
       references HFJ_SEARCH;

    alter table if exists HFJ_SPIDX_COORDS 
       add constraint FKc97mpk37okwu8qvtceg2nh9vn 
       foreign key (RES_ID) 
       references HFJ_RESOURCE;

    alter table if exists HFJ_SPIDX_DATE 
       add constraint FK17s70oa59rm9n61k9thjqrsqm 
       foreign key (RES_ID) 
       references HFJ_RESOURCE;

    alter table if exists HFJ_SPIDX_NUMBER 
       add constraint FKcltihnc5tgprj9bhpt7xi5otb 
       foreign key (RES_ID) 
       references HFJ_RESOURCE;

    alter table if exists HFJ_SPIDX_QUANTITY 
       add constraint FKn603wjjoi1a6asewxbbd78bi5 
       foreign key (RES_ID) 
       references HFJ_RESOURCE;

    alter table if exists HFJ_SPIDX_STRING 
       add constraint FK_SPIDXSTR_RESOURCE 
       foreign key (RES_ID) 
       references HFJ_RESOURCE;

    alter table if exists HFJ_SPIDX_TOKEN 
       add constraint FK7ulx3j1gg3v7maqrejgc7ybc4 
       foreign key (RES_ID) 
       references HFJ_RESOURCE;

    alter table if exists HFJ_SPIDX_URI 
       add constraint FKgxsreutymmfjuwdswv3y887do 
       foreign key (RES_ID) 
       references HFJ_RESOURCE;

    alter table if exists HFJ_SUBSCRIPTION_STATS 
       add constraint FK_SUBSC_RESOURCE_ID 
       foreign key (RES_ID) 
       references HFJ_RESOURCE;

    alter table if exists TRM_CODESYSTEM 
       add constraint FK_TRMCODESYSTEM_CURVER 
       foreign key (CURRENT_VERSION_PID) 
       references TRM_CODESYSTEM_VER;

    alter table if exists TRM_CODESYSTEM 
       add constraint FK_TRMCODESYSTEM_RES 
       foreign key (RES_ID) 
       references HFJ_RESOURCE;

    alter table if exists TRM_CODESYSTEM_VER 
       add constraint FK_CODESYSVER_CS_ID 
       foreign key (CODESYSTEM_PID) 
       references TRM_CODESYSTEM;

    alter table if exists TRM_CODESYSTEM_VER 
       add constraint FK_CODESYSVER_RES_ID 
       foreign key (RES_ID) 
       references HFJ_RESOURCE;

    alter table if exists TRM_CONCEPT 
       add constraint FK_CONCEPT_PID_CS_PID 
       foreign key (CODESYSTEM_PID) 
       references TRM_CODESYSTEM_VER;

    alter table if exists TRM_CONCEPT_DESIG 
       add constraint FK_CONCEPTDESIG_CSV 
       foreign key (CS_VER_PID) 
       references TRM_CODESYSTEM_VER;

    alter table if exists TRM_CONCEPT_DESIG 
       add constraint FK_CONCEPTDESIG_CONCEPT 
       foreign key (CONCEPT_PID) 
       references TRM_CONCEPT;

    alter table if exists TRM_CONCEPT_MAP 
       add constraint FK_TRMCONCEPTMAP_RES 
       foreign key (RES_ID) 
       references HFJ_RESOURCE;

    alter table if exists TRM_CONCEPT_MAP_GROUP 
       add constraint FK_TCMGROUP_CONCEPTMAP 
       foreign key (CONCEPT_MAP_PID) 
       references TRM_CONCEPT_MAP;

    alter table if exists TRM_CONCEPT_MAP_GRP_ELEMENT 
       add constraint FK_TCMGELEMENT_GROUP 
       foreign key (CONCEPT_MAP_GROUP_PID) 
       references TRM_CONCEPT_MAP_GROUP;

    alter table if exists TRM_CONCEPT_MAP_GRP_ELM_TGT 
       add constraint FK_TCMGETARGET_ELEMENT 
       foreign key (CONCEPT_MAP_GRP_ELM_PID) 
       references TRM_CONCEPT_MAP_GRP_ELEMENT;

    alter table if exists TRM_CONCEPT_PC_LINK 
       add constraint FK_TERM_CONCEPTPC_CHILD 
       foreign key (CHILD_PID) 
       references TRM_CONCEPT;

    alter table if exists TRM_CONCEPT_PC_LINK 
       add constraint FK_TERM_CONCEPTPC_CS 
       foreign key (CODESYSTEM_PID) 
       references TRM_CODESYSTEM_VER;

    alter table if exists TRM_CONCEPT_PC_LINK 
       add constraint FK_TERM_CONCEPTPC_PARENT 
       foreign key (PARENT_PID) 
       references TRM_CONCEPT;

    alter table if exists TRM_CONCEPT_PROPERTY 
       add constraint FK_CONCEPTPROP_CSV 
       foreign key (CS_VER_PID) 
       references TRM_CODESYSTEM_VER;

    alter table if exists TRM_CONCEPT_PROPERTY 
       add constraint FK_CONCEPTPROP_CONCEPT 
       foreign key (CONCEPT_PID) 
       references TRM_CONCEPT;

    alter table if exists TRM_VALUESET 
       add constraint FK_TRMVALUESET_RES 
       foreign key (RES_ID) 
       references HFJ_RESOURCE;

    alter table if exists TRM_VALUESET_C_DESIGNATION 
       add constraint FK_TRM_VALUESET_CONCEPT_PID 
       foreign key (VALUESET_CONCEPT_PID) 
       references TRM_VALUESET_CONCEPT;

    alter table if exists TRM_VALUESET_C_DESIGNATION 
       add constraint FK_TRM_VSCD_VS_PID 
       foreign key (VALUESET_PID) 
       references TRM_VALUESET;

    alter table if exists TRM_VALUESET_CONCEPT 
       add constraint FK_TRM_VALUESET_PID 
       foreign key (VALUESET_PID) 
       references TRM_VALUESET;