On this page:

21.5Setting Up SQL Server (MSSQL)

 

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

21.5.1Supported Versions

 

Smile CDR has been tested against the following versions of SQL Server:

  • SQL Server 2016

21.5.2Setting up a Cluster Manager Database

 

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

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

    create table CDR_AUDIT_EVT (
       PID bigint not null,
        AUSER_TYPE int,
        REMOTE_ADDRESS varchar(100),
        HAVE_TARGET_MODULES bit not null,
        HAVE_TARGET_RESOURCES bit not null,
        HAVE_TARGET_USERS bit not null,
        EVT_TIMESTAMP datetime2 not null,
        TYPE_DISPLAY varchar(200) not null,
        CLIENT_PID bigint,
        ENDPOINT_MODULE_PID bigint not null,
        TYPE_PID bigint not null,
        USER_PID bigint,
        primary key (PID)
    );

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

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

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

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

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

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

    create table CDR_CLUSTMGR_MODULE_MET_GAUGE (
       GAUGE_ID varchar(100) not null,
        INTRVL int not null,
        START_TIME datetime2 not null,
        ISCOLLAPSED bit not null,
        GAUGE_VAL bigint not null,
        MODULE_PID bigint 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 bit not null,
        HEALTHY_STRING varchar(200),
        MODULE_PID bigint not null,
        primary key (HEALTHCHECK_ID, MODULE_PID)
    );

    create table CDR_CLUSTMGR_MODULE_METRIC_TMR (
       INTRVL int not null,
        METER_ID varchar(100) not null,
        START_TIME datetime2 not null,
        ISCOLLAPSED bit not null,
        COUNTV bigint,
        RATE_15_MIN float not null,
        FIRST_SINCE_RS bit not null,
        RATE_5_MIN float not null,
        LATENCY_MAX int default 0 not null,
        LATENCY_MEAN int default 0 not null,
        LATENCY_MIN int default 0 not null,
        RATE_1_MIN float not null,
        MODULE_PID bigint 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 datetime2 not null,
        primary key (DB_VERSION)
    );

    create table CDR_EMPI_LINK_RULE (
       PID bigint not null,
        MAX_WEIGHT float,
        MIN_WEIGHT float,
        RULE_ORDER int not null,
        RULE_OUTCOME varchar(100) not null,
        MODULE_PID bigint not null,
        REVIEW_QUEUE_PID bigint,
        primary key (PID)
    );

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

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

    create table CDR_EMPI_STD_MATCH_RULE (
       PID bigint 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 int not null,
        RULE_WEIGHT float not null,
        MODULE_PID bigint not null,
        primary key (PID)
    );

    create table CDR_FHIR_SEARCHPARAM (
       PID bigint 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 datetime2 not null,
        LAST_USED datetime2,
        STAT_OVERALL_COUNT bigint,
        SP_PATH varchar(500),
        STAT_RESOURCE_SPREAD double precision 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 varbinary(MAX),
        BUF_UNIQUE_VALUES varbinary(MAX),
        STAT_VALUE_SPREAD double precision not null,
        MODULE_PID bigint not null,
        primary key (PID)
    );

    create table CDR_GLOBAL_GAUGE (
       ID varchar(200) not null,
        VAL_DOUBLE double precision,
        VAL_LONG bigint,
        primary key (ID)
    );

    create table CDR_HTTP_SESSION (
       PID bigint not null,
        SES_ATTRS varbinary(MAX) not null,
        SES_EXPIRY datetime2 not null,
        LAST_ACCESSED_TIME datetime2,
        MAX_INACTIVE bigint not null,
        SES_ID varchar(200) not null,
        MODULE_PID bigint not null,
        primary key (PID)
    );

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

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

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

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

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

    create table CDR_MODULE_PROT_SUPPLIES (
       PID bigint not null,
        ENTRY_KEY int not null,
        PROTOTYPE_PID bigint,
        primary key (PID)
    );

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

    create table CDR_MODULE_STATUS (
       CONCEPTS_INDEXED_UNTIL datetime2,
        FULLTEXT_INDEXED_UNTIL datetime2,
        PORTVAL int,
        MODULE_STATUS int not null,
        MODULE_STATUS_DESC varchar(200),
        MODULE_PID bigint not null,
        primary key (MODULE_PID)
    );

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

    create table CDR_NODE_STATUS (
       IS_RUNNNING bit not null,
        STARTED_TIME datetime2,
        STOPPED_TIME datetime2,
        NODE_PID bigint not null,
        primary key (NODE_PID)
    );

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

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

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

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

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

    create table CDR_OA2_SERVER (
       PID bigint 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 varchar(MAX),
        MODULE_PID bigint not null,
        primary key (PID)
    );

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

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

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

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

    create table CDR_OAUTH2_AUTH_CODE (
       PID bigint not null,
        OAUTH2_AUTHENTICATION varbinary(MAX),
        CLIENT_ID varchar(200) not null,
        CODE_VAL varchar(100) not null,
        EXPIRATION datetime2 not null,
        STATE_VAL varchar(100),
        primary key (PID)
    );

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

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

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

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

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

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

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

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

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

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

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

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

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

    create table CDR_USER_TFA_KEY (
       PID bigint not null,
        CONFIRMED_AT datetime2,
        KEY_EXPIRES datetime2,
        FAILED_VERIFS int,
        A_KEY varchar(250) not null,
        A_STYLE varchar(20) not null,
        OPTLOCK int not null,
        USER_PID bigint not null,
        primary key (PID)
    );

    create table CDR_XACT_LOG (
       PID bigint not null,
        INITIAL_TIMESTAMP datetime2 not null,
        EVT_OUTCOME int not null,
        SRC_XACT_ID varchar(128),
        EVT_SUBTYPE int not null,
        EVT_TYPE int not null,
        CLIENT_PID bigint,
        CDR_ENDPOINT_MODULE_PID bigint,
        USER_PID bigint,
        primary key (PID)
    );

    create table CDR_XACT_LOG_STEP (
       STEP_PID bigint not null,
        BODY_BYTES varbinary(MAX),
        BODY_TYPE int,
        LOCAL_HOST varchar(100),
        LOCAL_PORT int,
        EVT_OUTCOME int,
        PROCESSING_TIME bigint,
        REMOTE_HOST varchar(100),
        REMOTE_PORT int,
        REQUEST_URL_STR varchar(250),
        REQ_VAL_RESULT int,
        REQUEST_VERB varchar(7),
        RESPONSE_STATUS smallint,
        SUBSCRIPTION_ID varchar(77),
        LOG_TIMESTAMP datetime2 not null,
        STEP_TYPE int not null,
        LOG_PID bigint 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 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 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 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 CDR_HTTP_SESSION 
       add constraint IDX_HTTPSESSION_ID unique (SES_ID);

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

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

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

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

    alter table CDR_MODULE_PROTOTYPE 
       add constraint IDX_MODULEPROTOTYPE_TYPE unique (MODULE_TYPE);

    alter table CDR_NODE 
       add constraint IDX_NODE_ID unique (NODE_ID);

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

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

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

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

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

    alter table 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 CDR_OAUTH2_ATOKEN_ADNLINFO 
       add constraint IDX_OA2ATOKADLNF_ATOKEN_ADNLNF unique (TOKEN_PID, INFO_KEY);

    alter table 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 CDR_OAUTH2_AUTH_CODE 
       add constraint IDX_OA2AUTHCODE_CODE unique (CODE_VAL);

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

    alter table 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 CDR_OAUTH2_REFRESH_TOKEN 
       add constraint IDX_OA2REFTOKEN_TOKEN unique (TOKEN_VAL);

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

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

    alter table 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 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 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 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 CDR_AUDIT_EVT 
       add constraint FK_AUDITEVT_CLIENT 
       foreign key (CLIENT_PID) 
       references CDR_OAUTH2_CLIENT_DETAILS;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

21.5.3Setting up a FHIR Storage (Relational) Database

 

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

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

    create table HFJ_BINARY_STORAGE_BLOB (
       BLOB_ID varchar(200) not null,
        BLOB_DATA varbinary(MAX) not null,
        CONTENT_TYPE varchar(100) not null,
        BLOB_HASH varchar(128),
        PUBLISHED_DATE datetime2 not null,
        RESOURCE_ID varchar(100) not null,
        BLOB_SIZE int,
        primary key (BLOB_ID)
    );

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

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

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

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

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

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

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

    create table HFJ_RES_PARAM_PRESENT (
       PID bigint not null,
        HASH_PRESENCE bigint,
        SP_PRESENT bit not null,
        RES_ID bigint not null,
        primary key (PID)
    );

    create table HFJ_RES_REINDEX_JOB (
       PID bigint not null,
        JOB_DELETED bit not null,
        REINDEX_COUNT int,
        RES_TYPE varchar(100),
        SUSPENDED_UNTIL datetime2,
        UPDATE_THRESHOLD_HIGH datetime2 not null,
        UPDATE_THRESHOLD_LOW datetime2,
        primary key (PID)
    );

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

    create table HFJ_RES_VER (
       PID bigint not null,
        RES_DELETED_AT datetime2,
        RES_VERSION varchar(7),
        HAS_TAGS bit not null,
        RES_PUBLISHED datetime2 not null,
        RES_UPDATED datetime2 not null,
        RES_ENCODING varchar(5) not null,
        RES_TEXT varbinary(MAX),
        RES_ID bigint,
        RES_TYPE varchar(40) not null,
        RES_VER bigint not null,
        FORCED_ID_PID bigint,
        primary key (PID)
    );

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

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

    create table HFJ_SEARCH (
       PID bigint not null,
        CREATED datetime2 not null,
        SEARCH_DELETED bit,
        EXPIRY_OR_NULL datetime2,
        FAILURE_CODE int,
        FAILURE_MESSAGE varchar(500),
        LAST_UPDATED_HIGH datetime2,
        LAST_UPDATED_LOW datetime2,
        NUM_BLOCKED int,
        NUM_FOUND int not null,
        PREFERRED_PAGE_SIZE int,
        RESOURCE_ID bigint,
        RESOURCE_TYPE varchar(200),
        SEARCH_LAST_RETURNED datetime2 not null,
        SEARCH_PARAM_MAP varbinary(MAX),
        SEARCH_QUERY_STRING varchar(MAX),
        SEARCH_QUERY_STRING_HASH int,
        SEARCH_TYPE int not null,
        SEARCH_STATUS varchar(10) not null,
        TOTAL_COUNT int,
        SEARCH_UUID varchar(36) not null,
        OPTLOCK_VERSION int,
        primary key (PID)
    );

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

    create table HFJ_SEARCH_RESULT (
       PID bigint not null,
        SEARCH_ORDER int not null,
        RESOURCE_PID bigint not null,
        SEARCH_PID bigint not null,
        primary key (PID)
    );

    create table HFJ_SPIDX_COORDS (
       SP_ID bigint not null,
        SP_MISSING bit,
        SP_NAME varchar(100) not null,
        RES_ID bigint,
        RES_TYPE varchar(100) not null,
        SP_UPDATED datetime2,
        HASH_IDENTITY bigint,
        SP_LATITUDE double precision,
        SP_LONGITUDE double precision,
        primary key (SP_ID)
    );

    create table HFJ_SPIDX_DATE (
       SP_ID bigint not null,
        SP_MISSING bit,
        SP_NAME varchar(100) not null,
        RES_ID bigint,
        RES_TYPE varchar(100) not null,
        SP_UPDATED datetime2,
        HASH_IDENTITY bigint,
        SP_VALUE_HIGH datetime2,
        SP_VALUE_LOW datetime2,
        primary key (SP_ID)
    );

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

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

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

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

    create table HFJ_SPIDX_URI (
       SP_ID bigint not null,
        SP_MISSING bit,
        SP_NAME varchar(100) not null,
        RES_ID bigint,
        RES_TYPE varchar(100) not null,
        SP_UPDATED datetime2,
        HASH_IDENTITY bigint,
        HASH_URI bigint,
        SP_URI varchar(254),
        primary key (SP_ID)
    );

    create table HFJ_SUBSCRIPTION_STATS (
       PID bigint not null,
        CREATED_TIME datetime2 not null,
        RES_ID bigint,
        primary key (PID)
    );

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

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

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

    create table TRM_CONCEPT (
       PID bigint not null,
        CODEVAL varchar(500) not null,
        CODESYSTEM_PID bigint,
        DISPLAY varchar(400),
        INDEX_STATUS bigint,
        PARENT_PIDS varchar(MAX),
        CODE_SEQUENCE int,
        CONCEPT_UPDATED datetime2,
        primary key (PID)
    );

    create table TRM_CONCEPT_DESIG (
       PID bigint 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 bigint,
        CONCEPT_PID bigint,
        primary key (PID)
    );

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

    create table TRM_CONCEPT_MAP_GROUP (
       PID bigint 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 bigint not null,
        primary key (PID)
    );

    create table TRM_CONCEPT_MAP_GRP_ELEMENT (
       PID bigint 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 bigint not null,
        primary key (PID)
    );

    create table TRM_CONCEPT_MAP_GRP_ELM_TGT (
       PID bigint 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 bigint not null,
        primary key (PID)
    );

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

    create table TRM_CONCEPT_PROPERTY (
       PID bigint not null,
        PROP_CODESYSTEM varchar(500),
        PROP_DISPLAY varchar(500),
        PROP_KEY varchar(500) not null,
        PROP_TYPE int not null,
        PROP_VAL varchar(500),
        PROP_VAL_LOB varbinary(MAX),
        CS_VER_PID bigint,
        CONCEPT_PID bigint,
        primary key (PID)
    );

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

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

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

    alter table HFJ_BLK_EXPORT_JOB 
       add constraint IDX_BLKEX_JOB_ID unique (JOB_ID);

    alter table HFJ_FORCED_ID 
       add constraint IDX_FORCEDID_RESID unique (RESOURCE_PID);

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

    alter table 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 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 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 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 HFJ_SEARCH 
       add constraint IDX_SEARCH_UUID unique (SEARCH_UUID);

    alter table 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 HFJ_SUBSCRIPTION_STATS 
       add constraint IDX_SUBSC_RESID unique (RES_ID);

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

    alter table 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 TRM_CONCEPT 
       add constraint IDX_CONCEPT_CS_CODE unique (CODESYSTEM_PID, CODEVAL);

    alter table 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 TRM_VALUESET 
       add constraint IDX_VALUESET_URL unique (URL);
create index IDX_VALUESET_C_DSGNTN_VAL on TRM_VALUESET_C_DESIGNATION (VAL);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    alter table 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 TRM_CONCEPT_PC_LINK 
       add constraint FK_TERM_CONCEPTPC_CHILD 
       foreign key (CHILD_PID) 
       references TRM_CONCEPT;

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

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

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

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

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

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

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

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