diff --git a/snprc_ehr/module.properties b/snprc_ehr/module.properties index 260e34592..c6a614d81 100644 --- a/snprc_ehr/module.properties +++ b/snprc_ehr/module.properties @@ -1,5 +1,5 @@ ModuleClass: org.labkey.snprc_ehr.SNPRC_EHRModule -SupportedDatabases: mssql +SupportedDatabases: mssql, pgsql ManageVersion: true License: Apache 2.0 LicenseURL: http://www.apache.org/licenses/LICENSE-2.0 diff --git a/snprc_ehr/resources/schemas/dbscripts/postgresql/snprc_ehr-0.000-25.000.sql b/snprc_ehr/resources/schemas/dbscripts/postgresql/snprc_ehr-0.000-25.000.sql new file mode 100644 index 000000000..0c3ad1a63 --- /dev/null +++ b/snprc_ehr/resources/schemas/dbscripts/postgresql/snprc_ehr-0.000-25.000.sql @@ -0,0 +1,1115 @@ +/* + * NOTE: Need to: + * - Fix snprc_ehr.HL7_IMPORT_LOG.TID - IDENTITY columns in PostgreSQL must be int, bigint, smallint, etc. NOT NUMERIC + * - get_random_uuid + * - ROWVERSION replaced with BYTEA + */ + +CREATE SCHEMA snprc_ehr; + +CREATE TABLE snprc_ehr.package ( + id INT NOT NULL, + name VARCHAR(100), + description TEXT, + Container ENTITYID NOT NULL, + Created TIMESTAMP, + CreatedBy USERID, + Modified TIMESTAMP, + ModifiedBy USERID, + diCreated TIMESTAMP, + diModified TIMESTAMP, + diCreatedBy USERID, + diModifiedBy USERID, + objectid ENTITYID NOT NULL DEFAULT gen_random_uuid(), + pkgType VARCHAR(1) NOT NULL DEFAULT 'U', + + CONSTRAINT PK_packages PRIMARY KEY (id), + CONSTRAINT FK_packages_Container FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) +); + +CREATE UNIQUE INDEX idx_package_objectid ON snprc_ehr.package (objectid); + +CREATE TABLE snprc_ehr.package_category ( + id INT NOT NULL, + description TEXT, + Container ENTITYID NOT NULL, + Created TIMESTAMP, + CreatedBy USERID, + Modified TIMESTAMP, + ModifiedBy USERID, + diCreated TIMESTAMP, + diModified TIMESTAMP, + diCreatedBy USERID, + diModifiedBy USERID, + objectid ENTITYID NOT NULL DEFAULT gen_random_uuid(), + + CONSTRAINT PK_package_categories PRIMARY KEY (id), + CONSTRAINT FK_package_categories_Container FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) +); + +CREATE UNIQUE INDEX idx_package_category_objectid ON snprc_ehr.package_category (objectid); + +CREATE TABLE snprc_ehr.package_category_junction ( + rowId INT NOT NULL, + packageId INT NOT NULL, + categoryId INT NOT NULL, + Created TIMESTAMP, + CreatedBy USERID, + Modified TIMESTAMP, + ModifiedBy USERID, + diCreated TIMESTAMP, + diModified TIMESTAMP, + diCreatedBy USERID, + diModifiedBy USERID, + objectid ENTITYID NOT NULL DEFAULT gen_random_uuid(), + + CONSTRAINT PK_package_category_junction PRIMARY KEY (rowId), + CONSTRAINT FK_package_category_junction_packageId FOREIGN KEY (packageId) REFERENCES snprc_ehr.package(id), + CONSTRAINT FK_package_category_junction_categoryId FOREIGN KEY (categoryId) REFERENCES snprc_ehr.package_category(id) +); + +CREATE UNIQUE INDEX IDX_package_category_junction ON snprc_ehr.package_category_junction(categoryId, packageId); +CREATE UNIQUE INDEX idx_package_category_junction_objectid ON snprc_ehr.package_category_junction (objectid); + +CREATE TABLE snprc_ehr.species +( + common VARCHAR(255) NOT NULL, + scientific_name VARCHAR(255), + id_prefix VARCHAR(255), + mhc_prefix VARCHAR(255), + blood_per_kg DOUBLE PRECISION, + max_draw_pct DOUBLE PRECISION, + blood_draw_interval DOUBLE PRECISION, + dateDisabled TIMESTAMP NULL, + cites_code VARCHAR(200), + species_code VARCHAR(3) NOT NULL, + arc_species_code VARCHAR(3) NOT NULL, + tid INT, + diCreated TIMESTAMP, + diModified TIMESTAMP, + diCreatedBy USERID, + diModifiedBy USERID, + primate VARCHAR(1), + objectid ENTITYID NOT NULL DEFAULT gen_random_uuid(), + Created TIMESTAMP, + Modified TIMESTAMP, + CreatedBy USERID, + ModifiedBy USERID, + + CONSTRAINT pk_species PRIMARY KEY (species_code) +); + +CREATE UNIQUE INDEX idx_species_objectid ON snprc_ehr.species (objectid); + +CREATE TABLE snprc_ehr.clinical_observation_datasets +( + rowId INT NOT NULL, + dataset_name VARCHAR(255) NOT NULL, + category_name VARCHAR(255) NOT NULL, + sort_order INT NULL, + Container ENTITYID NOT NULL, + objectid ENTITYID NOT NULL DEFAULT gen_random_uuid(), + + CONSTRAINT pk_clinical_observation_datasets PRIMARY KEY (rowId), + CONSTRAINT FK_clinical_observation_datasets_Container FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) +); + +CREATE TABLE snprc_ehr.validAccounts( + account VARCHAR(16) NOT NULL, + accountStatus VARCHAR(1) NOT NULL, + date TIMESTAMP NOT NULL, + endDate TIMESTAMP NULL, + description VARCHAR(100) NULL, + accountGroup VARCHAR(20) NOT NULL, + Container ENTITYID NOT NULL, + Created TIMESTAMP, + CreatedBy USERID, + Modified TIMESTAMP, + ModifiedBy USERID, + diCreated TIMESTAMP, + diModified TIMESTAMP, + diCreatedBy USERID, + diModifiedBy USERID, + objectid ENTITYID NOT NULL DEFAULT gen_random_uuid(), + + CONSTRAINT PK_VALID_ACCOUNTS PRIMARY KEY (account) +); + +CREATE UNIQUE INDEX idx_validAccounts_objectid ON snprc_ehr.validAccounts (objectid); + +CREATE TABLE snprc_ehr.labwork_services ( + RowId SERIAL NOT NULL, + ServiceName VARCHAR(100) NOT NULL, + ServiceId INT NOT NULL, + Dataset VARCHAR(100), + ChargeType VARCHAR(100), + CollectionMethod VARCHAR(500), + AlertOnComplete BOOLEAN, + Tissue VARCHAR(100), + OutsideLab BOOLEAN, + DateDisabled TIMESTAMP, + Method VARCHAR(100), + Active INT, + Bench VARCHAR(20), + ObjectId ENTITYID NOT NULL DEFAULT gen_random_uuid(), + Created TIMESTAMP NULL, + CreatedBy USERID NULL, + Modified TIMESTAMP NULL, + ModifiedBy USERID NULL, + DiCreated TIMESTAMP NULL, + DiModified TIMESTAMP NULL, + DiCreatedBy USERID NULL, + DiModifiedBy USERID NULL, + Container ENTITYID NOT NULL, + + CONSTRAINT PK_snprc_labwork_services PRIMARY KEY (ServiceId), + CONSTRAINT FK_snprc_labwork_services_container FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) +); + +CREATE UNIQUE INDEX idx_labwork_services_serviceId ON snprc_ehr.labwork_services(ServiceId); + +CREATE TABLE snprc_ehr.validInstitutions ( + institution_id INTEGER NOT NULL , + institution_name VARCHAR(200) NOT NULL, + short_name VARCHAR(20) NOT NULL, + city VARCHAR(50) NOT NULL, + state VARCHAR(20) NOT NULL, + affiliate VARCHAR(50) NULL, + web_site VARCHAR(200) NULL, + Created TIMESTAMP, + CreatedBy USERID, + Modified TIMESTAMP, + ModifiedBy USERID, + Container ENTITYID NOT NULL, + diCreated TIMESTAMP, + diModified TIMESTAMP, + diCreatedBy USERID, + diModifiedBy USERID, + objectid ENTITYID NOT NULL DEFAULT gen_random_uuid(), + + CONSTRAINT PK_snprc_valid_institutions PRIMARY KEY (institution_id), + CONSTRAINT FK_snprc_valid_institutions FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) +); + +CREATE UNIQUE INDEX idx_validInstitutions_objectid ON snprc_ehr.validInstitutions (objectid); + +CREATE TABLE snprc_ehr.validVets ( + vetId INTEGER NOT NULL, + displayName VARCHAR(128) NOT NULL , + emailAddress VARCHAR(128) NULL, + status VARCHAR(10) NOT NULL, + Created TIMESTAMP, + CreatedBy USERID, + Modified TIMESTAMP, + ModifiedBy USERID, + Container ENTITYID NOT NULL, + diCreated TIMESTAMP, + diModified TIMESTAMP, + diCreatedBy USERID, + diModifiedBy USERID, + objectid ENTITYID NOT NULL DEFAULT gen_random_uuid(), + + CONSTRAINT PK_snprc_validVets PRIMARY KEY (vetId), + CONSTRAINT FK_snprc_validVets FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) +); + +CREATE UNIQUE INDEX idx_validVets_objectid ON snprc_ehr.validVets (objectid); + +CREATE TABLE snprc_ehr.valid_bd_status ( + value INTEGER NOT NULL, + description VARCHAR(128) NOT NULL , + Created TIMESTAMP, + CreatedBy USERID, + Modified TIMESTAMP, + ModifiedBy USERID, + Container ENTITYID NOT NULL, + objectid ENTITYID NOT NULL DEFAULT gen_random_uuid(), + + CONSTRAINT PK_snprc_valid_bd_status PRIMARY KEY (value), + CONSTRAINT FK_snprc_valid_bd_status FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) +); + +CREATE UNIQUE INDEX idx_valid_bd_status_objectid ON snprc_ehr.valid_bd_status (objectid); + +CREATE TABLE snprc_ehr.animal_group_categories( + category_code INT NOT NULL, + description VARCHAR(128) NULL, + comment VARCHAR(128) NULL, + displayable CHAR(1) NOT NULL, + species CHAR(2) NULL, + sex CHAR(1) NULL, + enforce_exclusivity CHAR(1) NOT NULL, + allow_future_date CHAR(1) NOT NULL, + sort_order INT NULL, + Created TIMESTAMP, + CreatedBy USERID, + Modified TIMESTAMP, + ModifiedBy USERID, + diCreated TIMESTAMP, + diModified TIMESTAMP, + diCreatedBy USERID, + diModifiedBy USERID, + Container ENTITYID NOT NULL, + objectid ENTITYID NOT NULL DEFAULT gen_random_uuid(), + + CONSTRAINT PK_animal_group_categories PRIMARY KEY (category_code), + CONSTRAINT FK_animal_group_categories FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) +); + +CREATE UNIQUE INDEX idx_animal_group_categories_objectid ON snprc_ehr.animal_group_categories (objectid); + +CREATE TABLE snprc_ehr.animal_groups( + code INT NOT NULL, + category_code INT NOT NULL, + name VARCHAR(128) NOT NULL, -- Renamed from description + date DATE NOT NULL, + enddate DATE NULL, + comment TEXT NULL, + sort_order INT NULL, + Created TIMESTAMP, + CreatedBy USERID, + Modified TIMESTAMP, + ModifiedBy USERID, + diCreated TIMESTAMP, + diModified TIMESTAMP, + diCreatedBy USERID, + diModifiedBy USERID, + Container ENTITYID NOT NULL, + objectid ENTITYID NOT NULL DEFAULT gen_random_uuid(), + + CONSTRAINT PK_snprc_animal_groups PRIMARY KEY (code, category_code), + CONSTRAINT FK_snprc_animal_groups FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) +); + +CREATE UNIQUE INDEX idx_animal_groups_objectid ON snprc_ehr.animal_groups (objectid); +CREATE UNIQUE INDEX idx_animal_groups_code ON snprc_ehr.animal_groups (code); + +CREATE TABLE snprc_ehr.labwork_types ( + RowId SERIAL NOT NULL, + ServiceType VARCHAR(100) NOT NULL, + ObjectId ENTITYID NOT NULL DEFAULT gen_random_uuid(), + Created TIMESTAMP NULL, + CreatedBy USERID NULL, + Modified TIMESTAMP NULL, + ModifiedBy USERID NULL, + DiCreated TIMESTAMP NULL, + DiModified TIMESTAMP NULL, + DiCreatedBy USERID NULL, + DiModifiedBy USERID NULL, + Container ENTITYID NOT NULL, + + CONSTRAINT PK_snprc_labwork_types PRIMARY KEY (ServiceType), + CONSTRAINT FK_snprc_labwork_types_container FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) +); + +ALTER TABLE snprc_ehr.labwork_services ADD CONSTRAINT FK_snprc_labwork_panels_dataset FOREIGN KEY(Dataset) REFERENCES snprc_ehr.labwork_types (ServiceType); + +CREATE TABLE snprc_ehr.labwork_panels( + RowId SERIAL NOT NULL, + ServiceId INT NOT NULL, + TestId VARCHAR(100) NOT NULL, + TestName VARCHAR(100) NULL, + Units VARCHAR(100) NULL, + SortOrder INT NULL, + Aliases VARCHAR(1000) NULL, + AlertOnAbnormal BOOLEAN NULL, + AlertOnAny BOOLEAN NULL, + IncludeInPanel BOOLEAN NULL, + Created TIMESTAMP NULL, + CreatedBy USERID NULL, + Modified TIMESTAMP NULL, + ModifiedBy USERID NULL, + Container ENTITYID NOT NULL, + DiCreated TIMESTAMP NULL, + DiModified TIMESTAMP NULL, + DiCreatedBy USERID NULL, + DiModifiedBy USERID NULL, + ObjectId ENTITYID NOT NULL DEFAULT gen_random_uuid(), + CONSTRAINT PK_snprc_labwork_panels PRIMARY KEY (RowId) +); + +ALTER TABLE snprc_ehr.labwork_panels ADD CONSTRAINT FK_snprc_labwork_panels_container FOREIGN KEY(Container) REFERENCES core.Containers (EntityId); +ALTER TABLE snprc_ehr.labwork_panels ADD CONSTRAINT FK_snprc_labwork_panels_services FOREIGN KEY(ServiceId) REFERENCES snprc_ehr.labwork_services (ServiceId); + +CREATE TABLE snprc_ehr.MhcData( + Id VARCHAR(32) NOT NULL, + Haplotype VARCHAR(128) NOT NULL, + RowId BIGSERIAL NOT NULL, + OcId VARCHAR(128) NULL, + MhcValue VARCHAR(128) NULL, + DataFileSource VARCHAR(4000) NULL, + ObjectId ENTITYID NOT NULL DEFAULT gen_random_uuid(), + Created TIMESTAMP NULL, + CreatedBy USERID NULL, + Modified TIMESTAMP NULL, + ModifiedBy USERID NULL, + DiCreated TIMESTAMP NULL, + DiModified TIMESTAMP NULL, + DiCreatedBy USERID NULL, + DiModifiedBy USERID NULL, + Container ENTITYID NOT NULL, + + CONSTRAINT PK_snprc_MhcData PRIMARY KEY (RowId), + CONSTRAINT FK_snprc_MhcData_container FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) +); + +ALTER TABLE snprc_ehr.MhcData ADD CONSTRAINT AK_ID_Haplotype UNIQUE (Id, Haplotype); + +CREATE TABLE snprc_ehr.ValidChargeBySpecies( + Project INTEGER NOT NULL, + Species VARCHAR(2) NOT NULL, + Purpose VARCHAR(2) NOT NULL, + ObjectId ENTITYID NOT NULL DEFAULT gen_random_uuid(), + Created TIMESTAMP NULL, + CreatedBy USERID NULL, + Modified TIMESTAMP NULL, + ModifiedBy USERID NULL, + DiCreated TIMESTAMP NULL, + DiModified TIMESTAMP NULL, + DiCreatedBy USERID NULL, + DiModifiedBy USERID NULL, + Container ENTITYID NOT NULL, + startDate TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + stopDate TIMESTAMP, + + CONSTRAINT PK_snprc_ValidChargeBySpecies PRIMARY KEY (Project, Species), + CONSTRAINT FK_snprc_ValidChargeBySpecies_container FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) +); + +CREATE TABLE snprc_ehr.FeeSchedule( + RowId BIGSERIAL NOT NULL, + StartingYear INTEGER NOT NULL, + VersionLabel VARCHAR(128) NOT NULL, + ActivityId INTEGER NOT NULL, + Species VARCHAR(128) NOT NULL, + Description VARCHAR(256) NOT NULL, + BudgetYear VARCHAR(256) NOT NULL, + Cost NUMERIC (9,2) NOT NULL, + FileName VARCHAR(256) NOT NULL, + ObjectId ENTITYID NOT NULL DEFAULT gen_random_uuid(), + Created TIMESTAMP NULL, + CreatedBy USERID NULL, + Modified TIMESTAMP NULL, + ModifiedBy USERID NULL, + Container ENTITYID NOT NULL, + + CONSTRAINT PK_snprc_fee_schedule PRIMARY KEY (RowId), + CONSTRAINT FK_snprc_fee_Schedule_container FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) +); + +CREATE UNIQUE INDEX idx_snprc_fee_schedule_objectid ON snprc_ehr.feeSchedule (objectid); +CREATE UNIQUE INDEX idx_snprc_fee_schedule_activityId_budgetYear ON snprc_ehr.FeeSchedule (StartingYear, VersionLabel, ActivityId, BudgetYear); + +CREATE TABLE snprc_ehr.FeeScheduleSpeciesLookup ( + FsSpecies VARCHAR(128) NOT NULL, + SpeciesCode VARCHAR(2) NOT NULL, + ObjectId ENTITYID NOT NULL DEFAULT gen_random_uuid(), + Created TIMESTAMP NULL, + CreatedBy USERID NULL, + Modified TIMESTAMP NULL, + ModifiedBy USERID NULL, + Container ENTITYID NOT NULL, + + CONSTRAINT PK_FeeScheduleSpeciesLookup PRIMARY KEY (FsSpecies, SpeciesCode), + CONSTRAINT FK_FeeScheduleSpeciesLookup_container FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) +); + +CREATE TABLE snprc_ehr.LocationTemperature( + Room VARCHAR(100) NOT NULL, + Date TIMESTAMP NOT NULL, + LowTemperature NUMERIC(6, 2) NULL, + HighTemperature NUMERIC(6, 2) NULL, + Notify VARCHAR(18) NULL, + Created TIMESTAMP NULL, + CreatedBy USERID NULL, + Modified TIMESTAMP NULL, + ModifiedBy USERID NULL, + diCreated TIMESTAMP NULL, + diModified TIMESTAMP NULL, + diCreatedBy USERID NULL, + diModifiedBy USERID NULL, + Container ENTITYID NOT NULL, + objectid ENTITYID NOT NULL DEFAULT gen_random_uuid(), + + CONSTRAINT PK_LocationTemperature PRIMARY KEY (Room, Date), + CONSTRAINT FK_snprc_LocationTemperature_container FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) +); + +CREATE UNIQUE INDEX idx_snprc_LocationTemperature_objectid ON snprc_ehr.LocationTemperature (ObjectId); +CREATE INDEX idx_snprc_LocationTemperature_Date ON snprc_ehr.LocationTemperature (Date, Room); + +CREATE TABLE snprc_ehr.ValidDiet( + Diet VARCHAR(20) NOT NULL, + ArcSpeciesCode VARCHAR(2) NULL, + StartDate TIMESTAMP NOT NULL, + StopDate TIMESTAMP NULL, + SnomedCode VARCHAR(7) NULL, + DietCode INTEGER NOT NULL, -- Renamed from DietId + Created TIMESTAMP, + CreatedBy USERID, + Modified TIMESTAMP, + ModifiedBy USERID, + diCreated TIMESTAMP NULL, + diModified TIMESTAMP NULL, + diCreatedBy USERID NULL, + diModifiedBy USERID NULL, + Container ENTITYID NOT NULL, + objectid ENTITYID NOT NULL DEFAULT gen_random_uuid(), + + CONSTRAINT PK_ValidDiet PRIMARY KEY (Diet) -- Changed primary key +); + +CREATE UNIQUE INDEX idx_ValidDiet_SnomedCode_StartStopDate ON snprc_ehr.ValidDiet(SnomedCode, StartDate, StopDate); + +CREATE TABLE snprc_ehr.ValidDXGroup +( + DXGroup VARCHAR(30) NOT NULL, + Created TIMESTAMP, + CreatedBy USERID, + Modified TIMESTAMP, + ModifiedBy USERID, + diCreated TIMESTAMP NULL, + diModified TIMESTAMP NULL, + diCreatedBy USERID NULL, + diModifiedBy USERID NULL, + Container ENTITYID NOT NULL, + objectid ENTITYID NOT NULL DEFAULT gen_random_uuid(), + + CONSTRAINT PK_ValidDXGroup PRIMARY KEY (DXGroup) +); + +CREATE TABLE snprc_ehr.ValidDXList +( + DXGroup VARCHAR(30) NOT NULL, + DX VARCHAR(30) NOT NULL, + Created TIMESTAMP, + CreatedBy USERID, + Modified TIMESTAMP, + ModifiedBy USERID, + diCreated TIMESTAMP NULL, + diModified TIMESTAMP NULL, + diCreatedBy USERID NULL, + diModifiedBy USERID NULL, + Container ENTITYID NOT NULL, + objectid ENTITYID NOT NULL DEFAULT gen_random_uuid(), + + CONSTRAINT PK_ValidDXList PRIMARY KEY (DXGroup, DX) +); + +CREATE TABLE snprc_ehr.ValidVaccines +( + Vaccine VARCHAR(128) NOT NULL, + Created TIMESTAMP, + CreatedBy USERID, + Modified TIMESTAMP, + ModifiedBy USERID, + diCreated TIMESTAMP NULL, + diModified TIMESTAMP NULL, + diCreatedBy USERID NULL, + diModifiedBy USERID NULL, + Container ENTITYID NOT NULL, + objectid ENTITYID NOT NULL DEFAULT gen_random_uuid(), + + CONSTRAINT PK_ValidVaccine PRIMARY KEY (Vaccine) +); + +CREATE TABLE snprc_ehr.NewAnimalData +( + Id VARCHAR(32) NOT NULL, + BirthDate TIMESTAMP NULL, + BirthCode INT NULL, + AcquisitionType INT NULL, + AcqDate TIMESTAMP NULL, + SourceInstitutionLocation VARCHAR(10) NULL, + Gender VARCHAR(10) NULL, + Sire VARCHAR(32) NULL, + Dam VARCHAR(32) NULL, + Species VARCHAR(3) NULL, + Colony INT NULL, + AnimalAccount VARCHAR(16) NULL, + OwnerInstitution INT NULL, + ResponsibleInstitution INT NULL, + Room INT NULL, + Cage INT NULL, + Diet VARCHAR(20) NULL, + Pedigree INT NULL, + IACUC VARCHAR(200) NULL, + Created TIMESTAMP NULL, + CreatedBy USERID NULL, + Modified TIMESTAMP NULL, + ModifiedBy USERID NULL, + Container ENTITYID NOT NULL, + objectid ENTITYID NOT NULL DEFAULT gen_random_uuid(), + + CONSTRAINT PK_snprc_NEWANIMALDATA PRIMARY KEY (Id) +); + +CREATE TABLE snprc_ehr.BehaviorNotificationComment +( + NotificationNumber INT NOT NULL, + NotificationDateTm TIMESTAMP NOT NULL, + BehaviorId INT NOT NULL, + NotificationStatus INT NOT NULL, + CaseNumber INT NULL, + NotificationComments VARCHAR(255) NULL, + SuspiciousBehavior CHAR(1) NOT NULL, + Sib CHAR(1) NOT NULL, + HousingType INT NULL, + Behavior VARCHAR(30) NOT NULL, + AbnormalFlag CHAR(1) NOT NULL, + BehaviorDescription VARCHAR(200) NOT NULL, + BehaviorCategory VARCHAR(40) NULL, + BehaviorComments VARCHAR(200) NULL, + Container ENTITYID NOT NULL, + Created TIMESTAMP NULL, + CreatedBy USERID NULL, + ModifiedBy USERID NULL, + Modified TIMESTAMP NULL, + DiCreatedBy USERID NULL, + DiCreated TIMESTAMP NULL, + DiModifiedBy USERID NULL, + DiModified TIMESTAMP NULL, + tid SERIAL NOT NULL, + objectid ENTITYID NULL DEFAULT gen_random_uuid(), + + CONSTRAINT PK_BehaviorNotiComment_oid PRIMARY KEY (tid) +); + +CREATE TABLE snprc_ehr.validDefaultIACUC +( + WorkingIacuc VARCHAR(7) NOT NULL, + ArcNumSeq INT NOT NULL, + ArcNumGenus VARCHAR(2) NOT NULL, + Mandatory VARCHAR(1) NULL, + DefaultIacuc VARCHAR(1) NULL, + Container ENTITYID NOT NULL, + Created TIMESTAMP NULL, + CreatedBy USERID NULL, + ModifiedBy USERID NULL, + Modified TIMESTAMP NULL, + DiCreatedBy USERID NULL, + DiCreated TIMESTAMP NULL, + DiModifiedBy USERID NULL, + DiModified TIMESTAMP NULL, + ObjectId ENTITYID NOT NULL DEFAULT gen_random_uuid(), + + CONSTRAINT PK_ValidDefaultIACUC PRIMARY KEY (WorkingIacuc) +); + +CREATE TABLE snprc_ehr.Counters +( + RowId SERIAL NOT NULL, + Name VARCHAR(255) NOT NULL, + Value INT NOT NULL, + Container ENTITYID NOT NULL, + ObjectId ENTITYID NOT NULL DEFAULT gen_random_uuid(), + CONSTRAINT PK_snprc_Counters PRIMARY KEY (RowId), + CONSTRAINT FK_Counters_Container FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) +); + +CREATE UNIQUE INDEX idx_snprc_container_NameValue ON snprc_ehr.Counters (Container, Name, Value); + +CREATE TABLE snprc_ehr.IacucAssignmentStats +( + ThreeYearPeriod INT NOT NULL, + WorkingIacuc VARCHAR(50) NOT NULL, + ArcNumSeq INT NOT NULL, + arcNumGenus VARCHAR(50) NOT NULL, + FirstAmendment INT NOT NULL, + LastAmendment INT NOT NULL, + StartDate TIMESTAMP NOT NULL, + EndDate TIMESTAMP NULL, + NumAnimalsAllowed INT NOT NULL, + NumAnimalsAssigned INT NOT NULL, + diCreated TIMESTAMP, + diModified TIMESTAMP, + diCreatedBy USERID, + diModifiedBy USERID, + Container ENTITYID NOT NULL, + + CONSTRAINT PK_IacucAssignmentStats PRIMARY KEY ( WorkingIacuc, ThreeYearPeriod ), + CONSTRAINT FK_IacucAssignmentsStats_container FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) +); + +CREATE TABLE snprc_ehr.ExternalReports +( + Id SERIAL NOT NULL, + SortOrder INT NULL, + Label VARCHAR(64) NOT NULL, + Report VARCHAR(400) NOT NULL, + Description VARCHAR(4000) NOT NULL, + Parameters VARCHAR(4000) NULL, + rsParameters VARCHAR(4000) NULL, + Created TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + Modified TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + CreatedBy USERID, + ModifiedBy USERID, + + CONSTRAINT PK_ExternalReports PRIMARY KEY ( Id ) +); + +CREATE TABLE snprc_ehr.HL7_IMPORT_LOG ( + TID NUMERIC(18, 0) GENERATED BY DEFAULT AS IDENTITY NOT NULL, + MESSAGE_ID VARCHAR(50) NOT NULL, + OBSERVATION_DATE_TM TIMESTAMP NULL, + MESSAGE_CONTROL_ID VARCHAR(50) NULL, + IMPORT_STATUS INT NOT NULL, + RESULT_STATUS VARCHAR(10) NULL, + PATIENT_ID VARCHAR(20) NULL, + SPECIES VARCHAR(50) NULL, + HL7_MESSAGE_TEXT TEXT NULL, + IMPORT_TEXT TEXT NULL, + Container ENTITYID NOT NULL, + OBJECT_ID ENTITYID NOT NULL DEFAULT gen_random_uuid(), + USER_NAME VARCHAR(128) NOT NULL DEFAULT CURRENT_USER, + ENTRY_DATE_TM TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + TIMESTAMP BYTEA NULL, -- SQL Server ROWVERSION mapped to BYTEA + CONSTRAINT PK_HL7_IMPORT_LOG PRIMARY KEY (TID), + CONSTRAINT CKC_HL7_IMPORT_LOG_OBSERVATION_DATE CHECK ((OBSERVATION_DATE_TM IS NULL OR OBSERVATION_DATE_TM <= CURRENT_TIMESTAMP)) +); + +ALTER TABLE snprc_ehr.HL7_IMPORT_LOG ADD CONSTRAINT FK_HL7_IMPORT_LOG_container FOREIGN KEY(Container) REFERENCES core.Containers (EntityId); + +CREATE TABLE snprc_ehr.HL7_OBX ( + MESSAGE_ID VARCHAR(50) NOT NULL, + IDX INT NOT NULL, + OBR_OBJECT_ID ENTITYID NOT NULL, + SET_ID VARCHAR(20) NOT NULL, + OBR_SET_ID VARCHAR(20) NOT NULL, + VALUE_TYPE VARCHAR(10) NULL, + TEST_ID VARCHAR(20) NULL, + TEST_NAME VARCHAR(50) NULL, + serviceTestId ENTITYID NULL, + QUALITATIVE_RESULT TEXT NULL, + RESULT TEXT NULL, + UNITS VARCHAR(20) NULL, + REFERENCE_RANGE VARCHAR(60) NULL, + ABNORMAL_FLAGS VARCHAR(10) NULL, + RESULT_STATUS VARCHAR(10) NULL, + Container ENTITYID NOT NULL, + OBJECT_ID ENTITYID NOT NULL DEFAULT gen_random_uuid(), + USER_NAME VARCHAR(128) NOT NULL DEFAULT CURRENT_USER, + ENTRY_DATE_TM TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + TIMESTAMP BYTEA NULL, -- SQL Server ROWVERSION mapped to BYTEA + CONSTRAINT PK_HL7_OBX PRIMARY KEY (OBJECT_ID) +); + +CREATE INDEX IDX_HL7_OBX_OBR_OBJ_ID ON snprc_ehr.HL7_OBX (OBR_OBJECT_ID); +ALTER TABLE snprc_ehr.HL7_OBX ADD CONSTRAINT FK_HL7_OBX_container FOREIGN KEY(Container) REFERENCES core.Containers (EntityId); + +CREATE TABLE snprc_ehr.HL7_NTE ( + MESSAGE_ID VARCHAR(50) NOT NULL, + IDX INT NOT NULL, + OBR_OBJECT_ID ENTITYID NOT NULL, + SET_ID VARCHAR(20) NOT NULL, + OBR_SET_ID VARCHAR(20) NOT NULL, + COMMENT TEXT NULL, + Container ENTITYID NOT NULL, + OBJECT_ID ENTITYID NOT NULL DEFAULT gen_random_uuid(), + USER_NAME VARCHAR(128) NOT NULL DEFAULT CURRENT_USER, + ENTRY_DATE_TM TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + TIMESTAMP BYTEA NULL, -- SQL Server ROWVERSION mapped to BYTEA + CONSTRAINT PK_HL7_NTE PRIMARY KEY (OBJECT_ID) +); + +ALTER TABLE snprc_ehr.HL7_NTE ADD CONSTRAINT FK_HL7_NTE_container FOREIGN KEY(Container) REFERENCES core.Containers (EntityId); +CREATE INDEX IDX_HL7_NTE_OBR_OBJ_ID ON snprc_ehr.HL7_NTE (OBR_OBJECT_ID); + +CREATE TABLE snprc_ehr.HL7_OBR ( + MESSAGE_ID VARCHAR(50) NOT NULL, + MESSAGE_CONTROL_ID VARCHAR(50) NOT NULL, + IDX INT NOT NULL, + ANIMAL_ID VARCHAR(6) NOT NULL, + VERIFIED_DATE_TM TIMESTAMP NULL, + REQUESTED_DATE_TM TIMESTAMP NULL, + OBSERVATION_DATE_TM TIMESTAMP NULL, + SPECIMEN_RECEIVED_DATE_TM TIMESTAMP NULL, + PV1_VISIT_NUM VARCHAR(50) NULL, + SET_ID VARCHAR(20) NOT NULL, + SPECIMEN_NUM VARCHAR(50) NULL, + PROCEDURE_ID VARCHAR(20) NULL, + PROCEDURE_NAME VARCHAR(200) NULL, + PRIORITY VARCHAR(10) NULL, + RESULT_STATUS VARCHAR(10) NULL, + TECHNICIAN_FIRST_NAME VARCHAR(50) NULL, + TECHNICIAN_LAST_NAME VARCHAR(50) NULL, + CHARGE_ID INT NULL, + Container ENTITYID NOT NULL, + OBJECT_ID ENTITYID NOT NULL DEFAULT gen_random_uuid(), + USER_NAME VARCHAR(128) NOT NULL DEFAULT CURRENT_USER, + ENTRY_DATE_TM TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + TIMESTAMP BYTEA NULL, -- SQL Server ROWVERSION mapped to BYTEA + CONSTRAINT PK_HL7_OBR PRIMARY KEY (OBJECT_ID), + CONSTRAINT CKC_ENTRY_DATE_TM_HL7_OBR_OBR CHECK ((ENTRY_DATE_TM <= CURRENT_TIMESTAMP)) +); + +CREATE INDEX IDX_HL7_OBR_ID_DATE ON snprc_ehr.HL7_OBR (ANIMAL_ID, OBSERVATION_DATE_TM); +ALTER TABLE snprc_ehr.HL7_OBR ADD CONSTRAINT FK_HL7_OBR_container FOREIGN KEY(Container) REFERENCES core.Containers (EntityId); +ALTER TABLE snprc_ehr.HL7_OBX ADD CONSTRAINT FK_OBX_REF_OBR FOREIGN KEY(OBR_OBJECT_ID) REFERENCES snprc_ehr.HL7_OBR (OBJECT_ID); +ALTER TABLE snprc_ehr.HL7_NTE ADD CONSTRAINT FK_NTE_REF_OBR FOREIGN KEY(OBR_OBJECT_ID) REFERENCES snprc_ehr.HL7_OBR (OBJECT_ID); + +CREATE TABLE snprc_ehr.HL7_PID ( + MESSAGE_ID VARCHAR(50) NOT NULL, + IDX INT NOT NULL, + SET_ID VARCHAR(20) NULL, + PATIENT_ID_EXTERNAL VARCHAR(20) NULL, + PATIENT_ID_INTERNAL VARCHAR(20) NULL, + BIRTHDATE TIMESTAMP NULL, + SEX VARCHAR(20) NULL, + BREED VARCHAR(50) NULL, + SPECIES VARCHAR(50) NULL, + ACCOUNT_NUMBER VARCHAR(50) NULL, + DEATH_DATE VARCHAR(50) NULL, + Container ENTITYID NOT NULL, + OBJECT_ID ENTITYID NOT NULL DEFAULT gen_random_uuid(), + USER_NAME VARCHAR(128) NOT NULL DEFAULT CURRENT_USER, + ENTRY_DATE_TM TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + TIMESTAMP BYTEA NULL, -- SQL Server ROWVERSION mapped to BYTEA + CONSTRAINT PK_HL7_PID PRIMARY KEY (MESSAGE_ID, IDX) +); + +CREATE INDEX IDX_HL7_PID_ID ON snprc_ehr.HL7_PID (PATIENT_ID_EXTERNAL); +ALTER TABLE snprc_ehr.HL7_PID ADD CONSTRAINT FK_HL7_PID_container FOREIGN KEY(Container) REFERENCES core.Containers (EntityId); + +CREATE TABLE snprc_ehr.HL7_PV1 ( + MESSAGE_ID VARCHAR(50) NOT NULL, + IDX INT NOT NULL, + SET_ID VARCHAR(20) NULL, + ADMISSION_TYPE VARCHAR(20) NULL, + ATTENDING_DOCTOR_LAST VARCHAR(50) NULL, + ATTENDING_DOCTOR_FIRST VARCHAR(50) NULL, + VISIT_NUMBER VARCHAR(20) NULL, + CHARGE_NUMBER VARCHAR(20) NULL, + ADMIT_DATE TIMESTAMP NULL, + Container ENTITYID NOT NULL, + OBJECT_ID ENTITYID NOT NULL DEFAULT gen_random_uuid(), + USER_NAME VARCHAR(128) NOT NULL DEFAULT CURRENT_USER, + ENTRY_DATE_TM TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + TIMESTAMP BYTEA NULL, -- SQL Server ROWVERSION mapped to BYTEA + CONSTRAINT PK_HL7_PV1 PRIMARY KEY (MESSAGE_ID, IDX) +); + +ALTER TABLE snprc_ehr.HL7_PV1 ADD CONSTRAINT FK_HL7_PV1_container FOREIGN KEY(Container) REFERENCES core.Containers (EntityId); + +CREATE TABLE snprc_ehr.HL7_ORC ( + MESSAGE_ID VARCHAR(50) NOT NULL, + IDX INT NOT NULL, + ORDER_CONTROL_CODE VARCHAR(20) NULL, + FILLER_ORDER_NUMBER VARCHAR(22) NULL, + ENTERED_BY_LAST VARCHAR(50) NULL, + ENTERED_BY_FIRST VARCHAR(50) NULL, + VERIFIED_BY_LAST VARCHAR(50) NULL, + VERIFIED_BY_FIRST VARCHAR(50) NULL, + ORDER_PROVIDER_LAST VARCHAR(50) NULL, + ORDER_PROVIDER_FIRST VARCHAR(50) NULL, + CALLBACK_EMAIL VARCHAR(50) NULL, + ORDER_DATE TIMESTAMP NULL, + Container ENTITYID NOT NULL, + OBJECT_ID ENTITYID NOT NULL DEFAULT gen_random_uuid(), + USER_NAME VARCHAR(128) NOT NULL DEFAULT CURRENT_USER, + ENTRY_DATE_TM TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + TIMESTAMP BYTEA NULL, -- SQL Server ROWVERSION mapped to BYTEA + CONSTRAINT PK_HL7_ORC PRIMARY KEY (MESSAGE_ID, IDX) +); + +ALTER TABLE snprc_ehr.HL7_ORC ADD CONSTRAINT FK_HL7_ORC_container FOREIGN KEY(Container) REFERENCES core.Containers (EntityId); + +CREATE TABLE snprc_ehr.HL7_MSH ( + MESSAGE_ID VARCHAR(50) NOT NULL, + IDX INT NOT NULL, + SENDING_APPLICATION VARCHAR(50) NULL, + SENDING_FACILITY VARCHAR(50) NULL, + RECEIVING_APPLICATION VARCHAR(50) NULL, + RECEIVING_FACILITY VARCHAR(50) NULL, + MESSAGE_TYPE VARCHAR(50) NULL, + TRIGGER_EVENT_ID VARCHAR(50) NULL, + MESSAGE_CONTROL_ID VARCHAR(50) NULL, + MESSAGE_DATE_TM TIMESTAMP NULL, + Container ENTITYID NOT NULL, + OBJECT_ID ENTITYID NOT NULL DEFAULT gen_random_uuid(), + USER_NAME VARCHAR(128) NOT NULL DEFAULT CURRENT_USER, + ENTRY_DATE_TM TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + TIMESTAMP BYTEA NULL, -- SQL Server ROWVERSION mapped to BYTEA + CONSTRAINT PK_HL7_MSH PRIMARY KEY (MESSAGE_ID) +); + +ALTER TABLE snprc_ehr.HL7_MSH ADD CONSTRAINT FK_HL7_MSH_container FOREIGN KEY(Container) REFERENCES core.Containers (EntityId); +ALTER TABLE snprc_ehr.HL7_OBR ADD CONSTRAINT FK_OBR_REF_MSH FOREIGN KEY(MESSAGE_ID) REFERENCES snprc_ehr.HL7_MSH (MESSAGE_ID); +ALTER TABLE snprc_ehr.HL7_PID ADD CONSTRAINT FK_PID_REF_MSH FOREIGN KEY(MESSAGE_ID) REFERENCES snprc_ehr.HL7_MSH (MESSAGE_ID); +ALTER TABLE snprc_ehr.HL7_PV1 ADD CONSTRAINT FK_PV1_REF_MSH FOREIGN KEY(MESSAGE_ID) REFERENCES snprc_ehr.HL7_MSH (MESSAGE_ID); +ALTER TABLE snprc_ehr.HL7_ORC ADD CONSTRAINT FK_ORC_REF_MSH FOREIGN KEY(MESSAGE_ID) REFERENCES snprc_ehr.HL7_MSH (MESSAGE_ID); + +CREATE TABLE snprc_ehr.HL7_PathologyCasesStaging ( + ID VARCHAR(32) NOT NULL, + Date TIMESTAMP NOT NULL, + RowId BIGSERIAL NOT NULL, + AccessionNumber VARCHAR(10) NULL, + AccessionCode VARCHAR(4000) NULL, + Tissue VARCHAR(4000) NULL, + PerformedBy VARCHAR(64) NULL, + Description VARCHAR(4000) NULL, + Remark VARCHAR(4000) NULL, + ApathRecordStatus VARCHAR(1) NULL, + DeathType VARCHAR(1) NULL, + Created TIMESTAMP NULL, + CreatedBy USERID NULL, + Modified TIMESTAMP NULL, + ModifiedBy USERID NULL, + Container ENTITYID NOT NULL, + ObjectId ENTITYID NULL, + timestamp BYTEA, -- SQL Server ROWVERSION mapped to BYTEA + + CONSTRAINT PK_HL7_PathologyCasesStaging PRIMARY KEY (ID, Date) +); + +CREATE TABLE snprc_ehr.HL7_PathologyDiagnosesStaging ( + ID VARCHAR(32) NOT NULL, + Date TIMESTAMP NOT NULL, + AccessionNumber VARCHAR(40) NULL, + RowId BIGSERIAL NOT NULL, + Morphology VARCHAR(4000) NULL, + Organ VARCHAR(4000) NULL, + EtiologyCode VARCHAR(4000) NULL, + SpecificEtiology VARCHAR(4000) NULL, + PerformedBy VARCHAR(64) NULL, + Description VARCHAR(4000) NULL, + Remark VARCHAR(4000) NULL, + Created TIMESTAMP NULL, + CreatedBy USERID NULL, + Modified TIMESTAMP NULL, + ModifiedBy USERID NULL, + Container ENTITYID NOT NULL, + ObjectId ENTITYID NULL, + timestamp BYTEA, -- SQL Server ROWVERSION mapped to BYTEA + + CONSTRAINT PK_HL7_PathologyDiagnosesStaging PRIMARY KEY (RowId) +); + +CREATE TABLE snprc_ehr.HL7_DeletePathologyCasesStaging ( + AccessionNumber VARCHAR(10) NOT NULL, + ObjectId ENTITYID NOT NULL, + timestamp BYTEA, -- SQL Server ROWVERSION mapped to BYTEA + + CONSTRAINT PK_HL7_DeletePathologyCasesStaging PRIMARY KEY (AccessionNumber, ObjectId) +); + +CREATE TABLE snprc_ehr.HL7_DeletePathologyDiagnosesStaging ( + AccessionNumber VARCHAR(10) NOT NULL, + ObjectId ENTITYID NOT NULL, + timestamp BYTEA, -- SQL Server ROWVERSION mapped to BYTEA + + CONSTRAINT PK_HL7_DeletePathologyDiagnosesStaging PRIMARY KEY (AccessionNumber, ObjectId) +); + +CREATE TABLE snprc_ehr.HL7_Demographics ( + ID VARCHAR(32) NOT NULL, + RowId BIGSERIAL NOT NULL, + Gender VARCHAR(32) NULL, + Species VARCHAR(32) NOT NULL, + Breed VARCHAR(40) NOT NULL, + BirthDate TIMESTAMP NULL, + DeathDate TIMESTAMP NULL, + isDeceased VARCHAR(32) NULL, + Dam VARCHAR(32) NULL, + Sire VARCHAR(32) Null, + ObjectId ENTITYID NULL, + Modified TIMESTAMP NULL, + ModifiedBy VARCHAR(32) NULL, + Container ENTITYID NOT NULL, + + CONSTRAINT PK_HL7_Demographics PRIMARY KEY (RowId) +); + +CREATE TABLE snprc_ehr.SndSuperPackageStaging +( + TopLevelPkgId INTEGER NOT NULL, + SuperPkgId INTEGER NOT NULL, + ParentSuperPkgId INTEGER NULL, + PkgId INTEGER NOT NULL, + TreePath TEXT NOT NULL, + SuperPkgPath TEXT NOT NULL, + SortOrder INTEGER NULL, + Required INTEGER NULL, + Description TEXT NOT NULL, + Narrative TEXT NOT NULL, + Active INTEGER NOT NULL, + Repeatable INTEGER NOT NULL, + Level INTEGER NOT NULL, + Created TIMESTAMP NOT NULL, + CreatedBy USERID NOT NULL, + Modified TIMESTAMP NOT NULL, + ModifiedBy USERID NOT NULL, + diModified TIMESTAMP NOT NULL, + ObjectId ENTITYID NOT NULL DEFAULT gen_random_uuid(), + + CONSTRAINT PK_SndSuperPackageStaging PRIMARY KEY ( TopLevelPkgId, SuperPkgId) +); + +CREATE TABLE snprc_ehr.SndPackageStaging +( + PkgId INTEGER NOT NULL, + Description VARCHAR(4000) NOT NULL, + Active BOOLEAN NOT NULL, + Repeatable BOOLEAN NOT NULL, + Narrative VARCHAR(4000) NOT NULL, + UsdaCode VARCHAR(4000) NOT NULL, + CreatedBy USERID NOT NULL, + Created TIMESTAMP NOT NULL, + ModifiedBy USERID NOT NULL, + Modified TIMESTAMP NOT NULL, + diModified TIMESTAMP NOT NULL, + ObjectId ENTITYID NOT NULL DEFAULT gen_random_uuid(), + + CONSTRAINT PK_SndPackageStaging PRIMARY KEY (PkgId) +); + +CREATE TABLE snprc_ehr.SndPackageAttributeStaging +( + PkgId INTEGER NOT NULL, + AttributeId INTEGER NOT NULL, + AttributeName VARCHAR(128) NOT NULL, + LookupSchema VARCHAR(128) NULL, + LookupQuery VARCHAR(128) NULL, + RangeURI TEXT NULL, + Label VARCHAR(128) NOT NULL, + ValidatorExpression VARCHAR(128) NULL, + SortOrder INT NULL, + Required BOOLEAN NULL, + DefaultValue TEXT NULL, + AlternateText TEXT NULL, + Created TIMESTAMP NOT NULL, + CreatedBy USERID NOT NULL, + Modified TIMESTAMP NOT NULL, + ModifiedBy USERID NOT NULL, + ObjectId ENTITYID NOT NULL DEFAULT gen_random_uuid(), + + CONSTRAINT pk_SndPackagesAttributeStaging PRIMARY KEY (AttributeId) +); + +CREATE TABLE snprc_ehr.therapy_formulary( + RowId INT NOT NULL, + drug VARCHAR(400) NOT NULL, + dose NUMERIC(8, 4) NOT NULL, + route INT NOT NULL, + frequency INT NOT NULL, + duration INT NOT NULL, + units INT NOT NULL, + isActive INT NULL, + dateDisabled TIMESTAMP NULL, + Container ENTITYID NOT NULL, + Created TIMESTAMP NULL, + CreatedBy USERID NULL, + Modified TIMESTAMP NULL, + ModifiedBy USERID NULL, + ObjectId ENTITYID NOT NULL DEFAULT gen_random_uuid(), + + CONSTRAINT PK_therapy_formulary PRIMARY KEY (RowId) +); + +ALTER TABLE snprc_ehr.therapy_formulary ADD CONSTRAINT FK_therapy_formulary_container FOREIGN KEY(Container) REFERENCES core.Containers (EntityId); + +CREATE TABLE snprc_ehr.therapy_frequency( + RowId INT NOT NULL, + frequency VARCHAR(30) NOT NULL, + description VARCHAR(100) NULL, + isActive INT NULL, + Container ENTITYID NOT NULL, + Created TIMESTAMP NULL, + CreatedBy USERID NULL, + Modified TIMESTAMP NULL, + ModifiedBy USERID NULL, + ObjectId ENTITYID NOT NULL DEFAULT gen_random_uuid(), + + CONSTRAINT PK_therapy_frequency PRIMARY KEY (RowId) +); + +ALTER TABLE snprc_ehr.therapy_frequency ADD CONSTRAINT FK_therapy_frequency FOREIGN KEY(Container) REFERENCES core.Containers (EntityId); + +CREATE TABLE snprc_ehr.therapy_routes( + RowId INT NOT NULL, + route VARCHAR(30) NOT NULL, + description VARCHAR(100) NULL, + isActive INT NULL, + Container ENTITYID NOT NULL, + Created TIMESTAMP NULL, + CreatedBy USERID NULL, + Modified TIMESTAMP NULL, + ModifiedBy USERID NULL, + ObjectId ENTITYID NULL DEFAULT gen_random_uuid(), + + CONSTRAINT PK_therapy_routes PRIMARY KEY (RowId) +); + +ALTER TABLE snprc_ehr.therapy_routes ADD CONSTRAINT FK_therapy_routes FOREIGN KEY(Container) REFERENCES core.Containers (EntityId); + +CREATE TABLE snprc_ehr.therapy_units( + RowId INT NOT NULL, + units VARCHAR(30) NOT NULL, + description VARCHAR(100), + isActive INT NULL, + Container ENTITYID NOT NULL, + Created TIMESTAMP NULL, + CreatedBy USERID NULL, + Modified TIMESTAMP NULL, + ModifiedBy USERID NULL, + ObjectId ENTITYID NULL DEFAULT gen_random_uuid(), + + CONSTRAINT PK_therapy_units PRIMARY KEY (RowId) +); + +ALTER TABLE snprc_ehr.therapy_units ADD CONSTRAINT FK_therapy_units FOREIGN KEY(Container) REFERENCES core.Containers (EntityId); + +CREATE TABLE snprc_ehr.therapy_resolutions +( + RowId INT NOT NULL, + resolution VARCHAR(30) NOT NULL, + isActive INT NULL, + Container ENTITYID NOT NULL, + Created TIMESTAMP NULL, + CreatedBy USERID NULL, + Modified TIMESTAMP NULL, + ModifiedBy USERID NULL, + ObjectId ENTITYID NULL DEFAULT gen_random_uuid(), + + CONSTRAINT PK_therapy_resolutions PRIMARY KEY (RowId) +); + +ALTER TABLE snprc_ehr.therapy_resolutions ADD CONSTRAINT FK_therapy_resolutions FOREIGN KEY(Container) REFERENCES core.Containers (EntityId); + +/* Function to emulate T-SQL logic for checking specific numeric formatting */ +CREATE OR REPLACE FUNCTION snprc_ehr.f_isNumeric(value TEXT) +RETURNS INT AS $$ +DECLARE + trimmed_value TEXT; +BEGIN + IF value IS NULL THEN + RETURN 0; + END IF; + + trimmed_value := TRIM(value); + + -- Check if it is a valid numeric using Regex + -- This regex matches optional sign, digits, optional dot, optional digits + IF trimmed_value ~ '^[-+]?[0-9]*\.?[0-9]+$' THEN + + -- Apply the specific logic from T-SQL script: + -- 1. If length is 1 and it contains '+' (Regex handles this mostly, but ensures '+5' is valid while '+' is not) + -- 2. If length is 1 and it contains '-' (Same) + -- 3. If contains ',' + -- 4. If '-' is not at the start + + -- The T-SQL logic specifically forbade comma, and signs in the middle + IF (LENGTH(trimmed_value) = 1 AND trimmed_value = '+') + OR (LENGTH(trimmed_value) = 1 AND trimmed_value = '-') + OR (POSITION(',' IN trimmed_value) > 0) + OR (POSITION('-' IN trimmed_value) > 1) + THEN + RETURN 0; + END IF; + + RETURN 1; + END IF; + + RETURN 0; +END; +$$ LANGUAGE plpgsql; diff --git a/snprc_ehr/resources/schemas/dbscripts/postgresql/snprc_ehr-25.000-25.001.sql b/snprc_ehr/resources/schemas/dbscripts/postgresql/snprc_ehr-25.000-25.001.sql new file mode 100644 index 000000000..f11048be7 --- /dev/null +++ b/snprc_ehr/resources/schemas/dbscripts/postgresql/snprc_ehr-25.000-25.001.sql @@ -0,0 +1,26 @@ +DROP TABLE IF EXISTS snprc_ehr.SndSuperPackageStaging; + +CREATE TABLE snprc_ehr.SndSuperPackageStaging +( + TopLevelPkgId INTEGER NOT NULL, + SuperPkgId INTEGER NOT NULL, + ParentSuperPkgId INTEGER NULL, + PkgId INTEGER NOT NULL, + TreePath VARCHAR(800) NOT NULL, + SuperPkgPath TEXT NOT NULL, + SortOrder INTEGER NULL, + Required INTEGER NULL, + Description TEXT NOT NULL, + Narrative TEXT NOT NULL, + Active INTEGER NOT NULL, + Repeatable INTEGER NOT NULL, + Level INTEGER NOT NULL, + Created TIMESTAMP NOT NULL, + CreatedBy INTEGER NOT NULL, + Modified TIMESTAMP NOT NULL, + ModifiedBy INTEGER NOT NULL, + diModified TIMESTAMP NOT NULL, + ObjectId ENTITYID NOT NULL, + + CONSTRAINT PK_SndSuperPackageStaging PRIMARY KEY (TopLevelPkgId, SuperPkgId, TreePath) +); diff --git a/snprc_ehr/resources/schemas/dbscripts/sqlserver/snprc_ehr-0.000-25.000.sql b/snprc_ehr/resources/schemas/dbscripts/sqlserver/snprc_ehr-0.000-25.000.sql index 7a0af5bd2..06d7d6e27 100644 --- a/snprc_ehr/resources/schemas/dbscripts/sqlserver/snprc_ehr-0.000-25.000.sql +++ b/snprc_ehr/resources/schemas/dbscripts/sqlserver/snprc_ehr-0.000-25.000.sql @@ -1,19 +1,3 @@ -/* - * Copyright (c) 2018-2019 LabKey Corporation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - CREATE SCHEMA snprc_ehr; GO @@ -21,27 +5,58 @@ CREATE TABLE snprc_ehr.package ( id int not null, name NVARCHAR(100), description NVARCHAR(MAX), - Container entityId NOT NULL, + Container entityId NOT NULL, + Created DATETIME, + CreatedBy USERID, + Modified DATETIME, + ModifiedBy USERID, + diCreated DATETIME, + diModified DATETIME, + diCreatedBy USERID, + diModifiedBy USERID, + objectid uniqueidentifier not null default newid(), + pkgType NVARCHAR(1) not null default 'U', CONSTRAINT PK_packages PRIMARY KEY (id), CONSTRAINT FK_packages_Container FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) ); +CREATE UNIQUE INDEX idx_package_objectid ON snprc_ehr.package (objectid); + CREATE TABLE snprc_ehr.package_category ( id int not null, - name NVARCHAR(100), description NVARCHAR(MAX), - Container entityId NOT NULL, + Container entityId NOT NULL, + Created DATETIME, + CreatedBy USERID, + Modified DATETIME, + ModifiedBy USERID, + diCreated DATETIME, + diModified DATETIME, + diCreatedBy USERID, + diModifiedBy USERID, + objectid uniqueidentifier not null default newid(), CONSTRAINT PK_package_categories PRIMARY KEY (id), CONSTRAINT FK_package_categories_Container FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) ); GO +CREATE UNIQUE INDEX idx_package_category_objectid ON snprc_ehr.package_category (objectid); + CREATE TABLE snprc_ehr.package_category_junction ( rowId int not null, packageId int not null, categoryId int not null, + Created DATETIME, + CreatedBy USERID, + Modified DATETIME, + ModifiedBy USERID, + diCreated DATETIME, + diModified DATETIME, + diCreatedBy USERID, + diModifiedBy USERID, + objectid uniqueidentifier not null default newid(), CONSTRAINT PK_package_category_junction PRIMARY KEY (rowId), CONSTRAINT FK_package_category_junction_packageId FOREIGN KEY (packageId) REFERENCES snprc_ehr.package(id), @@ -50,528 +65,234 @@ CREATE TABLE snprc_ehr.package_category_junction ( GO CREATE UNIQUE INDEX IDX_package_category_junction ON snprc_ehr.package_category_junction(categoryId, packageId); - -ALTER TABLE snprc_ehr.package_category DROP COLUMN name; - -ALTER TABLE snprc_ehr.package ADD Created DATETIME; -ALTER TABLE snprc_ehr.package ADD CreatedBy USERID; -ALTER TABLE snprc_ehr.package ADD Modified DATETIME; -ALTER TABLE snprc_ehr.package ADD ModifiedBy USERID; - -ALTER TABLE snprc_ehr.package_category ADD Created DATETIME; -ALTER TABLE snprc_ehr.package_category ADD CreatedBy USERID; -ALTER TABLE snprc_ehr.package_category ADD Modified DATETIME; -ALTER TABLE snprc_ehr.package_category ADD ModifiedBy USERID; - -ALTER TABLE snprc_ehr.package_category_junction ADD Created DATETIME; -ALTER TABLE snprc_ehr.package_category_junction ADD CreatedBy USERID; -ALTER TABLE snprc_ehr.package_category_junction ADD Modified DATETIME; -ALTER TABLE snprc_ehr.package_category_junction ADD ModifiedBy USERID; - -ALTER TABLE snprc_ehr.package ADD objectid nvarchar(4000); - -ALTER TABLE snprc_ehr.package_category ADD objectid nvarchar(4000); - -ALTER TABLE snprc_ehr.package_category_junction ADD objectid nvarchar(4000); - -GO - -CREATE PROCEDURE snprc_ehr.handleUpgrade AS - BEGIN - IF NOT EXISTS(SELECT column_name - FROM information_schema.columns - WHERE table_name='package' and table_schema='snprc_ehr' and column_name='objectid') - BEGIN - -- Run variants of scripts from trunk - - ALTER TABLE snprc_ehr.package ADD objectid nvarchar(4000); - ALTER TABLE snprc_ehr.package_category ADD objectid nvarchar(4000); - ALTER TABLE snprc_ehr.package_category_junction ADD objectid nvarchar(4000); - END - END; - -GO - -EXEC snprc_ehr.handleUpgrade -GO - -DROP PROCEDURE snprc_ehr.handleUpgrade -GO - --- Alters existing ehr_lookups.species table to include additional SNPRC species code columns columns needed --- for ETLs (objectid) - -CREATE PROCEDURE snprc_ehr.handleUpgrade AS - BEGIN - IF NOT EXISTS(SELECT column_name - FROM information_schema.columns - WHERE table_name='species' and table_schema='ehr_lookups' and column_name='objectid') - BEGIN - -- Run variants of scripts from trunk - - ALTER TABLE ehr_lookups.species ADD species_code nvarchar(3); - ALTER TABLE ehr_lookups.species ADD arc_species_code nvarchar(3); - --ALTER TABLE ehr_lookups.species ADD arc_common_name nvarchar(255); - --ALTER TABLE ehr_lookups.species ADD arc_scientific_name nvarchar(255); - ALTER TABLE ehr_lookups.species ADD objectid nvarchar(4000); - ALTER TABLE ehr_lookups.species ADD tid int; - END - END; - -GO - -EXEC snprc_ehr.handleUpgrade -GO - -DROP PROCEDURE snprc_ehr.handleUpgrade -GO - --- Use custom SNPRC species table instead of ehr_lookups.species - -ALTER TABLE ehr_lookups.species DROP COLUMN species_code; -ALTER TABLE ehr_lookups.species DROP COLUMN arc_species_code; -ALTER TABLE ehr_lookups.species DROP COLUMN objectid; -ALTER TABLE ehr_lookups.species DROP COLUMN tid; +CREATE UNIQUE INDEX idx_package_category_junction_objectid ON snprc_ehr.package_category_junction (objectid); CREATE TABLE snprc_ehr.species ( - common NVARCHAR(255) NOT NULL, - scientific_name NVARCHAR(255), - id_prefix NVARCHAR(255), - mhc_prefix NVARCHAR(255), - blood_per_kg FLOAT, - max_draw_pct FLOAT, - blood_draw_interval FLOAT, - dateDisabled DATETIME NULL, - cites_code NVARCHAR(200), - species_code NVARCHAR(3), - arc_species_code NVARCHAR(3), - objectid NVARCHAR(4000), - tid INT, - CONSTRAINT pk_species PRIMARY KEY (common ) -); - --- change primary key to species_code column + common NVARCHAR(255) NOT NULL, + scientific_name NVARCHAR(255), + id_prefix NVARCHAR(255), + mhc_prefix NVARCHAR(255), + blood_per_kg FLOAT, + max_draw_pct FLOAT, + blood_draw_interval FLOAT, + dateDisabled DATETIME NULL, + cites_code NVARCHAR(200), + species_code NVARCHAR(3) NOT NULL, + arc_species_code NVARCHAR(3) NOT NULL, + tid INT, + diCreated DATETIME, + diModified DATETIME, + diCreatedBy USERID, + diModifiedBy USERID, + primate VARCHAR(1), + objectid uniqueidentifier not null default newid(), + Created DATETIME, + Modified DATETIME, + CreatedBy USERID, + ModifiedBy USERID, -TRUNCATE TABLE snprc_ehr.species + CONSTRAINT pk_species PRIMARY KEY (species_code) +); -ALTER TABLE snprc_ehr.species ALTER COLUMN species_code NVARCHAR(3) NOT NULL -ALTER TABLE snprc_ehr.species ALTER COLUMN arc_species_code NVARCHAR(3) NOT NULL -ALTER TABLE snprc_ehr.species DROP CONSTRAINT pk_species -ALTER TABLE snprc_ehr.species ADD CONSTRAINT pk_species PRIMARY KEY (species_code) +CREATE UNIQUE INDEX idx_species_objectid ON snprc_ehr.species (objectid); CREATE TABLE snprc_ehr.clinical_observation_datasets ( - rowId Int NOT NULL, - dataset_name NVARCHAR(255) NOT NULL, - category_name NVARCHAR(255) NOT NULL, - sort_order Int NULL, - Container entityId NOT NULL, + rowId Int NOT NULL, + dataset_name NVARCHAR(255) NOT NULL, + category_name NVARCHAR(255) NOT NULL, + sort_order Int NULL, + Container entityId NOT NULL, + objectid uniqueidentifier not null default newid(), CONSTRAINT pk_clinical_observation_datasets PRIMARY KEY (rowId), CONSTRAINT FK_clinical_observation_datasets_Container FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) - ); - +); GO CREATE TABLE snprc_ehr.validAccounts( - account varchar(16) NOT NULL, - accountStatus varchar(1) NOT NULL, - date DATETIME NOT NULL, - endDate DATETIME NULL, - description VARCHAR(100) NULL, - accountGroup VARCHAR(20) NOT NULL, - userName VARCHAR(128) NOT NULL, - entryDateTm DATETIME NOT NULL, - Container entityId NOT NULL, - Created DATETIME, + account varchar(16) NOT NULL, + accountStatus varchar(1) NOT NULL, + date DATETIME NOT NULL, + endDate DATETIME NULL, + description VARCHAR(100) NULL, + accountGroup VARCHAR(20) NOT NULL, + Container entityId NOT NULL, + Created DATETIME, CreatedBy USERID, Modified DATETIME, ModifiedBy USERID, - objectid NVARCHAR(4000) - - CONSTRAINT [PK_VALID_ACCOUNTS] PRIMARY KEY CLUSTERED ( account ASC ) + diCreated DATETIME, + diModified DATETIME, + diCreatedBy USERID, + diModifiedBy USERID, + objectid uniqueidentifier not null default newid(), + CONSTRAINT [PK_VALID_ACCOUNTS] PRIMARY KEY CLUSTERED (account ASC ) ); GO -CREATE TABLE snprc_ehr.lab_tests ( - rowid int identity(1,1), - type varchar(100), - testid varchar(100) NOT NULL, - name varchar(100), - units varchar(100), - aliases varchar(1000), - alertOnAbnormal bit, - alertOnAny bit, - includeInPanel bit, - sort_order int, - userName VARCHAR(128) NOT NULL, - entryDateTm DATETIME NOT NULL, - objectid nvarchar(4000), - Created DATETIME, - CreatedBy USERID, - Modified DATETIME, - ModifiedBy USERID, - Container entityId NOT NULL, +CREATE UNIQUE INDEX idx_validAccounts_objectid ON snprc_ehr.validAccounts (objectid); + +CREATE TABLE snprc_ehr.labwork_services ( + RowId [INT] IDENTITY(1,1) NOT NULL, + ServiceName varchar(100) NOT NULL, + ServiceId INT NOT NULL, + Dataset varchar(100), + ChargeType varchar(100), + CollectionMethod varchar(500), + AlertOnComplete bit, + Tissue varchar(100), + OutsideLab bit, + DateDisabled datetime, + Method varchar(100), + Active INT, + Bench varchar(20), + ObjectId uniqueidentifier NOT NULL DEFAULT NEWID(), + [Created] [DATETIME] NULL, + [CreatedBy] [dbo].[USERID] NULL, + [Modified] [DATETIME] NULL, + [ModifiedBy] [dbo].[USERID] NULL, + [DiCreated] [DATETIME] NULL, + [DiModified] [DATETIME] NULL, + [DiCreatedBy] [dbo].[USERID] NULL, + [DiModifiedBy] [dbo].[USERID] NULL, + Container entityId NOT NULL, - CONSTRAINT PK_snprc_lab_tests PRIMARY KEY (rowid), - CONSTRAINT FK_snprc_lab_tests FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) + CONSTRAINT PK_snprc_labwork_services PRIMARY KEY (ServiceId), + CONSTRAINT FK_snprc_labwork_services_container FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) ); GO -CREATE INDEX IDX_snprc_lab_tests_test_id ON snprc_ehr.lab_tests (testid); - +CREATE UNIQUE INDEX idx_labwork_services_serviceId ON [snprc_ehr].[labwork_services](ServiceId); GO - -CREATE TABLE snprc_ehr.labwork_services ( - servicename varchar(200) NOT NULL, - serviceid varchar(200) NOT NULL, - dataset varchar(200), - chargetype varchar(200), - collectionmethod varchar(500), - alertOnComplete bit, - tissue varchar(100), - outsidelab bit, - datedisabled datetime, - method varchar(100), - userName VARCHAR(128) NOT NULL, - entryDateTm DATETIME NOT NULL, - objectid nvarchar(4000), +CREATE TABLE snprc_ehr.validInstitutions ( + institution_id integer NOT NULL , + institution_name varchar(200) NOT NULL, + short_name varchar(20) NOT NULL, + city varchar(50) NOT NULL, + state varchar(20) NOT NULL, + affiliate varchar(50) NULL, + web_site varchar(200) NULL, Created DATETIME, CreatedBy USERID, Modified DATETIME, ModifiedBy USERID, - Container entityId NOT NULL, - - CONSTRAINT PK_snprc_labwork_services PRIMARY KEY (servicename), - CONSTRAINT FK_snprc_labwork_services FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) + Container entityId NOT NULL, + diCreated DATETIME, + diModified DATETIME, + diCreatedBy USERID, + diModifiedBy USERID, + objectid uniqueidentifier not null default newid(), + + CONSTRAINT PK_snprc_valid_institutions PRIMARY KEY (institution_id), + CONSTRAINT FK_snprc_valid_institutions FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) ); - GO -CREATE TABLE snprc_ehr.validInstitutions ( - institution_id integer NOT NULL , - institution_name varchar(200) NOT NULL, - short_name varchar(20) NOT NULL, - city varchar(50) NOT NULL, - state varchar(20) NOT NULL, - affiliate varchar(50) NULL, - web_site varchar(200) NULL, - objectid nvarchar(4000) NOT NULL, - Created DATETIME, - CreatedBy USERID, - Modified DATETIME, - ModifiedBy USERID, - Container entityId NOT NULL, - -CONSTRAINT PK_snprc_valid_institutions PRIMARY KEY (institution_id), -CONSTRAINT FK_snprc_valid_institutions FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) -); - -GO +CREATE UNIQUE INDEX idx_validInstitutions_objectid ON snprc_ehr.validInstitutions (objectid); CREATE TABLE snprc_ehr.validVets ( - vetId integer NOT NULL, - displayName varchar(128) NOT NULL , - emailAddress varchar(128) NULL, - status varchar(10) NOT NULL, - objectid nvarchar(4000) NOT NULL, - Created DATETIME, - CreatedBy USERID, - Modified DATETIME, - ModifiedBy USERID, - Container entityId NOT NULL, - - CONSTRAINT PK_snprc_validVets PRIMARY KEY (vetId), - CONSTRAINT FK_snprc_validVets FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) -); - -GO - -CREATE TABLE snprc_ehr.valid_bd_status ( - value integer NOT NULL, - description varchar(128) NOT NULL , - objectid nvarchar(4000) NULL, - Created DATETIME, - CreatedBy USERID, - Modified DATETIME, - ModifiedBy USERID, - Container entityId NOT NULL, - - CONSTRAINT PK_snprc_valid_bd_status PRIMARY KEY (value), - CONSTRAINT FK_snprc_valid_bd_status FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) + vetId integer NOT NULL, + displayName varchar(128) NOT NULL , + emailAddress varchar(128) NULL, + status varchar(10) NOT NULL, + Created DATETIME, + CreatedBy USERID, + Modified DATETIME, + ModifiedBy USERID, + Container entityId NOT NULL, + diCreated DATETIME, + diModified DATETIME, + diCreatedBy USERID, + diModifiedBy USERID, + objectid uniqueidentifier not null default newid(), + + CONSTRAINT PK_snprc_validVets PRIMARY KEY (vetId), + CONSTRAINT FK_snprc_validVets FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) ); - GO -CREATE TABLE snprc_ehr.valid_birth_code ( - value integer NOT NULL, - description varchar(128) NOT NULL , - objectid nvarchar(4000) NULL, - Created DATETIME, - CreatedBy USERID, - Modified DATETIME, - ModifiedBy USERID, - Container entityId NOT NULL, - - CONSTRAINT PK_snprc_valid_birth_code PRIMARY KEY (value), - CONSTRAINT FK_snprc_valid_birth_code FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) -); -GO +CREATE UNIQUE INDEX idx_validVets_objectid ON snprc_ehr.validVets (objectid); -CREATE TABLE snprc_ehr.valid_death_code ( - value integer NOT NULL, - description varchar(128) NOT NULL , - objectid nvarchar(4000) NULL, - Created DATETIME, - CreatedBy USERID, - Modified DATETIME, - ModifiedBy USERID, - Container entityId NOT NULL, +CREATE TABLE snprc_ehr.valid_bd_status ( + value integer NOT NULL, + description varchar(128) NOT NULL , + Created DATETIME, + CreatedBy USERID, + Modified DATETIME, + ModifiedBy USERID, + Container entityId NOT NULL, + objectid uniqueidentifier not null default newid(), - CONSTRAINT PK_snprc_valid_death_code PRIMARY KEY (value), - CONSTRAINT FK_snprc_valid_death_code FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) + CONSTRAINT PK_snprc_valid_bd_status PRIMARY KEY (value), + CONSTRAINT FK_snprc_valid_bd_status FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) ); - GO - -ALTER TABLE snprc_ehr.labwork_services ADD diCreated DATETIME; -ALTER TABLE snprc_ehr.labwork_services ADD diModified DATETIME; -ALTER TABLE snprc_ehr.labwork_services ADD diCreatedBy USERID; -ALTER TABLE snprc_ehr.labwork_services ADD diModifiedBy USERID; - -ALTER TABLE snprc_ehr.lab_tests ADD diCreated DATETIME; -ALTER TABLE snprc_ehr.lab_tests ADD diModified DATETIME; -ALTER TABLE snprc_ehr.lab_tests ADD diCreatedBy USERID; -ALTER TABLE snprc_ehr.lab_tests ADD diModifiedBy USERID; - -ALTER TABLE snprc_ehr.package ADD diCreated DATETIME; -ALTER TABLE snprc_ehr.package ADD diModified DATETIME; -ALTER TABLE snprc_ehr.package ADD diCreatedBy USERID; -ALTER TABLE snprc_ehr.package ADD diModifiedBy USERID; - -ALTER TABLE snprc_ehr.package_category ADD diCreated DATETIME; -ALTER TABLE snprc_ehr.package_category ADD diModified DATETIME; -ALTER TABLE snprc_ehr.package_category ADD diCreatedBy USERID; -ALTER TABLE snprc_ehr.package_category ADD diModifiedBy USERID; - -ALTER TABLE snprc_ehr.package_category_junction ADD diCreated DATETIME; -ALTER TABLE snprc_ehr.package_category_junction ADD diModified DATETIME; -ALTER TABLE snprc_ehr.package_category_junction ADD diCreatedBy USERID; -ALTER TABLE snprc_ehr.package_category_junction ADD diModifiedBy USERID; - -ALTER TABLE snprc_ehr.validAccounts ADD diCreated DATETIME; -ALTER TABLE snprc_ehr.validAccounts ADD diModified DATETIME; -ALTER TABLE snprc_ehr.validAccounts ADD diCreatedBy USERID; -ALTER TABLE snprc_ehr.validAccounts ADD diModifiedBy USERID; - -ALTER TABLE snprc_ehr.validInstitutions ADD diCreated DATETIME; -ALTER TABLE snprc_ehr.validInstitutions ADD diModified DATETIME; -ALTER TABLE snprc_ehr.validInstitutions ADD diCreatedBy USERID; -ALTER TABLE snprc_ehr.validInstitutions ADD diModifiedBy USERID; - -ALTER TABLE snprc_ehr.species ADD diCreated DATETIME; -ALTER TABLE snprc_ehr.species ADD diModified DATETIME; -ALTER TABLE snprc_ehr.species ADD diCreatedBy USERID; -ALTER TABLE snprc_ehr.species ADD diModifiedBy USERID; - -ALTER TABLE snprc_ehr.validVets ADD diCreated DATETIME; -ALTER TABLE snprc_ehr.validVets ADD diModified DATETIME; -ALTER TABLE snprc_ehr.validVets ADD diCreatedBy USERID; -ALTER TABLE snprc_ehr.validVets ADD diModifiedBy USERID; - -ALTER TABLE snprc_ehr.species ADD primate VARCHAR(1); - -ALTER TABLE snprc_ehr.validAccounts DROP COLUMN entryDateTm; -ALTER TABLE snprc_ehr.validAccounts DROP COLUMN userName; - -ALTER TABLE snprc_ehr.labwork_services DROP COLUMN entryDateTm; -ALTER TABLE snprc_ehr.labwork_services DROP COLUMN userName; - -ALTER TABLE snprc_ehr.lab_tests DROP COLUMN entryDateTm; -ALTER TABLE snprc_ehr.lab_tests DROP COLUMN userName; +CREATE UNIQUE INDEX idx_valid_bd_status_objectid ON snprc_ehr.valid_bd_status (objectid); CREATE TABLE snprc_ehr.animal_group_categories( - category_code int NOT NULL, - description varchar(128) NULL, - comment varchar(128) NULL, - displayable char(1) NOT NULL, - species char(2) NULL, - sex char(1) NULL, - enforce_exclusivity char(1) NOT NULL, - allow_future_date char(1) NOT NULL, - sort_order int NULL, - objectid nvarchar(4000) NULL, - Created DATETIME, - CreatedBy USERID, - Modified DATETIME, - ModifiedBy USERID, - diCreated DATETIME, - diModified DATETIME, - diCreatedBy USERID, - diModifiedBy USERID, - Container entityId NOT NULL, - - CONSTRAINT PK_animal_group_categories PRIMARY KEY (category_code), - CONSTRAINT FK_animal_group_categories FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) -); - -GO - -CREATE TABLE snprc_ehr.animal_groups( - code INT NOT NULL, - category_code INT NOT NULL, - description VARCHAR(128) NOT NULL, - date DATE NOT NULL, - enddate DATE NULL, - comment VARCHAR(MAX) NULL, - sort_order INT NULL, - objectid nvarchar(4000) NULL, - Created DATETIME, - CreatedBy USERID, - Modified DATETIME, - ModifiedBy USERID, - diCreated DATETIME, - diModified DATETIME, - diCreatedBy USERID, - diModifiedBy USERID, - Container entityId NOT NULL, - - CONSTRAINT PK_snprc_animal_groups PRIMARY KEY (code, category_code), - CONSTRAINT FK_snprc_animal_groups FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) + category_code int NOT NULL, + description varchar(128) NULL, + comment varchar(128) NULL, + displayable char(1) NOT NULL, + species char(2) NULL, + sex char(1) NULL, + enforce_exclusivity char(1) NOT NULL, + allow_future_date char(1) NOT NULL, + sort_order int NULL, + Created DATETIME, + CreatedBy USERID, + Modified DATETIME, + ModifiedBy USERID, + diCreated DATETIME, + diModified DATETIME, + diCreatedBy USERID, + diModifiedBy USERID, + Container entityId NOT NULL, + objectid uniqueidentifier not null default newid(), + + CONSTRAINT PK_animal_group_categories PRIMARY KEY (category_code), + CONSTRAINT FK_animal_group_categories FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) ); - -GO - -EXEC sp_rename 'snprc_ehr.animal_groups.description', 'name', 'COLUMN'; GO --- DROP the object id column --- ADD the objectid back as a uniqueidentifier +CREATE UNIQUE INDEX idx_animal_group_categories_objectid ON snprc_ehr.animal_group_categories (objectid); -ALTER TABLE snprc_ehr.species DROP COLUMN objectid; -ALTER TABLE snprc_ehr.species ADD objectid uniqueidentifier not null default newid(); - -ALTER TABLE snprc_ehr.package_category DROP COLUMN objectid; -ALTER TABLE snprc_ehr.package_category ADD objectid uniqueidentifier not null default newid(); - -ALTER TABLE snprc_ehr.package_category_junction DROP COLUMN objectid; -ALTER TABLE snprc_ehr.package_category_junction ADD objectid uniqueidentifier not null default newid(); - -ALTER TABLE snprc_ehr.animal_groups DROP COLUMN objectid; -ALTER TABLE snprc_ehr.animal_groups ADD objectid uniqueidentifier not null default newid(); - -ALTER TABLE snprc_ehr.validVets DROP COLUMN objectid; -ALTER TABLE snprc_ehr.validVets ADD objectid uniqueidentifier not null default newid(); - -ALTER TABLE snprc_ehr.lab_tests DROP COLUMN objectid; -ALTER TABLE snprc_ehr.lab_tests ADD objectid uniqueidentifier not null default newid(); - -ALTER TABLE snprc_ehr.validAccounts DROP COLUMN objectid; -ALTER TABLE snprc_ehr.validAccounts ADD objectid uniqueidentifier not null default newid(); - -ALTER TABLE snprc_ehr.valid_bd_status DROP COLUMN objectid; -ALTER TABLE snprc_ehr.valid_bd_status ADD objectid uniqueidentifier not null default newid(); - -ALTER TABLE snprc_ehr.valid_birth_code DROP COLUMN objectid; -ALTER TABLE snprc_ehr.valid_birth_code ADD objectid uniqueidentifier not null default newid(); - -ALTER TABLE snprc_ehr.valid_death_code DROP COLUMN objectid; -ALTER TABLE snprc_ehr.valid_death_code ADD objectid uniqueidentifier not null default newid(); - -ALTER TABLE snprc_ehr.animal_group_categories DROP COLUMN objectid; -ALTER TABLE snprc_ehr.animal_group_categories ADD objectid uniqueidentifier not null default newid(); - -ALTER TABLE snprc_ehr.validInstitutions DROP COLUMN objectid; -ALTER TABLE snprc_ehr.validInstitutions ADD objectid uniqueidentifier not null default newid(); - -ALTER TABLE snprc_ehr.package DROP COLUMN objectid; -ALTER TABLE snprc_ehr.package ADD objectid uniqueidentifier not null default newid(); - -ALTER TABLE snprc_ehr.clinical_observation_datasets ADD objectid uniqueidentifier not null default newid(); - --- create a unique index on the objectid -CREATE UNIQUE INDEX idx_species_objectid ON snprc_ehr.species (objectid) -CREATE UNIQUE INDEX idx_package_category_objectid ON snprc_ehr.package_category (objectid) -CREATE UNIQUE INDEX idx_package_category_junction_objectid ON snprc_ehr.package_category_junction (objectid) -CREATE UNIQUE INDEX idx_animal_groups_objectid ON snprc_ehr.animal_groups (objectid) -CREATE UNIQUE INDEX idx_validVets_objectid ON snprc_ehr.validVets (objectid) -CREATE UNIQUE INDEX idx_lab_tests_objectid ON snprc_ehr.lab_tests (objectid) -CREATE UNIQUE INDEX idx_validAccounts_objectid ON snprc_ehr.validAccounts (objectid) -CREATE UNIQUE INDEX idx_valid_bd_status_objectid ON snprc_ehr.valid_bd_status (objectid) -CREATE UNIQUE INDEX idx_valid_birth_code_objectid ON snprc_ehr.valid_birth_code (objectid) -CREATE UNIQUE INDEX idx_valid_death_code_objectid ON snprc_ehr.valid_death_code (objectid) -CREATE UNIQUE INDEX idx_animal_group_categories_objectid ON snprc_ehr.animal_group_categories (objectid) -CREATE UNIQUE INDEX idx_validInstitutions_objectid ON snprc_ehr.validInstitutions (objectid) -CREATE UNIQUE INDEX idx_package_objectid ON snprc_ehr.package (objectid) - --- add unique index on code column in snprc_ehr.animal_groups -CREATE UNIQUE INDEX idx_animal_groups_code ON snprc_ehr.animal_groups (code) - --- Need to change the primary key - recreate labwork_services table - The table will need to be repopulated using the ETL process - -IF exists (select 1 from INFORMATION_SCHEMA.TABLES where TABLE_NAME = 'labwork_services' AND TABLE_SCHEMA = 'snprc_ehr') - drop table snprc_ehr.labwork_services - -CREATE TABLE snprc_ehr.labwork_services ( - rowId int identity, - serviceName varchar(200) NOT NULL, - serviceId varchar(200) NOT NULL, - dataset varchar(200), - chargeType varchar(200), - collectionMethod varchar(500), - alertOnComplete bit, - tissue varchar(100), - outsideLab bit, - dateDisabled datetime, - method varchar(100), - objectid UNIQUEIDENTIFIER not null default newid(), - Created DATETIME, - CreatedBy USERID, - Modified DATETIME, - ModifiedBy USERID, - diCreated DATETIME, - diModified DATETIME, - diCreatedBy USERID, - diModifiedBy USERID, - Container entityId NOT NULL, - - CONSTRAINT PK_snprc_labwork_services PRIMARY KEY (rowId), - CONSTRAINT FK_snprc_labwork_services FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) +CREATE TABLE snprc_ehr.animal_groups( + code INT NOT NULL, + category_code INT NOT NULL, + name VARCHAR(128) NOT NULL, -- Renamed from description + date DATE NOT NULL, + enddate DATE NULL, + comment VARCHAR(MAX) NULL, + sort_order INT NULL, + Created DATETIME, + CreatedBy USERID, + Modified DATETIME, + ModifiedBy USERID, + diCreated DATETIME, + diModified DATETIME, + diCreatedBy USERID, + diModifiedBy USERID, + Container entityId NOT NULL, + objectid uniqueidentifier not null default newid(), + + CONSTRAINT PK_snprc_animal_groups PRIMARY KEY (code, category_code), + CONSTRAINT FK_snprc_animal_groups FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) ); - -CREATE UNIQUE INDEX idx_labwork_services_serviceName ON snprc_ehr.labwork_services (serviceName) -CREATE UNIQUE INDEX idx_labwork_services_serviceId ON snprc_ehr.labwork_services (serviceId) -CREATE UNIQUE INDEX idx_labwork_services_objectid ON snprc_ehr.labwork_services (objectid) - -ALTER TABLE snprc_ehr.species ADD Created DATETIME; -ALTER TABLE snprc_ehr.species ADD Modified DATETIME; -ALTER TABLE snprc_ehr.species ADD CreatedBy USERID; -ALTER TABLE snprc_ehr.species ADD ModifiedBy USERID; - --- drop existing tables -if exists (select 1 - from sysobjects - where id = object_id('snprc_ehr.lab_tests') - and type = 'U') - drop table snprc_ehr.lab_tests GO -if exists (select 1 - from sysobjects - where id = object_id('snprc_ehr.labwork_services') - and type = 'U') - drop table snprc_ehr.labwork_services -go +CREATE UNIQUE INDEX idx_animal_groups_objectid ON snprc_ehr.animal_groups (objectid); +CREATE UNIQUE INDEX idx_animal_groups_code ON snprc_ehr.animal_groups (code); --- labwork_types CREATE TABLE snprc_ehr.labwork_types ( RowId [INT] IDENTITY(1,1) NOT NULL, ServiceType varchar(100) NOT NULL, - ObjectId nvarchar(4000), + ObjectId uniqueidentifier NOT NULL DEFAULT NEWID(), [Created] [DATETIME] NULL, [CreatedBy] [dbo].[USERID] NULL, [Modified] [DATETIME] NULL, @@ -580,108 +301,57 @@ CREATE TABLE snprc_ehr.labwork_types ( [DiModified] [DATETIME] NULL, [DiCreatedBy] [dbo].[USERID] NULL, [DiModifiedBy] [dbo].[USERID] NULL, - Container entityId NOT NULL, + Container entityId NOT NULL, CONSTRAINT PK_snprc_labwork_types PRIMARY KEY (ServiceType), CONSTRAINT FK_snprc_labwork_types_container FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) ); - -GO - -ALTER TABLE [snprc_ehr].[labwork_types] ADD DEFAULT (NEWID()) FOR [ObjectId] -GO - - --- labwork_services - -CREATE TABLE snprc_ehr.labwork_services ( - RowId [INT] IDENTITY(1,1) NOT NULL, - ServiceName varchar(100) NOT NULL, - ServiceId INT NOT NULL, - Dataset varchar(100), - ChargeType varchar(100), - CollectionMethod varchar(500), - AlertOnComplete bit, - Tissue varchar(100), - OutsideLab bit, - DateDisabled datetime, - Method varchar(100), - Active INT, - Bench varchar(20), - ObjectId nvarchar(4000), - [Created] [DATETIME] NULL, - [CreatedBy] [dbo].[USERID] NULL, - [Modified] [DATETIME] NULL, - [ModifiedBy] [dbo].[USERID] NULL, - [DiCreated] [DATETIME] NULL, - [DiModified] [DATETIME] NULL, - [DiCreatedBy] [dbo].[USERID] NULL, - [DiModifiedBy] [dbo].[USERID] NULL, - Container entityId NOT NULL, - - CONSTRAINT PK_snprc_labwork_services PRIMARY KEY (ServiceId), - CONSTRAINT FK_snprc_labwork_services_container FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) -); - -GO - -ALTER TABLE [snprc_ehr].[labwork_services] ADD DEFAULT (NEWID()) FOR [ObjectId] GO -CREATE UNIQUE INDEX idx_labwork_services_serviceId ON [snprc_ehr].[labwork_services](ServiceId); -GO - -ALTER TABLE [snprc_ehr].[labwork_services] WITH CHECK ADD CONSTRAINT [FK_snprc_labwork_panels_dataset] FOREIGN KEY([Dataset]) -REFERENCES [snprc_ehr].[labwork_types] ([ServiceType]) +ALTER TABLE [snprc_ehr].[labwork_services] WITH CHECK ADD CONSTRAINT [FK_snprc_labwork_panels_dataset] FOREIGN KEY([Dataset]) REFERENCES [snprc_ehr].[labwork_types] ([ServiceType]); GO - -ALTER TABLE [snprc_ehr].[labwork_services] CHECK CONSTRAINT [FK_snprc_labwork_panels_dataset] +ALTER TABLE [snprc_ehr].[labwork_services] CHECK CONSTRAINT [FK_snprc_labwork_panels_dataset]; GO --- labwork_panels CREATE TABLE [snprc_ehr].[labwork_panels]( - RowId [INT] IDENTITY(1,1) NOT NULL, - [ServiceId] INT NOT NULL, - [TestId] [VARCHAR](100) NOT NULL, - [TestName] [VARCHAR](100) NULL, - [Units] [VARCHAR](100) NULL, - [SortOrder] INT NULL, - [Aliases] [VARCHAR](1000) NULL, - [AlertOnAbnormal] [BIT] NULL, - [AlertOnAny] [BIT] NULL, - [IncludeInPanel] [BIT] NULL, - [Created] [DATETIME] NULL, - [CreatedBy] [dbo].[USERID] NULL, - [Modified] [DATETIME] NULL, - [ModifiedBy] [dbo].[USERID] NULL, - [Container] [dbo].[ENTITYID] NOT NULL, - [DiCreated] [DATETIME] NULL, - [DiModified] [DATETIME] NULL, - [DiCreatedBy] [dbo].[USERID] NULL, - [DiModifiedBy] [dbo].[USERID] NULL, - [ObjectId] [UNIQUEIDENTIFIER] NOT NULL, - CONSTRAINT [PK_snprc_labwork_panels] PRIMARY KEY CLUSTERED + RowId [INT] IDENTITY(1,1) NOT NULL, + [ServiceId] INT NOT NULL, + [TestId] [VARCHAR](100) NOT NULL, + [TestName] [VARCHAR](100) NULL, + [Units] [VARCHAR](100) NULL, + [SortOrder] INT NULL, + [Aliases] [VARCHAR](1000) NULL, + [AlertOnAbnormal] [BIT] NULL, + [AlertOnAny] [BIT] NULL, + [IncludeInPanel] [BIT] NULL, + [Created] [DATETIME] NULL, + [CreatedBy] [dbo].[USERID] NULL, + [Modified] [DATETIME] NULL, + [ModifiedBy] [dbo].[USERID] NULL, + [Container] [dbo].[ENTITYID] NOT NULL, + [DiCreated] [DATETIME] NULL, + [DiModified] [DATETIME] NULL, + [DiCreatedBy] [dbo].[USERID] NULL, + [DiModifiedBy] [dbo].[USERID] NULL, + [ObjectId] [UNIQUEIDENTIFIER] NOT NULL DEFAULT NEWID(), + CONSTRAINT [PK_snprc_labwork_panels] PRIMARY KEY CLUSTERED ( - [RowId] ASC - )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -) ON [PRIMARY] -GO - -ALTER TABLE [snprc_ehr].[labwork_panels] ADD DEFAULT (NEWID()) FOR [objectid] + [RowId] ASC + ) + WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] +) ON [PRIMARY]; GO -ALTER TABLE [snprc_ehr].[labwork_panels] WITH CHECK ADD CONSTRAINT [FK_snprc_labwork_panels_container] FOREIGN KEY([Container]) -REFERENCES [core].[Containers] ([EntityId]) +ALTER TABLE [snprc_ehr].[labwork_panels] WITH CHECK ADD CONSTRAINT [FK_snprc_labwork_panels_container] FOREIGN KEY([Container]) REFERENCES [core].[Containers] ([EntityId]); GO -ALTER TABLE [snprc_ehr].[labwork_panels] CHECK CONSTRAINT [FK_snprc_labwork_panels_container] +ALTER TABLE [snprc_ehr].[labwork_panels] CHECK CONSTRAINT [FK_snprc_labwork_panels_container]; GO -ALTER TABLE [snprc_ehr].[labwork_panels] WITH CHECK ADD CONSTRAINT [FK_snprc_labwork_panels_services] FOREIGN KEY([ServiceId]) -REFERENCES [snprc_ehr].[labwork_services] ([ServiceId]) +ALTER TABLE [snprc_ehr].[labwork_panels] WITH CHECK ADD CONSTRAINT [FK_snprc_labwork_panels_services] FOREIGN KEY([ServiceId]) REFERENCES [snprc_ehr].[labwork_services] ([ServiceId]); GO -ALTER TABLE [snprc_ehr].[labwork_panels] CHECK CONSTRAINT [FK_snprc_labwork_panels_services] +ALTER TABLE [snprc_ehr].[labwork_panels] CHECK CONSTRAINT [FK_snprc_labwork_panels_services]; GO CREATE TABLE [snprc_ehr].[MhcData]( @@ -691,7 +361,7 @@ CREATE TABLE [snprc_ehr].[MhcData]( [OcId] [NVARCHAR](128) NULL, [MhcValue] [nvarchar](128) NULL, [DataFileSource] [nvarchar](4000) NULL, - [ObjectId] nvarchar(128), + [ObjectId] uniqueidentifier NOT NULL DEFAULT NEWID(), [Created] [DATETIME] NULL, [CreatedBy] [dbo].[USERID] NULL, [Modified] [DATETIME] NULL, @@ -708,22 +378,18 @@ CREATE TABLE [snprc_ehr].[MhcData]( go - -ALTER TABLE [snprc_ehr].[MhcData] ADD DEFAULT (NEWID()) FOR [ObjectId] -GO - -ALTER TABLE [snprc_ehr].[MhcData] ADD CONSTRAINT [AK_ID_Haplotype] UNIQUE NONCLUSTERED +ALTER TABLE [snprc_ehr].[MhcData] ADD CONSTRAINT [AK_ID_Haplotype] UNIQUE NONCLUSTERED ( [Id] ASC, [Haplotype] ASC - )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) + ) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON); GO CREATE TABLE [snprc_ehr].[ValidChargeBySpecies]( [Project] INTEGER NOT NULL, [Species] NVARCHAR(2) NOT NULL, [Purpose] NVARCHAR (2) NOT NULL, - [ObjectId] nvarchar(128), + [ObjectId] uniqueidentifier NOT NULL DEFAULT NEWID(), [Created] [DATETIME] NULL, [CreatedBy] [dbo].[USERID] NULL, [Modified] [DATETIME] NULL, @@ -732,44 +398,13 @@ CREATE TABLE [snprc_ehr].[ValidChargeBySpecies]( [DiModified] [DATETIME] NULL, [DiCreatedBy] [dbo].[USERID] NULL, [DiModifiedBy] [dbo].[USERID] NULL, - Container entityId NOT NULL + Container entityId NOT NULL, + startDate DATETIME NOT NULL DEFAULT GETDATE(), + stopDate DATETIME, - CONSTRAINT PK_snprc_ValidChargeBySpecies PRIMARY KEY ([Project]) + CONSTRAINT PK_snprc_ValidChargeBySpecies PRIMARY KEY CLUSTERED (Project, Species), CONSTRAINT FK_snprc_ValidChargeBySpecies_container FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) ); - -go - -ALTER TABLE [snprc_ehr].[ValidChargeBySpecies] ADD DEFAULT (NEWID()) FOR [ObjectId] -GO - -EXEC core.fn_dropifexists 'FeeSchedule','snprc_ehr', 'TABLE'; -GO - -CREATE TABLE [snprc_ehr].[FeeSchedule]( - [RowId] [bigint] IDENTITY(1,1) NOT NULL, - [ActivityId] INTEGER NOT NULL, - [Species] NVARCHAR(128) NOT NULL, - [Description] NVARCHAR (256) NOT NULL, - [BudgetYear] NVARCHAR (256) NOT NULL, - [Cost] NUMERIC (9,2) NOT NULL, - [FileName] NVARCHAR (256) NOT NULL, - [ObjectId] UNIQUEIDENTIFIER NOT NULL DEFAULT NEWID(), - [Created] [DATETIME] NULL, - [CreatedBy] [dbo].[USERID] NULL, - [Modified] [DATETIME] NULL, - [ModifiedBy] [dbo].[USERID] NULL, - Container entityId NOT NULL - - CONSTRAINT PK_snprc_fee_schedule PRIMARY KEY ([RowId]) - CONSTRAINT FK_snprc_fee_Schedule_container FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) -); - -CREATE UNIQUE INDEX idx_snprc_fee_schedule_objectid ON snprc_ehr.feeSchedule (objectid) -CREATE UNIQUE INDEX idx_snprc_fee_schedule_activityId_budgetYear ON snprc_ehr.FeeSchedule (ActivityId, BudgetYear); - -EXEC core.fn_dropifexists 'FeeSchedule','snprc_ehr', 'TABLE'; -EXEC core.fn_dropifexists 'FeeScheduleSpeciesLookup','snprc_ehr', 'TABLE'; GO CREATE TABLE [snprc_ehr].[FeeSchedule]( @@ -787,13 +422,13 @@ CREATE TABLE [snprc_ehr].[FeeSchedule]( [CreatedBy] [dbo].[USERID] NULL, [Modified] [DATETIME] NULL, [ModifiedBy] [dbo].[USERID] NULL, - Container entityId NOT NULL + Container entityId NOT NULL - CONSTRAINT PK_snprc_fee_schedule PRIMARY KEY ([RowId]) + CONSTRAINT PK_snprc_fee_schedule PRIMARY KEY ([RowId]), CONSTRAINT FK_snprc_fee_Schedule_container FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) ); -CREATE UNIQUE INDEX idx_snprc_fee_schedule_objectid ON snprc_ehr.feeSchedule (objectid) +CREATE UNIQUE INDEX idx_snprc_fee_schedule_objectid ON snprc_ehr.feeSchedule (objectid); CREATE UNIQUE INDEX idx_snprc_fee_schedule_activityId_budgetYear ON snprc_ehr.FeeSchedule (StartingYear, VersionLabel, ActivityId, BudgetYear); GO @@ -807,62 +442,11 @@ CREATE TABLE [snprc_ehr].[FeeScheduleSpeciesLookup] ( [ModifiedBy] [dbo].[USERID] NULL, [Container] [dbo].[ENTITYID] NOT NULL - CONSTRAINT [PK_FeeScheduleSpeciesLookup] PRIMARY KEY CLUSTERED ([FsSpecies], [SpeciesCode]) + CONSTRAINT [PK_FeeScheduleSpeciesLookup] PRIMARY KEY CLUSTERED ([FsSpecies], [SpeciesCode]), CONSTRAINT [FK_FeeScheduleSpeciesLookup_container] FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) ); GO -ALTER TABLE snprc_ehr.package ADD pkgType NVARCHAR(1) not null default 'U'; - -EXEC core.fn_dropifexists 'valid_birth_code','snprc_ehr', 'TABLE'; -EXEC core.fn_dropifexists 'valid_death_code','snprc_ehr', 'TABLE'; - -EXEC core.fn_dropifexists 'LocationTemperature','snprc_ehr', 'TABLE'; - -GO -/************************************* -ObjectId should be populated before insert. - - -srr 02.25.2019 -*************************************/ - -CREATE TABLE [snprc_ehr].[LocationTemperature]( - [Room] [varchar](100) NOT NULL, - [Date] [DATETIME] NOT NULL, - [LowTemperature] [NUMERIC](6, 2) NULL, - [HighTemperature] [NUMERIC](6, 2) NULL, - [Notify] [VARCHAR](18) NULL, - [ObjectId] UNIQUEIDENTIFIER NOT NULL DEFAULT NEWID(), - [user_name] [VARCHAR](128) NOT NULL, - [entry_date_tm] [DATETIME] NOT NULL, - [Container] [entityID] NOT NULL, - [Created] DATETIME, - [CreatedBy] USERID, - [Modified] DATETIME, - [ModifiedBy] USERID - - CONSTRAINT [PK_LocationTemperature] PRIMARY KEY CLUSTERED ([Room] ASC,[Date] ASC) - CONSTRAINT FK_snprc_LocationTemperature_container FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) -) - GO - - -CREATE UNIQUE INDEX idx_snprc_LocationTemperature_objectid ON snprc_ehr.LocationTemperature (ObjectId); -CREATE UNIQUE INDEX idx_snprc_LocationTemperature_Room ON snprc_ehr.LocationTemperature (Room); -GO - -EXEC core.fn_dropifexists 'LocationTemperature','snprc_ehr', 'TABLE'; - -GO -/************************************* -ObjectId should be populated before insert. - - -srr 02.25.2019 ori -srr 02.27.2019 19.11 version -*************************************/ - CREATE TABLE [snprc_ehr].[LocationTemperature]( [Room] [varchar](100) NOT NULL, [Date] [DATETIME] NOT NULL, @@ -878,124 +462,40 @@ CREATE TABLE [snprc_ehr].[LocationTemperature]( [diCreatedBy] [dbo].[USERID] NULL, [diModifiedBy] [dbo].[USERID] NULL, [Container] [dbo].[ENTITYID] NOT NULL, - [objectid] [uniqueidentifier] NOT NULL + [objectid] [uniqueidentifier] NOT NULL DEFAULT NEWID(), - CONSTRAINT [PK_LocationTemperature] PRIMARY KEY CLUSTERED ([Room] ASC,[Date] ASC) + CONSTRAINT [PK_LocationTemperature] PRIMARY KEY CLUSTERED ([Room] ASC,[Date] ASC), CONSTRAINT FK_snprc_LocationTemperature_container FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) -) +); GO CREATE UNIQUE INDEX idx_snprc_LocationTemperature_objectid ON snprc_ehr.LocationTemperature (ObjectId); CREATE INDEX idx_snprc_LocationTemperature_Date ON snprc_ehr.LocationTemperature (Date, Room); GO --- Version 12 is replaced by version 13 srr +CREATE TABLE snprc_ehr.ValidDiet( + [Diet] [nvarchar](20) NOT NULL, + [ArcSpeciesCode] [nvarchar](2) NULL, + [StartDate] [datetime] NOT NULL, + [StopDate] [datetime] NULL, + [SnomedCode] [nvarchar](7) NULL, + [DietCode] [INTEGER] NOT NULL, -- Renamed from DietId + [Created] DATETIME, + [CreatedBy] USERID, + [Modified] DATETIME, + [ModifiedBy] USERID, + [diCreated] [datetime] NULL, + [diModified] [datetime] NULL, + [diCreatedBy] [dbo].[USERID] NULL, + [diModifiedBy] [dbo].[USERID] NULL, + [Container] [dbo].[ENTITYID] NOT NULL, + [objectid] [uniqueidentifier] NOT NULL DEFAULT NEWID(), -EXEC core.fn_dropifexists 'ValidDiet','snprc_ehr', 'TABLE'; + CONSTRAINT [PK_ValidDiet] PRIMARY KEY CLUSTERED (Diet) -- Changed primary key +); ---GO; -/*************************************************** -Note: ArcSpeciesCode is null for most rows - therefore not included in PK - PK is composite of Diet and StartDate - - Currently: In legacy table, SnomedCode is - generated using a identity (tid). - - This was refactored to an integer - DietId. - May refactor out or to a counter - value at a later date. - -srr 03.11.2019 ori -***************************************************/ - -CREATE TABLE snprc_ehr.ValidDiet( - [Diet] [nvarchar](20) NOT NULL, - [ArcSpeciesCode] [nvarchar](2) NULL, - [StartDate] [datetime] NOT NULL, - [StopDate] [datetime] NULL, - [SnomedCode] [nvarchar](7) NULL, - [DietId] [INTEGER] NOT NULL, - --ObjectId] UNIQUEIDENTIFIER NOT NULL DEFAULT NEWID(), - --[Container] [entityID] NOT NULL, - [Created] DATETIME, - [CreatedBy] USERID, - [Modified] DATETIME, - [ModifiedBy] USERID, - [diCreated] [datetime] NULL, - [diModified] [datetime] NULL, - [diCreatedBy] [dbo].[USERID] NULL, - [diModifiedBy] [dbo].[USERID] NULL, - [Container] [dbo].[ENTITYID] NOT NULL, - [objectid] [uniqueidentifier] NOT NULL - CONSTRAINT [PK_ValidDiet] PRIMARY KEY CLUSTERED ([Diet] ASC,[StartDate] ASC) - ) - - go - -EXEC core.fn_dropifexists 'ValidDiet','snprc_ehr', 'TABLE'; - -/***************************************************************** -Note: ArcSpeciesCode is null for most rows -therefore not included in PK -PK is composite of Diet and StartDate - -Currently: In legacy table, SnomedCode is -generated using a identity (tid). -As of 03.18.2019 column is now DietCode. - -This was refactored to an integer -DietId. -May refactor out or to a counter -value at a later date. - -srr 03.11.2019 ori -srr 03.18.2019 To agree w/ naming conventions elsewhere -refactored DietId to DietCode - - -******************************************************************/ - -CREATE TABLE snprc_ehr.ValidDiet( - [Diet] [nvarchar](20) NOT NULL, - [ArcSpeciesCode] [nvarchar](2) NULL, - [StartDate] [datetime] NOT NULL, - [StopDate] [datetime] NULL, - [SnomedCode] [nvarchar](7) NULL, - [DietCode] [INTEGER] NOT NULL, - --ObjectId] UNIQUEIDENTIFIER NOT NULL DEFAULT NEWID(), - --[Container] [entityID] NOT NULL, - [Created] DATETIME, - [CreatedBy] USERID, - [Modified] DATETIME, - [ModifiedBy] USERID, - [diCreated] [datetime] NULL, - [diModified] [datetime] NULL, - [diCreatedBy] [dbo].[USERID] NULL, - [diModifiedBy] [dbo].[USERID] NULL, - [Container] [dbo].[ENTITYID] NOT NULL, - [objectid] [uniqueidentifier] NOT NULL - CONSTRAINT [PK_ValidDiet] PRIMARY KEY CLUSTERED ([Diet] ASC,[StartDate] ASC) - ) - --- will need to be changed if we begin to use Diet instead of SnomedCode srr -CREATE UNIQUE INDEX idx_ValidDiet_SnomedCode_StartStopDate ON snprc_ehr.ValidDiet(SnomedCode, StartDate, StopDate); - go - -/********************************************************* -Valids for diagnosis (DX) taken from legacy DB. - Likely needs refactoring. - Will no do now. - srr - -*********************************************************/ - - - -EXEC core.fn_dropifexists 'ValidDXGroup','snprc_ehr', 'TABLE'; - ---srr 07.17.19 +CREATE UNIQUE INDEX idx_ValidDiet_SnomedCode_StartStopDate ON snprc_ehr.ValidDiet(SnomedCode, StartDate, StopDate); +go CREATE TABLE snprc_ehr.ValidDXGroup ( @@ -1009,13 +509,10 @@ CREATE TABLE snprc_ehr.ValidDXGroup diCreatedBy dbo.USERID NULL, diModifiedBy dbo.USERID NULL, Container dbo.ENTITYID NOT NULL, - objectid uniqueidentifier NOT NULL - CONSTRAINT PK_ValidDXGroup PRIMARY KEY CLUSTERED (DXGroup ASC) -) - - -EXEC core.fn_dropifexists 'ValidDXList','snprc_ehr', 'TABLE'; + objectid uniqueidentifier NOT NULL DEFAULT NEWID(), + CONSTRAINT PK_ValidDXGroup PRIMARY KEY CLUSTERED (DXGroup ASC) +); --srr 07.17.19 @@ -1032,11 +529,10 @@ CREATE TABLE snprc_ehr.ValidDXList diCreatedBy dbo.USERID NULL, diModifiedBy dbo.USERID NULL, Container dbo.ENTITYID NOT NULL, - objectid uniqueidentifier NOT NULL - CONSTRAINT PK_ValidDXList PRIMARY KEY CLUSTERED (DXGroup ASC, DX ASC) -) + objectid uniqueidentifier NOT NULL DEFAULT NEWID(), -EXEC core.fn_dropifexists 'ValidVaccines','snprc_ehr', 'TABLE'; + CONSTRAINT PK_ValidDXList PRIMARY KEY CLUSTERED (DXGroup ASC, DX ASC) +); --srr 07.17.19 @@ -1052,182 +548,42 @@ CREATE TABLE snprc_ehr.ValidVaccines diCreatedBy dbo.USERID NULL, diModifiedBy dbo.USERID NULL, Container dbo.ENTITYID NOT NULL, - objectid uniqueidentifier NOT NULL - CONSTRAINT PK_ValidVaccine PRIMARY KEY CLUSTERED (Vaccine ASC) -) - --- adding species to the PK -ALTER TABLE snprc_ehr.ValidChargeBySpecies - DROP CONSTRAINT PK_snprc_ValidChargeBySpecies -GO - -ALTER TABLE snprc_ehr.ValidChargeBySpecies ADD CONSTRAINT - PK_snprc_ValidChargeBySpecies PRIMARY KEY CLUSTERED -( - Project, - Species -) - -GO - -/******************************************************* -New table to load data from new animal wizard. - Data will be ETLed back down to animal database - -srr 01.28.2020 - - May not use all columns. - I defaulted to nvarchar(400) if unsure of datatype. - May need to change databypes to match those in lookup tables. + objectid uniqueidentifier NOT NULL DEFAULT NEWID(), -*******************************************************/ - -EXEC core.fn_dropifexists 'NewAnimalData','snprc_ehr', 'TABLE'; + CONSTRAINT PK_ValidVaccine PRIMARY KEY CLUSTERED (Vaccine ASC) +); CREATE TABLE snprc_ehr.NewAnimalData ( - Id NVARCHAR(32) NOT NULL, - BirthDate DATETIME NULL, - AcquisitionType INT NULL, - AcqDate DATETIME NULL, -- Will use for all start dates in this dataset - Gender NVARCHAR(10) NULL, --gender nvarchar(4000) - Sire NVARCHAR(32) NULL, - Dam NVARCHAR(32) NULL, - Species NVARCHAR(3) NULL, -- species, nvarchar(4000) - Colony NVARCHAR(400) NULL, - AnimalAccount NVARCHAR(400) NULL, - OwnerInstitution INT NULL, -- lookup snprc_ehr.validInstitutions - ResponsibleInstitution INT NULL, -- likely same as owner - Location NVARCHAR(400) NULL, - Diet NVARCHAR(400) NULL, - Pedigree NVARCHAR(400) NULL, - IACUC NVARCHAR(400) NULL, - Created DATETIME NULL, - CreatedBy dbo.USERID NULL, - Modified DATETIME NULL, - ModifiedBy dbo.USERID NULL, - DiCreated DATETIME NULL, - DiModified DATETIME NULL, - DiCreatedBy dbo.USERID NULL, - DiModifiedBy dbo.USERID NULL, - Container ENTITYID NOT NULL, - objectid UNIQUEIDENTIFIER NOT NULL - CONSTRAINT PK_snprc_NEWANIMALDATA PRIMARY KEY (Id) -); ---[DeliveryType] [nvarchar](400) NULL, ---[BirthNature] [nvarchar](400) NULL, ---[AcquireType] [nvarchar](400) NULL, - - -/* -Species, -Acq_code, -id_type, -institution_id, -colony, -delivery_type, -birth_nature, -acquire_type, -animalAccounts, -location, -IACUC fields, -pedigree, -diet - */ - - - -go - -ALTER TABLE snprc_ehr.ValidChargeBySpecies ADD startDate DATETIME NOT NULL DEFAULT GETDATE(); -ALTER TABLE snprc_ehr.ValidChargeBySpecies ADD stopDate DATETIME; - -/******************************************************* -New table to load data from new animal wizard. - Data will be ETLed back down to animal database - -srr 01.28.2020 - - May not use all columns. - I defaulted to nvarchar(400) if unsure of datatype. - May need to change databypes to match those in lookup tables. - -srr 03.09.2020 version 20.003 -Changed to ints for values that have a dropdown. - No Real data, therefore dropping table and re-recreating. -*******************************************************/ - -EXEC core.fn_dropifexists 'NewAnimalData','snprc_ehr', 'TABLE'; - - - -CREATE TABLE [snprc_ehr].[NewAnimalData]( - [Id] [nvarchar](32) NOT NULL, - [BirthDate] [datetime] NULL, - [AcquisitionType] [int] NULL, - [AcqDate] [datetime] NULL, - [Gender] [nvarchar](10) NULL, - [Sire] [nvarchar](32) NULL, - [Dam] [nvarchar](32) NULL, - [Species] [nvarchar](3) NULL, - [Colony] [int] NULL, - [AnimalAccount] [int] NULL, - [OwnerInstitution] [int] NULL, - [ResponsibleInstitution] [int] NULL, - [Room] [int] NULL, - [Cage] [int] NULL, - [Diet] [int] NULL, - [Pedigree] [int] NULL, - [IACUC] [int] NULL, - [Created] [datetime] NULL, - [CreatedBy] [dbo].[USERID] NULL, - [Modified] [datetime] NULL, - [ModifiedBy] [dbo].[USERID] NULL, - [Container] [dbo].[ENTITYID] NOT NULL, - [objectid] [uniqueidentifier] NOT NULL, - CONSTRAINT PK_snprc_NEWANIMALDATA PRIMARY KEY (Id) -); - --- generated w/o issue from SSMS srr 04.10.20 --- schemas/dbscripts/sqlserver/snprc_ehr-20.003-20.004.sql -EXEC core.fn_dropifexists 'BehaviorNotificationComment','snprc_ehr', 'TABLE'; - + Id nvarchar(32) NOT NULL, + BirthDate datetime NULL, + BirthCode int NULL, + AcquisitionType int NULL, + AcqDate datetime NULL, + SourceInstitutionLocation nvarchar(10) NULL, + Gender nvarchar(10) NULL, + Sire nvarchar(32) NULL, + Dam nvarchar(32) NULL, + Species nvarchar(3) NULL, + Colony int NULL, + AnimalAccount nvarchar(16) NULL, + OwnerInstitution int NULL, + ResponsibleInstitution int NULL, + Room int NULL, + Cage int NULL, + Diet nvarchar(20) NULL, + Pedigree int NULL, + IACUC nvarchar(200) NULL, + Created datetime NULL, + CreatedBy dbo.USERID NULL, + Modified datetime NULL, + ModifiedBy dbo.USERID NULL, + Container dbo.ENTITYID NOT NULL, + objectid uniqueidentifier NOT NULL DEFAULT NEWID(), -CREATE TABLE snprc_ehr.BehaviorNotificationComment -( - NotificationNumber INT NOT NULL, - NotificationDateTm DATETIME NOT NULL, - BehaviorId INT NOT NULL, - NotificationStatus INT NOT NULL, - CaseNumber INT NULL, - NotificationComments VARCHAR(255) NULL, - SuspiciousBehavior CHAR(1) NOT NULL, - Sib CHAR(1) NOT NULL, - HousingType INT NULL, - Behavior VARCHAR(30) NOT NULL, - AbnormalFlag CHAR(1) NOT NULL, - BehaviorDescription VARCHAR(200) NOT NULL, - BehaviorCategory VARCHAR(40) NULL, - BehaviorComments VARCHAR(200) NULL, - Container ENTITYID NOT NULL, - Created DATETIME NULL, - CreatedBy USERID NULL, - ModifiedBy USERID NULL, - Modified DATETIME NULL, - DiCreatedBy USERID NULL, - DiCreated DATETIME NULL, - DiModifiedBy USERID NULL, - DiModified DATETIME NULL, - ObjectId UNIQUEIDENTIFIER NULL, - CONSTRAINT PK_BehaviorNotiComment PRIMARY KEY (NotificationNumber) + CONSTRAINT PK_snprc_NEWANIMALDATA PRIMARY KEY (Id) ); --- generated w/o issue from SSMS srr 04.10.20 --- schemas/dbscripts/sqlserver/snprc_ehr-20.003-20.004.sql --- changed pk to tid idenity -EXEC core.fn_dropifexists 'BehaviorNotificationComment','snprc_ehr', 'TABLE'; - - CREATE TABLE snprc_ehr.BehaviorNotificationComment ( NotificationNumber INT NOT NULL, @@ -1254,12 +610,10 @@ CREATE TABLE snprc_ehr.BehaviorNotificationComment DiModifiedBy USERID NULL, DiModified DATETIME NULL, tid INT IDENTITY, - objectid UNIQUEIDENTIFIER NULL - CONSTRAINT PK_BehaviorNotiComment_oid PRIMARY KEY (tid) -); - -EXEC core.fn_dropifexists 'ValidDefaultIACUC','snprc_ehr', 'TABLE'; + objectid UNIQUEIDENTIFIER NULL DEFAULT NEWID(), + CONSTRAINT PK_BehaviorNotiComment_oid PRIMARY KEY (tid) +); CREATE TABLE snprc_ehr.validDefaultIACUC ( @@ -1277,143 +631,11 @@ CREATE TABLE snprc_ehr.validDefaultIACUC DiCreated DATETIME NULL, DiModifiedBy USERID NULL, DiModified DATETIME NULL, - ObjectId UNIQUEIDENTIFIER NOT NULL - CONSTRAINT PK_ValidDefaultIACUC PRIMARY KEY (WorkingIacuc) -); - -/******************************************************* -New table to load data from new animal wizard. - Data will be ETLed back down to animal database - -srr 01.28.2020 - - May not use all columns. - I defaulted to nvarchar(400) if unsure of datatype. - May need to change datatypes to match those in lookup tables. - -srr 03.09.2020 version 20.003 - Changed to ints for values that have a dropdown. - No Real data, therefore dropping table and re-recreating. -srr 06.08.2020 version 20.007 - Added column for BirthCode. - 1 DOB accurate - 2 Month-Year accurate - 3 Year accurate - No Real data, therefore dropping table and re-recreating. -*******************************************************/ - -EXEC core.fn_dropifexists 'NewAnimalData','snprc_ehr', 'TABLE'; - - -CREATE TABLE snprc_ehr.NewAnimalData -( - Id nvarchar(32) NOT NULL, - BirthDate datetime NULL, - BirthCode int NULL, - AcquisitionType int NULL, - AcqDate datetime NULL, - Gender nvarchar(10) NULL, - Sire nvarchar(32) NULL, - Dam nvarchar(32) NULL, - Species nvarchar(3) NULL, - Colony int NULL, - AnimalAccount int NULL, - OwnerInstitution int NULL, - ResponsibleInstitution int NULL, - Room int NULL, - Cage int NULL, - Diet int NULL, - Pedigree int NULL, - IACUC int NULL, - Created datetime NULL, - CreatedBy dbo.USERID NULL, - Modified datetime NULL, - ModifiedBy dbo.USERID NULL, - Container dbo.ENTITYID NOT NULL, - objectid uniqueidentifier NOT NULL, - CONSTRAINT PK_snprc_NEWANIMALDATA PRIMARY KEY (Id) -); - -/****************************************************** -Change ValidDiet PK -Script generated by SSMS -srr 06.16.2020 -******************************************************/ -ALTER TABLE snprc_ehr.ValidDiet - DROP CONSTRAINT PK_ValidDiet - GO -ALTER TABLE snprc_ehr.ValidDiet ADD CONSTRAINT - PK_ValidDiet PRIMARY KEY CLUSTERED -( - Diet -) - -GO -ALTER TABLE snprc_ehr.ValidDiet SET (LOCK_ESCALATION = TABLE) -GO - -/******************************************************* -New table to load data from new animal wizard. - Data will be ETLed back down to animal database - -srr 01.28.2020 + ObjectId UNIQUEIDENTIFIER NOT NULL DEFAULT NEWID(), - May not use all columns. - I defaulted to nvarchar(400) if unsure of datatype. - May need to change datatypes to match those in lookup tables. - -srr 03.09.2020 version 20.003 - Changed to ints for values that have a dropdown. - No Real data, therefore dropping table and re-recreating. -srr 06.08.2020 version 20.007 - Added column for BirthCode. - 1 DOB accurate - 2 Month-Year accurate - 3 Year accurate - No Real data, therefore dropping table and re-recreating. - - srr 06.24.2020 - Changed Diet, AnimalAccount and IACUC to strings -*******************************************************/ - -EXEC core.fn_dropifexists 'NewAnimalData','snprc_ehr', 'TABLE'; - - -CREATE TABLE snprc_ehr.NewAnimalData -( - Id nvarchar(32) NOT NULL, - BirthDate datetime NULL, - BirthCode int NULL, - AcquisitionType int NULL, - AcqDate datetime NULL, - Gender nvarchar(10) NULL, - Sire nvarchar(32) NULL, - Dam nvarchar(32) NULL, - Species nvarchar(3) NULL, - Colony int NULL, - AnimalAccount nvarchar(16) NULL, - OwnerInstitution int NULL, - ResponsibleInstitution int NULL, - Room int NULL, - Cage int NULL, - Diet nvarchar(20) NULL, - Pedigree int NULL, - IACUC nvarchar(200) NULL, - Created datetime NULL, - CreatedBy dbo.USERID NULL, - Modified datetime NULL, - ModifiedBy dbo.USERID NULL, - Container dbo.ENTITYID NOT NULL, - objectid uniqueidentifier NOT NULL, - CONSTRAINT PK_snprc_NEWANIMALDATA PRIMARY KEY (Id) + CONSTRAINT PK_ValidDefaultIACUC PRIMARY KEY (WorkingIacuc) ); -/******************************************************* -Counters table for SNPRC_EHRSequencer - Creator: thawkins - Date: 08/21/2020 -*******************************************************/ - CREATE TABLE snprc_ehr.Counters ( RowId INT IDENTITY(1,1) NOT NULL, @@ -1429,12 +651,6 @@ GO CREATE UNIQUE INDEX idx_snprc_container_NameValue ON snprc_ehr.Counters (Container, Name, Value); GO -/* - * New table to track number of animals allowed and assigned to IACUC protocols - * 9/25/2020 tjh - */ -EXEC core.fn_dropifexists 'IacucAssignmentStats','snprc_ehr', 'TABLE'; - CREATE TABLE snprc_ehr.IacucAssignmentStats ( ThreeYearPeriod INT NOT NULL, @@ -1451,16 +667,11 @@ CREATE TABLE snprc_ehr.IacucAssignmentStats diModified DATETIME, diCreatedBy USERID, diModifiedBy USERID, - Container entityId NOT NULL + Container entityId NOT NULL, + CONSTRAINT PK_IacucAssignmentStats PRIMARY KEY CLUSTERED ( WorkingIacuc ASC, ThreeYearPeriod ASC ), CONSTRAINT FK_IacucAssignmentsStats_container FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) -) - -/* - * New table to configure external reports - * - */ -EXEC core.fn_dropifexists 'ExternalReports','snprc_ehr', 'TABLE'; +); CREATE TABLE snprc_ehr.ExternalReports ( @@ -1474,266 +685,103 @@ CREATE TABLE snprc_ehr.ExternalReports Created DATETIME DEFAULT GETDATE(), Modified DATETIME DEFAULT GETDATE(), CreatedBy USERID, - ModifiedBy USERID - CONSTRAINT PK_ExternalReports PRIMARY KEY CLUSTERED ( Id ASC) -) - -/* 21.xxx SQL scripts */ - -/******************************************************* -New table to load data from new animal wizard. - Data will be ETLed back down to animal database + ModifiedBy USERID, -srr 01.28.2020 - - May not use all columns. - I defaulted to nvarchar(400) if unsure of datatype. - May need to change datatypes to match those in lookup tables. - -srr 03.09.2020 version 20.003 - Changed to ints for values that have a dropdown. - No Real data, therefore dropping table and re-recreating. -srr 06.08.2020 version 20.007 - Added column for BirthCode. - 1 DOB accurate - 2 Month-Year accurate - 3 Year accurate - No Real data, therefore dropping table and re-recreating. - - srr 06.24.2020 - Changed Diet, AnimalAccount and IACUC to strings - srr 04012021 version 21.000 -*******************************************************/ - -EXEC core.fn_dropifexists 'NewAnimalData','snprc_ehr', 'TABLE'; - - -CREATE TABLE snprc_ehr.NewAnimalData -( - Id nvarchar(32) NOT NULL, - BirthDate datetime NULL, - BirthCode int NULL, - AcquisitionType int NULL, - AcqDate datetime NULL, - SourceInstitutionLocation nvarchar(10) NULL, - Gender nvarchar(10) NULL, - Sire nvarchar(32) NULL, - Dam nvarchar(32) NULL, - Species nvarchar(3) NULL, - Colony int NULL, - AnimalAccount nvarchar(16) NULL, - OwnerInstitution int NULL, - ResponsibleInstitution int NULL, - Room int NULL, - Cage int NULL, - Diet nvarchar(20) NULL, - Pedigree int NULL, - IACUC nvarchar(200) NULL, - Created datetime NULL, - CreatedBy dbo.USERID NULL, - Modified datetime NULL, - ModifiedBy dbo.USERID NULL, - Container dbo.ENTITYID NOT NULL, - objectid uniqueidentifier NOT NULL, - CONSTRAINT PK_snprc_NEWANIMALDATA PRIMARY KEY (Id) + CONSTRAINT PK_ExternalReports PRIMARY KEY CLUSTERED ( Id ASC) ); -/* 22.xxx SQL scripts */ - -/******************************************************* -New tables for Orchard clinical path data integration via HL7 -05/19/22 - Terry Hawkins -*/ - -/* - Drop tables if they already exist -*/ - -EXEC core.fn_dropifexists @objname = 'HL7_IMPORT_LOG',@objschema = 'snprc_ehr', @objtype = 'TABLE'; -EXEC core.fn_dropifexists @objname = 'HL7_OBX',@objschema = 'snprc_ehr', @objtype = 'TABLE'; -EXEC core.fn_dropifexists @objname = 'HL7_NTE',@objschema = 'snprc_ehr', @objtype = 'TABLE'; -EXEC core.fn_dropifexists @objname = 'HL7_OBR',@objschema = 'snprc_ehr', @objtype = 'TABLE'; -EXEC core.fn_dropifexists @objname = 'HL7_PID',@objschema = 'snprc_ehr', @objtype = 'TABLE'; -EXEC core.fn_dropifexists @objname = 'HL7_PV1',@objschema = 'snprc_ehr', @objtype = 'TABLE'; -EXEC core.fn_dropifexists @objname = 'HL7_ORC',@objschema = 'snprc_ehr', @objtype = 'TABLE'; -EXEC core.fn_dropifexists @objname = 'HL7_MSH',@objschema = 'snprc_ehr', @objtype = 'TABLE'; -EXEC core.fn_dropifexists @objname = 'f_isNumeric',@objschema = 'snprc_ehr', @objtype = 'FUNCTION'; - -CREATE TABLE [snprc_ehr].[HL7_MSH]( +CREATE TABLE [snprc_ehr].[HL7_IMPORT_LOG]( + [TID] [NUMERIC](18, 0) IDENTITY(1,1) NOT NULL, [MESSAGE_ID] [VARCHAR](50) NOT NULL, - [IDX] [INT] NOT NULL, - [SENDING_APPLICATION] [VARCHAR](50) NULL, - [SENDING_FACILITY] [VARCHAR](50) NULL, - [RECEIVING_APPLICATION] [VARCHAR](50) NULL, - [RECEIVING_FACILITY] [VARCHAR](50) NULL, - [MESSAGE_TYPE] [VARCHAR](50) NULL, -- MSH_F9_C1 - [TRIGGER_EVENT_ID][VARCHAR](50) NULL, -- MSH_F9_C2 + [OBSERVATION_DATE_TM] [DATETIME] NULL, [MESSAGE_CONTROL_ID] [VARCHAR](50) NULL, - [MESSAGE_DATE_TM] [DATETIME] NULL, + [IMPORT_STATUS] [INT] NOT NULL, + [RESULT_STATUS] [VARCHAR](10) NULL, + [PATIENT_ID] [VARCHAR](20) NULL, + [SPECIES] [VARCHAR](50) NULL, + [HL7_MESSAGE_TEXT] [VARCHAR](MAX) NULL, + [IMPORT_TEXT] [VARCHAR](MAX) NULL, [Container] [dbo].[ENTITYID] NOT NULL, - [OBJECT_ID] [UNIQUEIDENTIFIER] NOT NULL, - [USER_NAME] [VARCHAR](128) NOT NULL, - [ENTRY_DATE_TM] [DATETIME] NOT NULL, + [OBJECT_ID] [UNIQUEIDENTIFIER] NOT NULL DEFAULT NEWID(), + [USER_NAME] [VARCHAR](128) NOT NULL DEFAULT USER_NAME(), + [ENTRY_DATE_TM] [DATETIME] NOT NULL DEFAULT GETDATE(), [TIMESTAMP] [TIMESTAMP] NULL, - CONSTRAINT [PK_HL7_MSH] PRIMARY KEY CLUSTERED + CONSTRAINT [PK_HL7_IMPORT_LOG] PRIMARY KEY CLUSTERED ( - [MESSAGE_ID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) - ) - GO - -ALTER TABLE [snprc_ehr].[HL7_MSH] ADD CONSTRAINT [DF_HL7_MSH_OBJECT_ID] DEFAULT (NEWID()) FOR [OBJECT_ID] - GO - -ALTER TABLE [snprc_ehr].[HL7_MSH] ADD CONSTRAINT [DF_HL7_MSH_USER] DEFAULT (USER_NAME()) FOR [USER_NAME] - GO - -ALTER TABLE [snprc_ehr].[HL7_MSH] ADD CONSTRAINT [DF_HL7_MSH_ENTRY] DEFAULT (GETDATE()) FOR [ENTRY_DATE_TM] - GO +[TID] ASC +) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON), + CONSTRAINT [CKC_HL7_IMPORT_LOG_OBSERVATION_DATE] CHECK (([OBSERVATION_DATE_TM] IS NULL OR [OBSERVATION_DATE_TM]<=GETDATE())) + ); +GO -ALTER TABLE [snprc_ehr].[HL7_MSH] WITH CHECK ADD CONSTRAINT [FK_HL7_MSH_container] FOREIGN KEY([Container]) - REFERENCES [core].[Containers] ([EntityId]) - GO +ALTER TABLE [snprc_ehr].[HL7_IMPORT_LOG] WITH CHECK ADD CONSTRAINT [FK_HL7_IMPORT_LOG_container] FOREIGN KEY([Container]) REFERENCES [core].[Containers] ([EntityId]); +GO -CREATE TABLE [snprc_ehr].[HL7_PID]( +CREATE TABLE [snprc_ehr].[HL7_OBX]( [MESSAGE_ID] [VARCHAR](50) NOT NULL, [IDX] [INT] NOT NULL, - [SET_ID] [VARCHAR](20) NULL, -- F1_C1 - [PATIENT_ID_EXTERNAL] [VARCHAR](20) NULL, -- F2_C1 - [PATIENT_ID_INTERNAL] [VARCHAR](20) NULL, -- F3_C1 - [BIRTHDATE] [DATETIME] NULL, --F7_C1 - [SEX] [VARCHAR] (20) NULL, -- F8_C1 - [BREED] [VARCHAR] (50) NULL, -- arc_species_code - F10_C1 (Race) - [SPECIES] [VARCHAR] (50) NULL, -- common name - F22_C1 (Ethnic Group) - [ACCOUNT_NUMBER] [VARCHAR] (50) NULL, --F18_C1 - [DEATH_DATE] [VARCHAR] (50) NULL, -- F29_C1 + [OBR_OBJECT_ID] [UNIQUEIDENTIFIER] NOT NULL, + [SET_ID] [VARCHAR](20) NOT NULL, + [OBR_SET_ID] [VARCHAR](20) NOT NULL, + [VALUE_TYPE] [VARCHAR](10) NULL, + [TEST_ID] [VARCHAR](20) NULL, + [TEST_NAME] [VARCHAR](50) NULL, + [serviceTestId] [UNIQUEIDENTIFIER] NULL, + [QUALITATIVE_RESULT] [VARCHAR](MAX) NULL, + [RESULT] [VARCHAR](MAX) NULL, + [UNITS] [VARCHAR](20) NULL, + [REFERENCE_RANGE] [VARCHAR](60) NULL, + [ABNORMAL_FLAGS] [VARCHAR](10) NULL, + [RESULT_STATUS] [VARCHAR](10) NULL, [Container] [dbo].[ENTITYID] NOT NULL, - [OBJECT_ID] [UNIQUEIDENTIFIER] NOT NULL, - [USER_NAME] [VARCHAR](128) NOT NULL, - [ENTRY_DATE_TM] [DATETIME] NOT NULL, + [OBJECT_ID] [UNIQUEIDENTIFIER] NOT NULL DEFAULT NEWID(), + [USER_NAME] [VARCHAR](128) NOT NULL DEFAULT USER_NAME(), + [ENTRY_DATE_TM] [DATETIME] NOT NULL DEFAULT GETDATE(), [TIMESTAMP] [TIMESTAMP] NULL, - CONSTRAINT [PK_HL7_PID] PRIMARY KEY CLUSTERED + CONSTRAINT [PK_HL7_OBX] PRIMARY KEY CLUSTERED ( -[MESSAGE_ID] ASC, -[IDX] -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) - ) - GO - -ALTER TABLE [snprc_ehr].[HL7_PID] ADD CONSTRAINT [DF_HL7_PID_OBJECT_ID] DEFAULT (NEWID()) FOR [OBJECT_ID] - GO - -ALTER TABLE [snprc_ehr].[HL7_PID] ADD CONSTRAINT [DF_HL7_PID_USER] DEFAULT (USER_NAME()) FOR [USER_NAME] - GO - -ALTER TABLE [snprc_ehr].[HL7_PID] ADD CONSTRAINT [DF_HL7_PID_ENTRY] DEFAULT (GETDATE()) FOR [ENTRY_DATE_TM] - GO - -ALTER TABLE [snprc_ehr].[HL7_PID] WITH CHECK ADD CONSTRAINT [FK_PID_REF_MSH] FOREIGN KEY([MESSAGE_ID]) - REFERENCES [snprc_ehr].[HL7_MSH] ([MESSAGE_ID]) - GO + [OBJECT_ID] +) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +); +GO -CREATE NONCLUSTERED INDEX [IDX_HL7_PID_ID] ON [snprc_ehr].[HL7_PID] +CREATE NONCLUSTERED INDEX [IDX_HL7_OBX_OBR_OBJ_ID] ON [snprc_ehr].[HL7_OBX] ( - [PATIENT_ID_EXTERNAL] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] + [OBR_OBJECT_ID] ASC +) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]; GO -ALTER TABLE [snprc_ehr].[HL7_PID] CHECK CONSTRAINT [FK_PID_REF_MSH] - GO - -ALTER TABLE [snprc_ehr].[HL7_PID] WITH CHECK ADD CONSTRAINT [FK_HL7_PID_container] FOREIGN KEY([Container]) - REFERENCES [core].[Containers] ([EntityId]) - GO +ALTER TABLE [snprc_ehr].[HL7_OBX] WITH CHECK ADD CONSTRAINT [FK_HL7_OBX_container] FOREIGN KEY([Container]) REFERENCES [core].[Containers] ([EntityId]); +GO -CREATE TABLE [snprc_ehr].[HL7_PV1]( +CREATE TABLE [snprc_ehr].[HL7_NTE]( [MESSAGE_ID] [VARCHAR](50) NOT NULL, [IDX] [INT] NOT NULL, - [SET_ID] [VARCHAR](20) NULL, -- F1_C1 - [ADMISSION_TYPE] [VARCHAR] (20) NULL, --F4_C1 - [ATTENDING_DOCTOR_LAST] [VARCHAR] (50) NULL, -- F7_C2 - [ATTENDING_DOCTOR_FIRST] [VARCHAR] (50) NULL, -- F7_C3 - [VISIT_NUMBER] [VARCHAR] (20) NULL, -- F19_C1 - [CHARGE_NUMBER] [VARCHAR] (20) NULL, -- F22_C1 (Courtesy Code) - [ADMIT_DATE] [DATETIME] NULL, --F44_C1 + [OBR_OBJECT_ID] [UNIQUEIDENTIFIER] NOT NULL, + [SET_ID] [VARCHAR](20) NOT NULL, + [OBR_SET_ID] [VARCHAR](20) NOT NULL, + [COMMENT] [VARCHAR](MAX) NULL, [Container] [dbo].[ENTITYID] NOT NULL, - [OBJECT_ID] [UNIQUEIDENTIFIER] NOT NULL, - [USER_NAME] [VARCHAR](128) NOT NULL, - [ENTRY_DATE_TM] [DATETIME] NOT NULL, + [OBJECT_ID] [UNIQUEIDENTIFIER] NOT NULL DEFAULT NEWID(), + [USER_NAME] [VARCHAR](128) NOT NULL DEFAULT USER_NAME(), + [ENTRY_DATE_TM] [DATETIME] NOT NULL DEFAULT GETDATE(), [TIMESTAMP] [TIMESTAMP] NULL, - CONSTRAINT [PK_HL7_PV1] PRIMARY KEY CLUSTERED + CONSTRAINT [PK_HL7_NTE] PRIMARY KEY CLUSTERED ( - [MESSAGE_ID] ASC, -[IDX] -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) - ) - GO - -ALTER TABLE [snprc_ehr].[HL7_PV1] ADD CONSTRAINT [DF_HL7_PV1_OBJECT_ID] DEFAULT (NEWID()) FOR [OBJECT_ID] - GO - -ALTER TABLE [snprc_ehr].[HL7_PV1] ADD CONSTRAINT [DF_HL7_PV1_USER] DEFAULT (USER_NAME()) FOR [USER_NAME] - GO - -ALTER TABLE [snprc_ehr].[HL7_PV1] ADD CONSTRAINT [DF_HL7_PV1_ENTRY] DEFAULT (GETDATE()) FOR [ENTRY_DATE_TM] - GO - -ALTER TABLE [snprc_ehr].[HL7_PV1] WITH CHECK ADD CONSTRAINT [FK_PV1_REF_MSH] FOREIGN KEY([MESSAGE_ID]) - REFERENCES [snprc_ehr].[HL7_MSH] ([MESSAGE_ID]) - GO + [OBJECT_ID] ASC -ALTER TABLE [snprc_ehr].[HL7_PV1] CHECK CONSTRAINT [FK_PV1_REF_MSH] - GO +) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +); +GO -ALTER TABLE [snprc_ehr].[HL7_PV1] WITH CHECK ADD CONSTRAINT [FK_HL7_PV1_container] FOREIGN KEY([Container]) - REFERENCES [core].[Containers] ([EntityId]) - GO +ALTER TABLE [snprc_ehr].[HL7_NTE] WITH CHECK ADD CONSTRAINT [FK_HL7_NTE_container] FOREIGN KEY([Container]) REFERENCES [core].[Containers] ([EntityId]); +GO -CREATE TABLE [snprc_ehr].[HL7_ORC]( - [MESSAGE_ID] [VARCHAR](50) NOT NULL, - [IDX] [INT] NOT NULL, - [ORDER_CONTROL_CODE] [VARCHAR](20) NULL, -- F1_C1 - [FILLER_ORDER_NUMBER] [VARCHAR] (22) NULL, --F3_C1 - [ENTERED_BY_LAST] [VARCHAR] (50) NULL, -- F10_C2 - [ENTERED_BY_FIRST] [VARCHAR] (50) NULL, -- F10_C3 - [VERIFIED_BY_LAST] [VARCHAR] (50) NULL, -- F11_C2 - [VERIFIED_BY_FIRST] [VARCHAR] (50) NULL, -- F11_C3 - [ORDER_PROVIDER_LAST] [VARCHAR] (50) NULL, -- F12_C2 - [ORDER_PROVIDER_FIRST] [VARCHAR] (50) NULL, -- F12_C3 - [CALLBACK_EMAIL] [VARCHAR](50) NULL, -- F14_C3 - [ORDER_DATE] [DATETIME] NULL, -- F15_C1 - [Container] [dbo].[ENTITYID] NOT NULL, - [OBJECT_ID] [UNIQUEIDENTIFIER] NOT NULL, - [USER_NAME] [VARCHAR](128) NOT NULL, - [ENTRY_DATE_TM] [DATETIME] NOT NULL, - [TIMESTAMP] [TIMESTAMP] NULL, - CONSTRAINT [PK_HL7_ORC] PRIMARY KEY CLUSTERED +CREATE NONCLUSTERED INDEX [IDX_HL7_NTE_OBR_OBJ_ID] ON [snprc_ehr].[HL7_NTE] ( - [MESSAGE_ID] ASC, -[IDX] -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) - ) - GO - -ALTER TABLE [snprc_ehr].[HL7_ORC] ADD CONSTRAINT [DF_HL7_ORC_OBJECT_ID] DEFAULT (NEWID()) FOR [OBJECT_ID] - GO - -ALTER TABLE [snprc_ehr].[HL7_ORC] ADD CONSTRAINT [DF_HL7_ORC_USER] DEFAULT (USER_NAME()) FOR [USER_NAME] - GO - -ALTER TABLE [snprc_ehr].[HL7_ORC] ADD CONSTRAINT [DF_HL7_ORC_ENTRY] DEFAULT (GETDATE()) FOR [ENTRY_DATE_TM] - GO - -ALTER TABLE [snprc_ehr].[HL7_ORC] WITH CHECK ADD CONSTRAINT [FK_ORC_REF_MSH] FOREIGN KEY([MESSAGE_ID]) - REFERENCES [snprc_ehr].[HL7_MSH] ([MESSAGE_ID]) - GO - -ALTER TABLE [snprc_ehr].[HL7_ORC] CHECK CONSTRAINT [FK_ORC_REF_MSH] - GO - -ALTER TABLE [snprc_ehr].[HL7_ORC] WITH CHECK ADD CONSTRAINT [FK_HL7_ORC_container] FOREIGN KEY([Container]) - REFERENCES [core].[Containers] ([EntityId]) - GO + [OBR_OBJECT_ID] ASC +) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]; +GO CREATE TABLE [snprc_ehr].[HL7_OBR]( [MESSAGE_ID] [VARCHAR](50) NOT NULL, @@ -1748,369 +796,290 @@ CREATE TABLE [snprc_ehr].[HL7_OBR]( [SET_ID] [VARCHAR](20) NOT NULL, [SPECIMEN_NUM] [VARCHAR](50) NULL, [PROCEDURE_ID] [VARCHAR](20) NULL, - [PROCEDURE_NAME] [VARCHAR](50) NULL, + [PROCEDURE_NAME] [VARCHAR](200) NULL, -- Increased size from VARCHAR(50) [PRIORITY] [VARCHAR](10) NULL, [RESULT_STATUS] [VARCHAR](10) NULL, [TECHNICIAN_FIRST_NAME] [VARCHAR](50) NULL, [TECHNICIAN_LAST_NAME] [VARCHAR](50) NULL, [CHARGE_ID] [INT] NULL, [Container] [dbo].[ENTITYID] NOT NULL, - [OBJECT_ID] [UNIQUEIDENTIFIER] NOT NULL, - [USER_NAME] [VARCHAR](128) NOT NULL, - [ENTRY_DATE_TM] [DATETIME] NOT NULL, + [OBJECT_ID] [UNIQUEIDENTIFIER] NOT NULL DEFAULT NEWID(), + [USER_NAME] [VARCHAR](128) NOT NULL DEFAULT USER_NAME(), + [ENTRY_DATE_TM] [DATETIME] NOT NULL DEFAULT GETDATE(), [TIMESTAMP] [TIMESTAMP] NULL, CONSTRAINT [PK_HL7_OBR] PRIMARY KEY CLUSTERED ( -[OBJECT_ID] -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) + [OBJECT_ID] +) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON), + CONSTRAINT [CKC_ENTRY_DATE_TM_HL7_OBR_OBR] CHECK (([ENTRY_DATE_TM]<=GETDATE())) +); GO -ALTER TABLE [snprc_ehr].[HL7_OBR] ADD CONSTRAINT [DF_HL7_OBR_OBJECT_ID] DEFAULT (NEWID()) FOR [OBJECT_ID] - GO - -ALTER TABLE [snprc_ehr].[HL7_OBR] ADD CONSTRAINT [DF_HL7_OBR_USER] DEFAULT (USER_NAME()) FOR [USER_NAME] - GO - -ALTER TABLE [snprc_ehr].[HL7_OBR] ADD CONSTRAINT [DF_HL7_OBR_ENTRY] DEFAULT (GETDATE()) FOR [ENTRY_DATE_TM] - GO - -ALTER TABLE [snprc_ehr].[HL7_OBR] WITH CHECK ADD CONSTRAINT [CKC_ENTRY_DATE_TM_HL7_OBR_OBR] CHECK (([ENTRY_DATE_TM]<=GETDATE())) - GO +CREATE NONCLUSTERED INDEX [IDX_HL7_OBR_ID_DATE] ON [snprc_ehr].[HL7_OBR] +( + [ANIMAL_ID] ASC, + [OBSERVATION_DATE_TM] ASC +) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]; +GO -ALTER TABLE [snprc_ehr].[HL7_OBR] CHECK CONSTRAINT [CKC_ENTRY_DATE_TM_HL7_OBR_OBR] - GO +ALTER TABLE [snprc_ehr].[HL7_OBR] WITH CHECK ADD CONSTRAINT [FK_HL7_OBR_container] FOREIGN KEY([Container]) REFERENCES [core].[Containers] ([EntityId]); +GO -ALTER TABLE [snprc_ehr].[HL7_OBR] WITH CHECK ADD CONSTRAINT [FK_OBR_REF_MSH] FOREIGN KEY([MESSAGE_ID]) - REFERENCES [snprc_ehr].[HL7_MSH] ([MESSAGE_ID]) - GO +ALTER TABLE [snprc_ehr].[HL7_OBX] WITH CHECK ADD CONSTRAINT [FK_OBX_REF_OBR] FOREIGN KEY([OBR_OBJECT_ID]) REFERENCES [snprc_ehr].[HL7_OBR] ([OBJECT_ID]); +GO -ALTER TABLE [snprc_ehr].[HL7_OBR] CHECK CONSTRAINT [FK_OBR_REF_MSH] - GO +ALTER TABLE [snprc_ehr].[HL7_OBX] CHECK CONSTRAINT [FK_OBX_REF_OBR]; +GO -CREATE NONCLUSTERED INDEX [IDX_HL7_OBR_ID_DATE] ON [snprc_ehr].[HL7_OBR] -( - [ANIMAL_ID] ASC, - [OBSERVATION_DATE_TM] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] +ALTER TABLE [snprc_ehr].[HL7_NTE] WITH CHECK ADD CONSTRAINT [FK_NTE_REF_OBR] FOREIGN KEY([OBR_OBJECT_ID]) REFERENCES [snprc_ehr].[HL7_OBR] ([OBJECT_ID]); GO -ALTER TABLE [snprc_ehr].[HL7_OBR] WITH CHECK ADD CONSTRAINT [FK_HL7_OBR_container] FOREIGN KEY([Container]) - REFERENCES [core].[Containers] ([EntityId]) - GO +ALTER TABLE [snprc_ehr].[HL7_NTE] CHECK CONSTRAINT [FK_NTE_REF_OBR]; +GO -CREATE TABLE [snprc_ehr].[HL7_OBX]( +CREATE TABLE [snprc_ehr].[HL7_PID]( [MESSAGE_ID] [VARCHAR](50) NOT NULL, [IDX] [INT] NOT NULL, - [OBR_OBJECT_ID] [UNIQUEIDENTIFIER] NOT NULL, - [SET_ID] [VARCHAR](20) NOT NULL, - [OBR_SET_ID] [VARCHAR](20) NOT NULL, - [VALUE_TYPE] [VARCHAR](10) NULL, - [TEST_ID] [VARCHAR](20) NULL, - [TEST_NAME] [VARCHAR](50) NULL, - [serviceTestId] [UNIQUEIDENTIFIER] NULL, - [QUALITATIVE_RESULT] [VARCHAR](MAX) NULL, - [RESULT] [VARCHAR](MAX) NULL, - [UNITS] [VARCHAR](20) NULL, - [REFERENCE_RANGE] [VARCHAR](60) NULL, - [ABNORMAL_FLAGS] [VARCHAR](10) NULL, - [RESULT_STATUS] [VARCHAR](10) NULL, + [SET_ID] [VARCHAR](20) NULL, -- F1_C1 + [PATIENT_ID_EXTERNAL] [VARCHAR](20) NULL, -- F2_C1 + [PATIENT_ID_INTERNAL] [VARCHAR](20) NULL, -- F3_C1 + [BIRTHDATE] [DATETIME] NULL, --F7_C1 + [SEX] [VARCHAR] (20) NULL, -- F8_C1 + [BREED] [VARCHAR] (50) NULL, -- arc_species_code - F10_C1 (Race) + [SPECIES] [VARCHAR] (50) NULL, -- common name - F22_C1 (Ethnic Group) + [ACCOUNT_NUMBER] [VARCHAR] (50) NULL, --F18_C1 + [DEATH_DATE] [VARCHAR] (50) NULL, -- F29_C1 [Container] [dbo].[ENTITYID] NOT NULL, - [OBJECT_ID] [UNIQUEIDENTIFIER] NOT NULL, - [USER_NAME] [VARCHAR](128) NOT NULL, - [ENTRY_DATE_TM] [DATETIME] NOT NULL, + [OBJECT_ID] [UNIQUEIDENTIFIER] NOT NULL DEFAULT NEWID(), + [USER_NAME] [VARCHAR](128) NOT NULL DEFAULT USER_NAME(), + [ENTRY_DATE_TM] [DATETIME] NOT NULL DEFAULT GETDATE(), [TIMESTAMP] [TIMESTAMP] NULL, - CONSTRAINT [PK_HL7_OBX] PRIMARY KEY CLUSTERED + CONSTRAINT [PK_HL7_PID] PRIMARY KEY CLUSTERED ( - [OBJECT_ID] -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) + [MESSAGE_ID] ASC, + [IDX] +) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) + ); GO -ALTER TABLE [snprc_ehr].[HL7_OBX] ADD CONSTRAINT [DF_HL7_OBX_OBJECT_ID] DEFAULT (NEWID()) FOR [OBJECT_ID] - GO - -ALTER TABLE [snprc_ehr].[HL7_OBX] ADD CONSTRAINT [DF_HL7_OBX_USER] DEFAULT (USER_NAME()) FOR [USER_NAME] - GO - -ALTER TABLE [snprc_ehr].[HL7_OBX] ADD CONSTRAINT [DF_HL7_OBX_ENTRY] DEFAULT (GETDATE()) FOR [ENTRY_DATE_TM] - GO - -ALTER TABLE [snprc_ehr].[HL7_OBX] WITH CHECK ADD CONSTRAINT [FK_OBX_REF_OBR] FOREIGN KEY([OBR_OBJECT_ID]) - REFERENCES [snprc_ehr].[HL7_OBR] ([OBJECT_ID]) - GO - -ALTER TABLE [snprc_ehr].[HL7_OBX] CHECK CONSTRAINT [FK_OBX_REF_OBR] - GO - -CREATE NONCLUSTERED INDEX [IDX_HL7_OBX_OBR_OBJ_ID] ON [snprc_ehr].[HL7_OBX] +CREATE NONCLUSTERED INDEX [IDX_HL7_PID_ID] ON [snprc_ehr].[HL7_PID] ( - [OBR_OBJECT_ID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] + [PATIENT_ID_EXTERNAL] ASC +) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]; GO -ALTER TABLE [snprc_ehr].[HL7_OBX] WITH CHECK ADD CONSTRAINT [FK_HL7_OBX_container] FOREIGN KEY([Container]) - REFERENCES [core].[Containers] ([EntityId]) - GO +ALTER TABLE [snprc_ehr].[HL7_PID] WITH CHECK ADD CONSTRAINT [FK_HL7_PID_container] FOREIGN KEY([Container]) REFERENCES [core].[Containers] ([EntityId]); +GO -CREATE TABLE [snprc_ehr].[HL7_NTE]( +CREATE TABLE [snprc_ehr].[HL7_PV1]( [MESSAGE_ID] [VARCHAR](50) NOT NULL, [IDX] [INT] NOT NULL, - [OBR_OBJECT_ID] [UNIQUEIDENTIFIER] NOT NULL, - [SET_ID] [VARCHAR](20) NOT NULL, - [OBR_SET_ID] [VARCHAR](20) NOT NULL, - [COMMENT] [VARCHAR](MAX) NULL, + [SET_ID] [VARCHAR](20) NULL, -- F1_C1 + [ADMISSION_TYPE] [VARCHAR] (20) NULL, --F4_C1 + [ATTENDING_DOCTOR_LAST] [VARCHAR] (50) NULL, -- F7_C2 + [ATTENDING_DOCTOR_FIRST] [VARCHAR] (50) NULL, -- F7_C3 + [VISIT_NUMBER] [VARCHAR] (20) NULL, -- F19_C1 + [CHARGE_NUMBER] [VARCHAR] (20) NULL, -- F22_C1 (Courtesy Code) + [ADMIT_DATE] [DATETIME] NULL, --F44_C1 [Container] [dbo].[ENTITYID] NOT NULL, - [OBJECT_ID] [UNIQUEIDENTIFIER] NOT NULL, - [USER_NAME] [VARCHAR](128) NOT NULL, - [ENTRY_DATE_TM] [DATETIME] NOT NULL, + [OBJECT_ID] [UNIQUEIDENTIFIER] NOT NULL DEFAULT NEWID(), + [USER_NAME] [VARCHAR](128) NOT NULL DEFAULT USER_NAME(), + [ENTRY_DATE_TM] [DATETIME] NOT NULL DEFAULT GETDATE(), [TIMESTAMP] [TIMESTAMP] NULL, - CONSTRAINT [PK_HL7_NTE] PRIMARY KEY CLUSTERED + CONSTRAINT [PK_HL7_PV1] PRIMARY KEY CLUSTERED ( - [OBJECT_ID] ASC - -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) + [MESSAGE_ID] ASC, + [IDX] +) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) + ); GO -ALTER TABLE [snprc_ehr].[HL7_NTE] ADD CONSTRAINT [DF_HL7_NTE_OBJECT_ID] DEFAULT (NEWID()) FOR [OBJECT_ID] - GO - -ALTER TABLE [snprc_ehr].[HL7_NTE] ADD CONSTRAINT [DF_HL7_NTE_USER] DEFAULT (USER_NAME()) FOR [USER_NAME] - GO - -ALTER TABLE [snprc_ehr].[HL7_NTE] ADD CONSTRAINT [DF_HL7_NTE_ENTRY] DEFAULT (GETDATE()) FOR [ENTRY_DATE_TM] - GO - -ALTER TABLE [snprc_ehr].[HL7_NTE] WITH CHECK ADD CONSTRAINT [FK_NTE_REF_OBR] FOREIGN KEY([OBR_OBJECT_ID]) - REFERENCES [snprc_ehr].[HL7_OBR] ([OBJECT_ID]) - GO - -ALTER TABLE [snprc_ehr].[HL7_NTE] CHECK CONSTRAINT [FK_NTE_REF_OBR] - GO - -ALTER TABLE [snprc_ehr].[HL7_NTE] WITH CHECK ADD CONSTRAINT [FK_HL7_NTE_container] FOREIGN KEY([Container]) - REFERENCES [core].[Containers] ([EntityId]) - GO - -CREATE NONCLUSTERED INDEX [IDX_HL7_NTE_OBR_OBJ_ID] ON [snprc_ehr].[HL7_NTE] -( - [OBR_OBJECT_ID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] +ALTER TABLE [snprc_ehr].[HL7_PV1] WITH CHECK ADD CONSTRAINT [FK_HL7_PV1_container] FOREIGN KEY([Container]) REFERENCES [core].[Containers] ([EntityId]); GO -CREATE TABLE [snprc_ehr].[HL7_IMPORT_LOG]( - [TID] [NUMERIC](18, 0) IDENTITY(1,1) NOT NULL, +CREATE TABLE [snprc_ehr].[HL7_ORC]( [MESSAGE_ID] [VARCHAR](50) NOT NULL, - [OBSERVATION_DATE_TM] [DATETIME] NULL, - [MESSAGE_CONTROL_ID] [VARCHAR](50) NULL, - [IMPORT_STATUS] [INT] NOT NULL, - [RESULT_STATUS] [VARCHAR](10) NULL, - [PATIENT_ID] [VARCHAR](20) NULL, - [SPECIES] [VARCHAR](50) NULL, - [HL7_MESSAGE_TEXT] [VARCHAR](MAX) NULL, - [IMPORT_TEXT] [VARCHAR](MAX) NULL, + [IDX] [INT] NOT NULL, + [ORDER_CONTROL_CODE] [VARCHAR](20) NULL, -- F1_C1 + [FILLER_ORDER_NUMBER] [VARCHAR] (22) NULL, --F3_C1 + [ENTERED_BY_LAST] [VARCHAR] (50) NULL, -- F10_C2 + [ENTERED_BY_FIRST] [VARCHAR] (50) NULL, -- F10_C3 + [VERIFIED_BY_LAST] [VARCHAR] (50) NULL, -- F11_C2 + [VERIFIED_BY_FIRST] [VARCHAR] (50) NULL, -- F11_C3 + [ORDER_PROVIDER_LAST] [VARCHAR] (50) NULL, -- F12_C2 + [ORDER_PROVIDER_FIRST] [VARCHAR] (50) NULL, -- F12_C3 + [CALLBACK_EMAIL] [VARCHAR](50) NULL, -- F14_C3 + [ORDER_DATE] [DATETIME] NULL, -- F15_C1 [Container] [dbo].[ENTITYID] NOT NULL, - [OBJECT_ID] [UNIQUEIDENTIFIER] NOT NULL, - [USER_NAME] [VARCHAR](128) NOT NULL, - [ENTRY_DATE_TM] [DATETIME] NOT NULL, + [OBJECT_ID] [UNIQUEIDENTIFIER] NOT NULL DEFAULT NEWID(), + [USER_NAME] [VARCHAR](128) NOT NULL DEFAULT USER_NAME(), + [ENTRY_DATE_TM] [DATETIME] NOT NULL DEFAULT GETDATE(), [TIMESTAMP] [TIMESTAMP] NULL, - CONSTRAINT [PK_HL7_IMPORT_LOG] PRIMARY KEY CLUSTERED + CONSTRAINT [PK_HL7_ORC] PRIMARY KEY CLUSTERED ( -[TID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) - ) - GO - -ALTER TABLE [snprc_ehr].[HL7_IMPORT_LOG] ADD DEFAULT (USER_NAME()) FOR [USER_NAME] - GO - -ALTER TABLE [snprc_ehr].[HL7_IMPORT_LOG] ADD DEFAULT (GETDATE()) FOR [ENTRY_DATE_TM] - GO - -ALTER TABLE [snprc_ehr].[HL7_IMPORT_LOG] ADD CONSTRAINT [DF_HL7_IMPROT_LOG_OBJECT_ID] DEFAULT (NEWID()) FOR [OBJECT_ID] - GO - -ALTER TABLE [snprc_ehr].[HL7_IMPORT_LOG] WITH CHECK ADD CONSTRAINT [CKC_HL7_IMPORT_LOG_OBSERVATION_DATE] CHECK (([OBSERVATION_DATE_TM] IS NULL OR [OBSERVATION_DATE_TM]<=GETDATE())) - GO - -ALTER TABLE [snprc_ehr].[HL7_IMPORT_LOG] CHECK CONSTRAINT [CKC_HL7_IMPORT_LOG_OBSERVATION_DATE] - GO + [MESSAGE_ID] ASC, + [IDX] +) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) + ); +GO -ALTER TABLE [snprc_ehr].[HL7_IMPORT_LOG] WITH CHECK ADD CONSTRAINT [FK_HL7_IMPORT_LOG_container] FOREIGN KEY([Container]) - REFERENCES [core].[Containers] ([EntityId]) - GO +ALTER TABLE [snprc_ehr].[HL7_ORC] WITH CHECK ADD CONSTRAINT [FK_HL7_ORC_container] FOREIGN KEY([Container]) REFERENCES [core].[Containers] ([EntityId]); +GO --- ========================================================================== --- Author: Terry Hawkins --- Create date: 2/28/14 --- Description: Returns 1 if the value is numeric, 0 if value is not numeric --- 6/19/2015 added additional criteria based on the current datasets. tjh --- 2/29/2016 fixed file formatting. Fixed bug in patindex call (removed). tjh --- ========================================================================== -CREATE FUNCTION [snprc_ehr].[f_isNumeric] +CREATE TABLE [snprc_ehr].[HL7_MSH]( + [MESSAGE_ID] [VARCHAR](50) NOT NULL, + [IDX] [INT] NOT NULL, + [SENDING_APPLICATION] [VARCHAR](50) NULL, + [SENDING_FACILITY] [VARCHAR](50) NULL, + [RECEIVING_APPLICATION] [VARCHAR](50) NULL, + [RECEIVING_FACILITY] [VARCHAR](50) NULL, + [MESSAGE_TYPE] [VARCHAR](50) NULL, -- MSH_F9_C1 + [TRIGGER_EVENT_ID][VARCHAR](50) NULL, -- MSH_F9_C2 + [MESSAGE_CONTROL_ID] [VARCHAR](50) NULL, + [MESSAGE_DATE_TM] [DATETIME] NULL, + [Container] [dbo].[ENTITYID] NOT NULL, + [OBJECT_ID] [UNIQUEIDENTIFIER] NOT NULL DEFAULT NEWID(), + [USER_NAME] [VARCHAR](128) NOT NULL DEFAULT USER_NAME(), + [ENTRY_DATE_TM] [DATETIME] NOT NULL DEFAULT GETDATE(), + [TIMESTAMP] [TIMESTAMP] NULL, + CONSTRAINT [PK_HL7_MSH] PRIMARY KEY CLUSTERED ( - @value VARCHAR(MAX) -) -RETURNS INT -AS -BEGIN - -- Declare the return variable here - DECLARE @return INT - - IF (@value IS NULL) - BEGIN - SET @return = 0 - GOTO finis - END + [MESSAGE_ID] ASC +) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) + ); +GO - select @value = LTRIM(RTRIM(REPLACE(@value, ' ', ''))) +ALTER TABLE [snprc_ehr].[HL7_MSH] WITH CHECK ADD CONSTRAINT [FK_HL7_MSH_container] FOREIGN KEY([Container]) REFERENCES [core].[Containers] ([EntityId]); +GO - IF (ISNUMERIC(@value) = 1) - BEGIN - if ( LEN(@value) = 1 AND CHARINDEX ('+', @value, 1) > 0) - OR ( LEN(@value) = 1 AND CHARINDEX('-', @value, 1) > 0) - OR (CHARINDEX(',', @value, 1) > 0) - OR (CHARINDEX('-' , @value, 2) > 1) +ALTER TABLE [snprc_ehr].[HL7_OBR] WITH CHECK ADD CONSTRAINT [FK_OBR_REF_MSH] FOREIGN KEY([MESSAGE_ID]) REFERENCES [snprc_ehr].[HL7_MSH] ([MESSAGE_ID]); +GO - BEGIN - SET @return = 0 - GOTO finis - END +ALTER TABLE [snprc_ehr].[HL7_OBR] CHECK CONSTRAINT [FK_OBR_REF_MSH]; +GO - SET @return = 1 - GOTO finis +ALTER TABLE [snprc_ehr].[HL7_PID] WITH CHECK ADD CONSTRAINT [FK_PID_REF_MSH] FOREIGN KEY([MESSAGE_ID]) REFERENCES [snprc_ehr].[HL7_MSH] ([MESSAGE_ID]); +GO - END - SET @return = 0 +ALTER TABLE [snprc_ehr].[HL7_PID] CHECK CONSTRAINT [FK_PID_REF_MSH]; +GO - finis: - RETURN @return +ALTER TABLE [snprc_ehr].[HL7_PV1] WITH CHECK ADD CONSTRAINT [FK_PV1_REF_MSH] FOREIGN KEY([MESSAGE_ID]) REFERENCES [snprc_ehr].[HL7_MSH] ([MESSAGE_ID]); +GO -END +ALTER TABLE [snprc_ehr].[HL7_PV1] CHECK CONSTRAINT [FK_PV1_REF_MSH]; +GO +ALTER TABLE [snprc_ehr].[HL7_ORC] WITH CHECK ADD CONSTRAINT [FK_ORC_REF_MSH] FOREIGN KEY([MESSAGE_ID]) REFERENCES [snprc_ehr].[HL7_MSH] ([MESSAGE_ID]); GO -EXEC core.fn_dropifexists @objname = 'HL7_PathologyCasesStaging',@objschema = 'snprc_ehr', @objtype = 'TABLE'; -EXEC core.fn_dropifexists @objname = 'HL7_PathologyDiagnosesStaging',@objschema = 'snprc_ehr', @objtype = 'TABLE'; -EXEC core.fn_dropifexists @objname = 'HL7_DeletePathologyCasesStaging',@objschema = 'snprc_ehr', @objtype = 'TABLE'; -EXEC core.fn_dropifexists @objname = 'HL7_DeletePathologyDiagnosesStaging',@objschema = 'snprc_ehr', @objtype = 'TABLE'; -EXEC core.fn_dropifexists @objname = 'HL7_Demographics', @objschema = 'snprc_ehr', @objtype = 'TABLE'; +ALTER TABLE [snprc_ehr].[HL7_ORC] CHECK CONSTRAINT [FK_ORC_REF_MSH]; +GO CREATE TABLE snprc_ehr.HL7_PathologyCasesStaging ( - ID NVARCHAR(32) NOT NULL, - Date DATETIME NOT NULL, - RowId BIGINT IDENTITY(1,1) NOT NULL, - AccessionNumber NVARCHAR(10) NULL, - AccessionCode NVARCHAR(4000) NULL, - Tissue NVARCHAR(4000) NULL, - PerformedBy NVARCHAR(64) NULL, - Description NVARCHAR(4000) NULL, - Remark NVARCHAR(4000) NULL, - ApathRecordStatus NVARCHAR(1) NULL, - DeathType NVARCHAR(1) NULL, - Created DATETIME NULL, - CreatedBy dbo.USERID NULL, - Modified datetime NULL, - ModifiedBy dbo.USERID NULL, - Container dbo.ENTITYID NOT NULL, - ObjectId uniqueidentifier NULL, - timestamp ROWVERSION, - - CONSTRAINT PK_HL7_PathologyCasesStaging PRIMARY KEY CLUSTERED - ( - ID ASC, - Date ASC - )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) + ID NVARCHAR(32) NOT NULL, + Date DATETIME NOT NULL, + RowId BIGINT IDENTITY(1,1) NOT NULL, + AccessionNumber NVARCHAR(10) NULL, + AccessionCode NVARCHAR(4000) NULL, + Tissue NVARCHAR(4000) NULL, + PerformedBy NVARCHAR(64) NULL, + Description NVARCHAR(4000) NULL, + Remark NVARCHAR(4000) NULL, + ApathRecordStatus NVARCHAR(1) NULL, + DeathType NVARCHAR(1) NULL, + Created DATETIME NULL, + CreatedBy dbo.USERID NULL, + Modified datetime NULL, + ModifiedBy dbo.USERID NULL, + Container dbo.ENTITYID NOT NULL, + ObjectId uniqueidentifier NULL, + timestamp ROWVERSION, + + CONSTRAINT PK_HL7_PathologyCasesStaging PRIMARY KEY CLUSTERED + ( + ID ASC, + Date ASC + ) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +); GO CREATE TABLE snprc_ehr.HL7_PathologyDiagnosesStaging ( - ID NVARCHAR(32) NOT NULL, - Date DATETIME NOT NULL, - AccessionNumber NVARCHAR(40) NULL, - RowId BIGINT IDENTITY(1,1) NOT NULL, - Morphology NVARCHAR(4000) NULL, - Organ NVARCHAR(4000) NULL, - EtiologyCode NVARCHAR(4000) NULL, - SpecificEtiology NVARCHAR(4000) NULL, - PerformedBy NVARCHAR(64) NULL, - Description NVARCHAR(4000) NULL, - Remark NVARCHAR(4000) NULL, - Created datetime NULL, - CreatedBy dbo.USERID NULL, - Modified datetime NULL, - ModifiedBy dbo.USERID NULL, - Container dbo.ENTITYID NOT NULL, - ObjectId uniqueidentifier NULL, - timestamp ROWVERSION, - - CONSTRAINT PK_HL7_PathologyDiagnosesStaging PRIMARY KEY CLUSTERED - ( - RowID ASC - )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) -GO + ID NVARCHAR(32) NOT NULL, + Date DATETIME NOT NULL, + AccessionNumber NVARCHAR(40) NULL, + RowId BIGINT IDENTITY(1,1) NOT NULL, + Morphology NVARCHAR(4000) NULL, + Organ NVARCHAR(4000) NULL, + EtiologyCode NVARCHAR(4000) NULL, + SpecificEtiology NVARCHAR(4000) NULL, + PerformedBy NVARCHAR(64) NULL, + Description NVARCHAR(4000) NULL, + Remark NVARCHAR(4000) NULL, + Created datetime NULL, + CreatedBy dbo.USERID NULL, + Modified datetime NULL, + ModifiedBy dbo.USERID NULL, + Container dbo.ENTITYID NOT NULL, + ObjectId uniqueidentifier NULL, + timestamp ROWVERSION, -CREATE TABLE snprc_ehr.HL7_DeletePathologyCasesStaging ( - AccessionNumber NVARCHAR(10) NOT NULL, - ObjectId UNIQUEIDENTIFIER NOT NULL, - timestamp ROWVERSION - - CONSTRAINT PK_HL7_DeletePathologyCasesStaging PRIMARY KEY CLUSTERED - ( - AccessionNumber ASC, - ObjectId ASC - )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) + CONSTRAINT PK_HL7_PathologyDiagnosesStaging PRIMARY KEY CLUSTERED + ( + RowID ASC + ) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +); GO -CREATE TABLE snprc_ehr.HL7_DeletePathologyDiagnosesStaging ( - AccessionNumber NVARCHAR(10) NOT NULL, - ObjectId uniqueidentifier NOT NULL, - timestamp ROWVERSION - - CONSTRAINT PK_HL7_DeletePathologyDiagnosesStaging PRIMARY KEY CLUSTERED - ( - AccessionNumber ASC, - ObjectId ASC - )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) -GO +CREATE TABLE snprc_ehr.HL7_DeletePathologyCasesStaging ( + AccessionNumber NVARCHAR(10) NOT NULL, + ObjectId UNIQUEIDENTIFIER NOT NULL, + timestamp ROWVERSION -CREATE TABLE snprc_ehr.HL7_Demographics ( - ID NVARCHAR(32) NOT NULL, - RowId BIGINT IDENTITY(1,1) NOT NULL, - Gender NVARCHAR(32) NULL, - Species NVARCHAR(32) NOT NULL, - Breed NVARCHAR(40) NOT NULL, - BirthDate DATETIME NULL, - DeathDate DATETIME NULL, - isDeceased NVARCHAR(32) NULL, - Dam NVARCHAR(32) NULL, - Sire NVARCHAR(32) Null, - ObjectId uniqueidentifier NULL, - Modified datetime NULL, - ModifiedBy NVARCHAR(32) NULL, - Container dbo.ENTITYID NOT NULL, - - CONSTRAINT PK_HL7_Demographics PRIMARY KEY CLUSTERED - ( - RowId ASC - )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) + CONSTRAINT PK_HL7_DeletePathologyCasesStaging PRIMARY KEY CLUSTERED + ( + AccessionNumber ASC, + ObjectId ASC + ) + WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +); GO --- Increase procedure name size in OBR table -ALTER TABLE snprc_ehr.HL7_OBR ALTER COLUMN PROCEDURE_NAME VARCHAR(200) NULL +CREATE TABLE snprc_ehr.HL7_DeletePathologyDiagnosesStaging ( + AccessionNumber NVARCHAR(10) NOT NULL, + ObjectId uniqueidentifier NOT NULL, + timestamp ROWVERSION -EXEC core.fn_dropifexists 'SndSuperPackageStaging', 'snprc_ehr', 'TABLE'; + CONSTRAINT PK_HL7_DeletePathologyDiagnosesStaging PRIMARY KEY CLUSTERED + ( + AccessionNumber ASC, + ObjectId ASC + ) + WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +); GO -EXEC core.fn_dropifexists 'SndPackageStaging', 'snprc_ehr', 'TABLE'; -GO +CREATE TABLE snprc_ehr.HL7_Demographics ( + ID NVARCHAR(32) NOT NULL, + RowId BIGINT IDENTITY(1,1) NOT NULL, + Gender NVARCHAR(32) NULL, + Species NVARCHAR(32) NOT NULL, + Breed NVARCHAR(40) NOT NULL, + BirthDate DATETIME NULL, + DeathDate DATETIME NULL, + isDeceased NVARCHAR(32) NULL, + Dam NVARCHAR(32) NULL, + Sire NVARCHAR(32) Null, + ObjectId uniqueidentifier NULL, + Modified datetime NULL, + ModifiedBy NVARCHAR(32) NULL, + Container dbo.ENTITYID NOT NULL, -EXEC core.fn_dropifexists 'SndPackageAttributeStaging', 'snprc_ehr', 'TABLE'; + CONSTRAINT PK_HL7_Demographics PRIMARY KEY CLUSTERED + ( + RowId ASC + ) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +); GO CREATE TABLE snprc_ehr.SndSuperPackageStaging @@ -2133,7 +1102,7 @@ CREATE TABLE snprc_ehr.SndSuperPackageStaging Modified DATETIME NOT NULL, ModifiedBy USERID NOT NULL, diModified DATETIME NOT NULL, - ObjectId UNIQUEIDENTIFIER NOT NULL + ObjectId UNIQUEIDENTIFIER NOT NULL DEFAULT NEWID() CONSTRAINT PK_SndSuperPackageStaging PRIMARY KEY CLUSTERED ( TopLevelPkgId, SuperPkgId) ); @@ -2152,7 +1121,7 @@ CREATE TABLE snprc_ehr.SndPackageStaging ModifiedBy USERID NOT NULL, Modified DATETIME NOT NULL, diModified DATETIME NOT NULL, - ObjectId UNIQUEIDENTIFIER NOT NULL + ObjectId UNIQUEIDENTIFIER NOT NULL DEFAULT NEWID() CONSTRAINT PK_SndPackageStaging PRIMARY KEY CLUSTERED (PkgId) ); @@ -2176,85 +1145,91 @@ CREATE TABLE snprc_ehr.SndPackageAttributeStaging CreatedBy USERID NOT NULL, Modified DATETIME NOT NULL, ModifiedBy USERID NOT NULL, - ObjectId UNIQUEIDENTIFIER NOT NULL + ObjectId UNIQUEIDENTIFIER NOT NULL DEFAULT NEWID() CONSTRAINT pk_SndPackagesAttributeStaging PRIMARY KEY CLUSTERED (AttributeId) ); GO -/* 24.xxx SQL scripts */ +CREATE TABLE snprc_ehr.therapy_formulary( + RowId INT NOT NULL, + drug VARCHAR(400) NOT NULL, + dose NUMERIC(8, 4) NOT NULL, + route INT NOT NULL, -- FK snprc_ehr.therapy_routes.RowId + frequency INT NOT NULL, -- FK snprc_ehr.therapy_frequency.RowId` + duration INT NOT NULL, + units INT NOT NULL, -- FK snprc_ehr.therapy_units.RowId + isActive INT NULL, + dateDisabled DATETIME NULL, + Container dbo.ENTITYID NOT NULL, + Created DATETIME NULL, + CreatedBy dbo.USERID NULL, + Modified DATETIME NULL, + ModifiedBy dbo.USERID NULL, + ObjectId UNIQUEIDENTIFIER NOT NULL DEFAULT NEWID() -EXEC core.fn_dropifexists @objname = 'therapy_formulary', @objschema = 'snprc_ehr', @objtype = 'TABLE'; -EXEC core.fn_dropifexists @objname = 'therapy_frequency', @objschema = 'snprc_ehr', @objtype = 'TABLE'; -EXEC core.fn_dropifexists @objname = 'therapy_routes', @objschema = 'snprc_ehr', @objtype = 'TABLE'; -EXEC core.fn_dropifexists @objname = 'therapy_units', @objschema = 'snprc_ehr', @objtype = 'TABLE'; -EXEC core.fn_dropifexists @objname = 'therapy_resolutions', @objschema = 'snprc_ehr', @objtype = 'TABLE'; + CONSTRAINT PK_therapy_formulary PRIMARY KEY CLUSTERED (RowId) +); -CREATE TABLE snprc_ehr.therapy_formulary( - RowId INT NOT NULL, - drug VARCHAR(400) NOT NULL, - dose NUMERIC(8, 4) NOT NULL, - route INT NOT NULL, -- FK snprc_ehr.therapy_routes.RowId - frequency INT NOT NULL, -- FK snprc_ehr.therapy_frequency.RowId` - duration INT NOT NULL, - units INT NOT NULL, -- FK snprc_ehr.therapy_units.RowId - isActive INT NULL, - dateDisabled DATETIME NULL, - Container dbo.ENTITYID NOT NULL, - Created DATETIME NULL, - CreatedBy dbo.USERID NULL, - Modified DATETIME NULL, - ModifiedBy dbo.USERID NULL, - ObjectId UNIQUEIDENTIFIER NOT NULL - - CONSTRAINT PK_therapy_formulary PRIMARY KEY CLUSTERED (RowId) -) +ALTER TABLE snprc_ehr.therapy_formulary WITH CHECK ADD CONSTRAINT FK_therapy_formulary_container FOREIGN KEY(Container) REFERENCES core.Containers (EntityId); +GO + +CREATE TABLE snprc_ehr.therapy_frequency( + RowId INT NOT NULL, + frequency VARCHAR(30) NOT NULL, + description VARCHAR(100) NULL, + isActive INT NULL, + Container dbo.ENTITYID NOT NULL, + Created DATETIME NULL, + CreatedBy dbo.USERID NULL, + Modified DATETIME NULL, + ModifiedBy dbo.USERID NULL, + ObjectId UNIQUEIDENTIFIER NOT NULL DEFAULT NEWID() -ALTER TABLE snprc_ehr.therapy_formulary WITH CHECK ADD CONSTRAINT FK_therapy_formulary_container FOREIGN KEY(Container) - REFERENCES core.Containers (EntityId) - GO + CONSTRAINT PK_therapy_frequency PRIMARY KEY CLUSTERED (RowId) +); +ALTER TABLE snprc_ehr.therapy_frequency WITH CHECK ADD CONSTRAINT FK_therapy_frequency FOREIGN KEY(Container) REFERENCES core.Containers (EntityId); +GO CREATE TABLE snprc_ehr.therapy_routes( + RowId INT NOT NULL, + route VARCHAR(30) NOT NULL, + description VARCHAR(100) NULL, + isActive INT NULL, + Container dbo.ENTITYID NOT NULL, + Created DATETIME NULL, + CreatedBy dbo.USERID NULL, + Modified DATETIME NULL, + ModifiedBy dbo.USERID NULL, + ObjectId UNIQUEIDENTIFIER NULL DEFAULT NEWID() - RowId INT NOT NULL, - route VARCHAR(30) NOT NULL, - description VARCHAR(100) NULL, - isActive INT NULL, - Container dbo.ENTITYID NOT NULL, - Created DATETIME NULL, - CreatedBy dbo.USERID NULL, - Modified DATETIME NULL, - ModifiedBy dbo.USERID NULL, - ObjectId UNIQUEIDENTIFIER NULL - - CONSTRAINT PK_therapy_routes PRIMARY KEY CLUSTERED (RowId) -) -ALTER TABLE snprc_ehr.therapy_routes WITH CHECK ADD CONSTRAINT FK_therapy_routes FOREIGN KEY(Container) - REFERENCES core.Containers (EntityId) - GO + CONSTRAINT PK_therapy_routes PRIMARY KEY CLUSTERED (RowId) +); + +ALTER TABLE snprc_ehr.therapy_routes WITH CHECK ADD CONSTRAINT FK_therapy_routes FOREIGN KEY(Container) REFERENCES core.Containers (EntityId); +GO CREATE TABLE snprc_ehr.therapy_units( - RowId INT NOT NULL, - units VARCHAR(30) NOT NULL, - description VARCHAR(100), - isActive INT NULL, - Container dbo.ENTITYID NOT NULL, - Created DATETIME NULL, - CreatedBy dbo.USERID NULL, - Modified DATETIME NULL, - ModifiedBy dbo.USERID NULL, - ObjectId UNIQUEIDENTIFIER NULL - - CONSTRAINT PK_therapy_units PRIMARY KEY CLUSTERED (RowId) -) -ALTER TABLE snprc_ehr.therapy_units WITH CHECK ADD CONSTRAINT FK_therapy_units FOREIGN KEY(Container) - REFERENCES core.Containers (EntityId) - GO + RowId INT NOT NULL, + units VARCHAR(30) NOT NULL, + description VARCHAR(100), + isActive INT NULL, + Container dbo.ENTITYID NOT NULL, + Created DATETIME NULL, + CreatedBy dbo.USERID NULL, + Modified DATETIME NULL, + ModifiedBy dbo.USERID NULL, + ObjectId UNIQUEIDENTIFIER NULL DEFAULT NEWID() + + CONSTRAINT PK_therapy_units PRIMARY KEY CLUSTERED (RowId) +); + +ALTER TABLE snprc_ehr.therapy_units WITH CHECK ADD CONSTRAINT FK_therapy_units FOREIGN KEY(Container) REFERENCES core.Containers (EntityId); +GO CREATE TABLE snprc_ehr.therapy_resolutions ( - RowId INT NOT NULL, resolution VARCHAR(30) NOT NULL, isActive INT NULL, @@ -2263,29 +1238,53 @@ CREATE TABLE snprc_ehr.therapy_resolutions CreatedBy dbo.USERID NULL, Modified DATETIME NULL, ModifiedBy dbo.USERID NULL, - ObjectId UNIQUEIDENTIFIER NULL + ObjectId UNIQUEIDENTIFIER NULL DEFAULT NEWID(), - CONSTRAINT PK_therapy_resolutions PRIMARY KEY CLUSTERED (RowId) -) + CONSTRAINT PK_therapy_resolutions PRIMARY KEY CLUSTERED (RowId) +); -ALTER TABLE snprc_ehr.therapy_resolutions WITH CHECK ADD CONSTRAINT FK_therapy_resolutions FOREIGN KEY(Container) - REFERENCES core.Containers (EntityId) - GO +ALTER TABLE snprc_ehr.therapy_resolutions WITH CHECK ADD CONSTRAINT FK_therapy_resolutions FOREIGN KEY(Container) REFERENCES core.Containers (EntityId); +GO -CREATE TABLE snprc_ehr.therapy_frequency( - RowId INT NOT NULL, - frequency VARCHAR(30) NOT NULL, - description VARCHAR(100) NULL, - isActive INT NULL, - Container dbo.ENTITYID NOT NULL, - Created DATETIME NULL, - CreatedBy dbo.USERID NULL, - Modified DATETIME NULL, - ModifiedBy dbo.USERID NULL, - ObjectId UNIQUEIDENTIFIER NOT NULL - - CONSTRAINT PK_therapy_frequency PRIMARY KEY CLUSTERED (RowId) +CREATE FUNCTION [snprc_ehr].[f_isNumeric] +( + @value VARCHAR(MAX) ) -ALTER TABLE snprc_ehr.therapy_frequency WITH CHECK ADD CONSTRAINT FK_therapy_frequency FOREIGN KEY(Container) - REFERENCES core.Containers (EntityId) - GO \ No newline at end of file +RETURNS INT +AS +BEGIN + -- Declare the return variable here + DECLARE @return INT + + IF (@value IS NULL) + BEGIN + SET @return = 0 + GOTO finis + END + + select @value = LTRIM(RTRIM(REPLACE(@value, ' ', ''))) + + IF (ISNUMERIC(@value) = 1) + BEGIN + if ( LEN(@value) = 1 AND CHARINDEX ('+', @value, 1) > 0) + OR ( LEN(@value) = 1 AND CHARINDEX('-', @value, 1) > 0) + OR (CHARINDEX(',', @value, 1) > 0) + OR (CHARINDEX('-' , @value, 2) > 1) + + BEGIN + SET @return = 0 + GOTO finis + END + + SET @return = 1 + GOTO finis + + END + SET @return = 0 + + finis: + RETURN @return + +END + +GO diff --git a/snprc_genetics/module.properties b/snprc_genetics/module.properties index d41cfed2d..ed88888ab 100644 --- a/snprc_genetics/module.properties +++ b/snprc_genetics/module.properties @@ -1,5 +1,5 @@ ModuleClass: org.labkey.snprc_genetics.SNPRC_GeneticsModule -SupportedDatabases: mssql +SupportedDatabases: mssql, pgsql License: Apache 2.0 LicenseURL: http://www.apache.org/licenses/LICENSE-2.0 ManageVersion: true diff --git a/snprc_r24/module.properties b/snprc_r24/module.properties index 4d4efd6c0..c49a30532 100644 --- a/snprc_r24/module.properties +++ b/snprc_r24/module.properties @@ -1,6 +1,6 @@ ModuleClass: org.labkey.snprc_r24.snprc_r24Module Label: Marmoset R24 module -SupportedDatabases: mssql +SupportedDatabases: mssql, pgsql License: Apache 2.0 LicenseURL: http://www.apache.org/licenses/LICENSE-2.0 ManageVersion: true \ No newline at end of file diff --git a/snprc_r24/resources/schemas/dbscripts/postgresql/snprc_r24-0.000-25.000.sql b/snprc_r24/resources/schemas/dbscripts/postgresql/snprc_r24-0.000-25.000.sql new file mode 100644 index 000000000..2cad942d9 --- /dev/null +++ b/snprc_r24/resources/schemas/dbscripts/postgresql/snprc_r24-0.000-25.000.sql @@ -0,0 +1,127 @@ +/* + * Copyright (c) 2018-2019 LabKey Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +CREATE SCHEMA snprc_r24; + +CREATE TABLE snprc_r24.Biomarkers ( + RowId BIGSERIAL NOT NULL, + SampleId VARCHAR(32) NOT NULL, + Lab VARCHAR(128) NULL, + Analyte VARCHAR(128) NOT NULL, + ObjectId ENTITYID DEFAULT NULL, + Value NUMERIC(6,2), + Created TIMESTAMP NULL, + CreatedBy USERID NULL, + Modified TIMESTAMP NULL, + ModifiedBy USERID NULL, + DiCreated TIMESTAMP NULL, + DiModified TIMESTAMP NULL, + DiCreatedBy USERID NULL, + DiModifiedBy USERID NULL, + Container ENTITYID NOT NULL, + + CONSTRAINT PK_snprc_r24_Biomarkers PRIMARY KEY (SampleId, Analyte), + CONSTRAINT FK_snprc_r24_Biomarkers_container FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) +); + +CREATE TABLE snprc_r24.SampleInventory ( + RowId BIGSERIAL NOT NULL, + AnimalId VARCHAR(32) NOT NULL, + Date TIMESTAMP NOT NULL, + SampleId VARCHAR(32) NOT NULL, + Aim VARCHAR(128) NULL, + SampleType VARCHAR(128) NOT NULL, + ObjectId ENTITYID DEFAULT NULL, + Created TIMESTAMP NULL, + CreatedBy USERID NULL, + Modified TIMESTAMP NULL, + ModifiedBy USERID NULL, + DiCreated TIMESTAMP NULL, + DiModified TIMESTAMP NULL, + DiCreatedBy USERID NULL, + DiModifiedBy USERID NULL, + Container ENTITYID NOT NULL, + SampleWeight NUMERIC(7,2) NULL, + SampleAmount NUMERIC(7,2) NULL, + + CONSTRAINT pk_snprc_r24_sampleinventory PRIMARY KEY (SampleId), + CONSTRAINT fk_snprc_r24_sampleinventory_container FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) +); + +CREATE TABLE snprc_r24.lookupSets ( + RowId BIGSERIAL NOT NULL, + SetName VARCHAR(32) NOT NULL, + Label VARCHAR(32) NOT NULL, + ObjectId ENTITYID DEFAULT NULL, + Created TIMESTAMP NULL, + CreatedBy USERID NULL, + Modified TIMESTAMP NULL, + ModifiedBy USERID NULL, + DiCreated TIMESTAMP NULL, + DiModified TIMESTAMP NULL, + DiCreatedBy USERID NULL, + DiModifiedBy USERID NULL, + Container ENTITYID NOT NULL, + + CONSTRAINT pk_snprc_r24_lookupsets PRIMARY KEY (RowId), + CONSTRAINT fk_snprc_r24_lookupsets_container FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) +); + +CREATE UNIQUE INDEX idx_snprc_r24_lookupSets_setname ON snprc_r24.lookupSets (SetName); + +CREATE TABLE snprc_r24.lookups ( + RowId BIGSERIAL NOT NULL, + SetName VARCHAR(32) NOT NULL, + Value VARCHAR(128) NOT NULL, + SortOrder INTEGER NULL, + DateDisabled TIMESTAMP NULL, + ObjectId ENTITYID DEFAULT NULL, + Created TIMESTAMP NULL, + CreatedBy USERID NULL, + Modified TIMESTAMP NULL, + ModifiedBy USERID NULL, + DiCreated TIMESTAMP NULL, + DiModified TIMESTAMP NULL, + DiCreatedBy USERID NULL, + DiModifiedBy USERID NULL, + Container ENTITYID NOT NULL, + + CONSTRAINT pk_snprc_r24_lookups PRIMARY KEY (RowId), + CONSTRAINT fk_snprc_r24_lookups_SetName FOREIGN KEY (SetName) REFERENCES snprc_r24.lookupSets (SetName), + CONSTRAINT fk_snprc_r24_lookups_container FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) +); + +CREATE UNIQUE INDEX idx_snprc_r24_lookups_setname ON snprc_r24.lookups (SetName, Value); + +CREATE TABLE snprc_r24.RowsToDelete ( + ObjectId ENTITYID NOT NULL, + Modified TIMESTAMP NOT NULL, + + CONSTRAINT pk_snprc_r24_RowsToDelete PRIMARY KEY (ObjectId) +); + +CREATE TABLE snprc_r24.WeightStaging ( + AnimalId VARCHAR(32) NOT NULL, + Date TIMESTAMP NOT NULL, + Weight DOUBLE PRECISION NOT NULL, + ObjectId ENTITYID NOT NULL, + Created TIMESTAMP NULL, + CreatedBy USERID NULL, + Modified TIMESTAMP NULL, + ModifiedBy USERID NULL, + + CONSTRAINT pk_snprc_r24_weight_staging PRIMARY KEY (ObjectId) +); diff --git a/snprc_r24/resources/schemas/dbscripts/sqlserver/snprc_r24-0.000-25.000.sql b/snprc_r24/resources/schemas/dbscripts/sqlserver/snprc_r24-0.000-25.000.sql index c93834cf4..e3e44abd2 100644 --- a/snprc_r24/resources/schemas/dbscripts/sqlserver/snprc_r24-0.000-25.000.sql +++ b/snprc_r24/resources/schemas/dbscripts/sqlserver/snprc_r24-0.000-25.000.sql @@ -18,138 +18,123 @@ CREATE SCHEMA snprc_r24; GO CREATE TABLE [snprc_R24].[Biomarkers]( - [RowId] [bigint] IDENTITY(1,1) NOT NULL, - [SampleId] [NVARCHAR](32) NOT NULL, - [Lab] [nvarchar](128) NULL, - [Analyte] [nvarchar](128) NOT NULL, - [ObjectId] nvarchar(128), - [Value] numeric(6,2), - [Created] [DATETIME] NULL, - [CreatedBy] [dbo].[USERID] NULL, - [Modified] [DATETIME] NULL, - [ModifiedBy] [dbo].[USERID] NULL, - [DiCreated] [DATETIME] NULL, - [DiModified] [DATETIME] NULL, - [DiCreatedBy] [dbo].[USERID] NULL, - [DiModifiedBy] [dbo].[USERID] NULL, - Container entityId NOT NULL - - - CONSTRAINT PK_snprc_r24_Biomarkers PRIMARY KEY ([SampleId], [Analyte]) - CONSTRAINT FK_snprc_r24_Biomarkers_container FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) ); + [RowId] [bigint] IDENTITY(1,1) NOT NULL, + [SampleId] [NVARCHAR](32) NOT NULL, + [Lab] [nvarchar](128) NULL, + [Analyte] [nvarchar](128) NOT NULL, + [ObjectId] nvarchar(128) DEFAULT (NEWID()) NULL, + [Value] numeric(6,2), + [Created] [DATETIME] NULL, + [CreatedBy] [dbo].[USERID] NULL, + [Modified] [DATETIME] NULL, + [ModifiedBy] [dbo].[USERID] NULL, + [DiCreated] [DATETIME] NULL, + [DiModified] [DATETIME] NULL, + [DiCreatedBy] [dbo].[USERID] NULL, + [DiModifiedBy] [dbo].[USERID] NULL, + Container entityId NOT NULL, + + CONSTRAINT PK_snprc_r24_Biomarkers PRIMARY KEY ([SampleId], [Analyte]), + CONSTRAINT FK_snprc_r24_Biomarkers_container FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) +); go -ALTER TABLE [snprc_r24].[Biomarkers] ADD DEFAULT (NEWID()) FOR [ObjectId] -GO - -/* snprc_r24-17.10-17.20.sql */ - CREATE TABLE [snprc_r24].[SampleInventory]( - [RowId] [bigint] IDENTITY(1,1) NOT NULL, - [AnimalId] [NVARCHAR](32) NOT NULL, - [Date] [DATETIME] NOT NULL, - [SampleId] [NVARCHAR](32) NOT NULL, - [Aim] [NVARCHAR](128) NULL, - [SampleType] [NVARCHAR](128) NOT NULL, - [ObjectId] nvarchar(128) NULL, - [Created] [DATETIME] NULL, - [CreatedBy] [dbo].[USERID] NULL, - [Modified] [DATETIME] NULL, - [ModifiedBy] [dbo].[USERID] NULL, - [DiCreated] [DATETIME] NULL, - [DiModified] [DATETIME] NULL, - [DiCreatedBy] [dbo].[USERID] NULL, - [DiModifiedBy] [dbo].[USERID] NULL, - Container entityId NOT NULL - - CONSTRAINT [pk_snprc_r24_sampleinventory] PRIMARY KEY ( [SampleId] ASC) - CONSTRAINT [fk_snprc_r24_sampleinventory_container] FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) ); - -GO + [RowId] [bigint] IDENTITY(1,1) NOT NULL, + [AnimalId] [NVARCHAR](32) NOT NULL, + [Date] [DATETIME] NOT NULL, + [SampleId] [NVARCHAR](32) NOT NULL, + [Aim] [NVARCHAR](128) NULL, + [SampleType] [NVARCHAR](128) NOT NULL, + [ObjectId] nvarchar(128) DEFAULT (NEWID()) NULL, + [Created] [DATETIME] NULL, + [CreatedBy] [dbo].[USERID] NULL, + [Modified] [DATETIME] NULL, + [ModifiedBy] [dbo].[USERID] NULL, + [DiCreated] [DATETIME] NULL, + [DiModified] [DATETIME] NULL, + [DiCreatedBy] [dbo].[USERID] NULL, + [DiModifiedBy] [dbo].[USERID] NULL, + Container entityId NOT NULL, + SampleWeight NUMERIC(7,2) NULL, + SampleAmount NUMERIC(7,2) NULL, + + CONSTRAINT [pk_snprc_r24_sampleinventory] PRIMARY KEY ([SampleId] ASC), + CONSTRAINT [fk_snprc_r24_sampleinventory_container] FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) +); -ALTER TABLE [snprc_r24].[SampleInventory] ADD DEFAULT (NEWID()) FOR [ObjectId] GO CREATE TABLE [snprc_r24].[lookupSets]( - [RowId] [bigint] IDENTITY(1,1) NOT NULL, - [SetName] [NVARCHAR](32) NOT NULL, - [Label] [NVARCHAR](32) NOT NULL, - [ObjectId] nvarchar(128) NULL, - [Created] [DATETIME] NULL, - [CreatedBy] [dbo].[USERID] NULL, - [Modified] [DATETIME] NULL, - [ModifiedBy] [dbo].[USERID] NULL, - [DiCreated] [DATETIME] NULL, - [DiModified] [DATETIME] NULL, - [DiCreatedBy] [dbo].[USERID] NULL, - [DiModifiedBy] [dbo].[USERID] NULL, - Container entityId NOT NULL - - CONSTRAINT [pk_snprc_r24_lookupsets] PRIMARY KEY ( [RowId] ASC) - CONSTRAINT [fk_snprc_r24_lookupsets_container] FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) ); -GO - -CREATE UNIQUE NONCLUSTERED INDEX [idx_snprc_r24_lookupSets_setname] ON [snprc_r24].[lookupSets] ( [SetName] ASC ) + [RowId] [bigint] IDENTITY(1,1) NOT NULL, + [SetName] [NVARCHAR](32) NOT NULL, + [Label] [NVARCHAR](32) NOT NULL, + [ObjectId] nvarchar(128) DEFAULT (NEWID()) NULL, + [Created] [DATETIME] NULL, + [CreatedBy] [dbo].[USERID] NULL, + [Modified] [DATETIME] NULL, + [ModifiedBy] [dbo].[USERID] NULL, + [DiCreated] [DATETIME] NULL, + [DiModified] [DATETIME] NULL, + [DiCreatedBy] [dbo].[USERID] NULL, + [DiModifiedBy] [dbo].[USERID] NULL, + Container entityId NOT NULL, + + CONSTRAINT [pk_snprc_r24_lookupsets] PRIMARY KEY ([RowId] ASC), + CONSTRAINT [fk_snprc_r24_lookupsets_container] FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) +); GO -ALTER TABLE [snprc_r24].[LookupSets] ADD DEFAULT (NEWID()) FOR [ObjectId] +CREATE UNIQUE NONCLUSTERED INDEX [idx_snprc_r24_lookupSets_setname] ON [snprc_r24].[lookupSets] ( [SetName] ASC ); GO CREATE TABLE [snprc_r24].[lookups]( - [RowId] [bigint] IDENTITY(1,1) NOT NULL, - [SetName] [NVARCHAR](32) NOT NULL, - [Value] [NVARCHAR](128) NOT NULL, - [SortOrder] [INTEGER] NULL, - [DateDisabled] [datetime] NULL, - [ObjectId] nvarchar(128) NULL, - [Created] [DATETIME] NULL, - [CreatedBy] [dbo].[USERID] NULL, - [Modified] [DATETIME] NULL, - [ModifiedBy] [dbo].[USERID] NULL, - [DiCreated] [DATETIME] NULL, - [DiModified] [DATETIME] NULL, - [DiCreatedBy] [dbo].[USERID] NULL, - [DiModifiedBy] [dbo].[USERID] NULL, - Container entityId NOT NULL - - CONSTRAINT [pk_snprc_r24_lookups] PRIMARY KEY ( [RowId] ASC), - CONSTRAINT [fk_snprc_r24_lookups_SetName] FOREIGN KEY (SetName) REFERENCES snprc_r24.LookupSets (SetName), - CONSTRAINT [fk_snprc_r24_lookups_container] FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) ); + [RowId] [bigint] IDENTITY(1,1) NOT NULL, + [SetName] [NVARCHAR](32) NOT NULL, + [Value] [NVARCHAR](128) NOT NULL, + [SortOrder] [INTEGER] NULL, + [DateDisabled] [datetime] NULL, + [ObjectId] nvarchar(128) DEFAULT (NEWID()) NULL, + [Created] [DATETIME] NULL, + [CreatedBy] [dbo].[USERID] NULL, + [Modified] [DATETIME] NULL, + [ModifiedBy] [dbo].[USERID] NULL, + [DiCreated] [DATETIME] NULL, + [DiModified] [DATETIME] NULL, + [DiCreatedBy] [dbo].[USERID] NULL, + [DiModifiedBy] [dbo].[USERID] NULL, + Container entityId NOT NULL, + + CONSTRAINT [pk_snprc_r24_lookups] PRIMARY KEY ([RowId] ASC), + CONSTRAINT [fk_snprc_r24_lookups_SetName] FOREIGN KEY (SetName) REFERENCES snprc_r24.LookupSets (SetName), + CONSTRAINT [fk_snprc_r24_lookups_container] FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) +); GO -CREATE UNIQUE NONCLUSTERED INDEX [idx_snprc_r24_lookups_setname] ON [snprc_r24].[lookups] ( [SetName] ASC, [VALUE] ASC) +CREATE UNIQUE NONCLUSTERED INDEX [idx_snprc_r24_lookups_setname] ON [snprc_r24].[lookups] ( [SetName] ASC, [VALUE] ASC); GO -ALTER TABLE [snprc_r24].[Lookups] ADD DEFAULT (NEWID()) FOR [ObjectId] -GO - -/* snprc_r24-18.10-18.20.sql */ - -ALTER TABLE snprc_r24.SampleInventory ADD SampleWeight NUMERIC(7,2) NULL; -ALTER TABLE snprc_r24.SampleInventory ADD SampleAmount NUMERIC(7,2) NULL; - CREATE TABLE [snprc_r24].[RowsToDelete]( -[ObjectId] [dbo].[EntityId] NOT NULL, -[Modified] [DATETIME] NOT NULL -CONSTRAINT [pk_snprc_r24_RowsToDelete] PRIMARY KEY ( [ObjectId] ASC) ); + [ObjectId] [dbo].[EntityId] NOT NULL, + [Modified] [DATETIME] NOT NULL, + + CONSTRAINT [pk_snprc_r24_RowsToDelete] PRIMARY KEY ([ObjectId] ASC) +); GO CREATE TABLE [snprc_r24].[WeightStaging] ( -[AnimalId] [NVARCHAR](32) NOT NULL, -[Date] [DATETIME] NOT NULL, -[Weight] [NUMERIC](7,4) NOT NULL, -[ObjectId] [dbo].EntityId NOT NULL, -[Created] [DATETIME] NULL, -[CreatedBy] [dbo].[USERID] NULL, -[Modified] [DATETIME] NULL, -[ModifiedBy] [dbo].[USERID] NULL - -CONSTRAINT [pk_snprc_r24_weight_staging] PRIMARY KEY ( [ObjectId] ASC) ); + [AnimalId] [NVARCHAR](32) NOT NULL, + [Date] [DATETIME] NOT NULL, + [Weight] [FLOAT] NOT NULL, + [ObjectId] [dbo].EntityId NOT NULL, + [Created] [DATETIME] NULL, + [CreatedBy] [dbo].[USERID] NULL, + [Modified] [DATETIME] NULL, + [ModifiedBy] [dbo].[USERID] NULL, + + CONSTRAINT [pk_snprc_r24_weight_staging] PRIMARY KEY ([ObjectId] ASC) +); GO - -/* 24.xxx SQL scripts */ - -ALTER TABLE snprc_r24.WeightStaging ALTER COLUMN Weight FLOAT \ No newline at end of file diff --git a/snprc_r24/resources/views/welcome.html b/snprc_r24/resources/views/welcome.html deleted file mode 100644 index a8052619a..000000000 --- a/snprc_r24/resources/views/welcome.html +++ /dev/null @@ -1 +0,0 @@ -
Welcome to the r24 module
\ No newline at end of file diff --git a/snprc_r24/resources/views/welcome.view.xml b/snprc_r24/resources/views/welcome.view.xml deleted file mode 100644 index 66231bee1..000000000 --- a/snprc_r24/resources/views/welcome.view.xml +++ /dev/null @@ -1,5 +0,0 @@ -