diff --git a/ehr/resources/schemas/dbscripts/postgresql/ehr-0.000-22.000.sql b/ehr/resources/schemas/dbscripts/postgresql/ehr-0.000-24.000.sql similarity index 83% rename from ehr/resources/schemas/dbscripts/postgresql/ehr-0.000-22.000.sql rename to ehr/resources/schemas/dbscripts/postgresql/ehr-0.000-24.000.sql index 16063b0a4..ca1713578 100644 --- a/ehr/resources/schemas/dbscripts/postgresql/ehr-0.000-22.000.sql +++ b/ehr/resources/schemas/dbscripts/postgresql/ehr-0.000-24.000.sql @@ -4,8 +4,6 @@ * Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0 */ -/* EHR-11.10-11.101.sql */ - CREATE SCHEMA ehr; CREATE OR REPLACE FUNCTION ehr.uuid() @@ -17,8 +15,6 @@ $BODY$ LANGUAGE 'sql' VOLATILE ; - -DROP TABLE IF EXISTS ehr.module_properties; CREATE TABLE ehr.module_properties ( RowId SERIAL NOT NULL, @@ -35,7 +31,6 @@ CREATE TABLE ehr.module_properties ( CONSTRAINT PK_module_properties PRIMARY KEY (RowId) ); -DROP TABLE IF EXISTS ehr.snomed_tags; CREATE TABLE ehr.snomed_tags ( RowId SERIAL NOT NULL, @@ -51,7 +46,6 @@ CREATE TABLE ehr.snomed_tags CONSTRAINT PK_snomed_tags PRIMARY KEY (RowId) ); -DROP TABLE IF EXISTS ehr.tasks; CREATE TABLE ehr.tasks ( TaskId ENTITYID NOT NULL, @@ -76,8 +70,6 @@ CREATE TABLE ehr.tasks ); - -DROP TABLE IF EXISTS ehr.requests; CREATE TABLE ehr.requests ( RequestId ENTITYID NOT NULL, @@ -104,8 +96,6 @@ CREATE TABLE ehr.requests CONSTRAINT PK_requests PRIMARY KEY (RequestId) ); - -DROP TABLE IF EXISTS ehr.cage_observations; CREATE TABLE ehr.cage_observations ( RowId serial NOT NULL, @@ -138,36 +128,32 @@ CREATE TABLE ehr.cage_observations -- ---------------------------- -- Table structure for ehr.reports -- ---------------------------- -DROP TABLE IF EXISTS ehr.reports; CREATE TABLE ehr.reports ( -rowid serial not null, -ReportName varchar(255) DEFAULT NULL, -Category varchar(255) DEFAULT NULL, -ReportType varchar(255) DEFAULT NULL, -ReportTitle varchar(255) DEFAULT NULL, -Visible bool DEFAULT NULL, -ContainerPath varchar(255) DEFAULT NULL, -SchemaName varchar(255) DEFAULT NULL, -QueryName varchar(255) DEFAULT NULL, -ViewName varchar(255) DEFAULT NULL, -Report varchar(255) DEFAULT NULL, -DateFieldName varchar(255) DEFAULT NULL, -TodayOnly bool DEFAULT NULL, -QueryHasLocation bool DEFAULT NULL, - -Container ENTITYID NOT NULL, -CreatedBy USERID NOT NULL, -Created TIMESTAMP NOT NULL, -ModifiedBy USERID NOT NULL, -Modified TIMESTAMP NOT NULL, - -CONSTRAINT PK_reports PRIMARY KEY (rowid) -) -WITH (OIDS=FALSE) + rowid serial not null, + ReportName varchar(255) DEFAULT NULL, + Category varchar(255) DEFAULT NULL, + ReportType varchar(255) DEFAULT NULL, + ReportTitle varchar(255) DEFAULT NULL, + Visible bool DEFAULT NULL, + ContainerPath varchar(255) DEFAULT NULL, + SchemaName varchar(255) DEFAULT NULL, + QueryName varchar(255) DEFAULT NULL, + ViewName varchar(255) DEFAULT NULL, + Report varchar(255) DEFAULT NULL, + DateFieldName varchar(255) DEFAULT NULL, + TodayOnly bool DEFAULT NULL, + QueryHasLocation bool DEFAULT NULL, -; + Container ENTITYID NOT NULL, + CreatedBy USERID NOT NULL, + Created TIMESTAMP NOT NULL, + ModifiedBy USERID NOT NULL, + Modified TIMESTAMP NOT NULL, + + CONSTRAINT PK_reports PRIMARY KEY (rowid) +) +WITH (OIDS=FALSE); -DROP TABLE IF EXISTS ehr.extracts; CREATE TABLE ehr.extracts ( RowId serial NOT NULL, @@ -189,8 +175,6 @@ CREATE TABLE ehr.extracts ); - -DROP TABLE IF EXISTS ehr.formTemplates; CREATE TABLE ehr.formTemplates ( entityId ENTITYID not null, @@ -210,8 +194,6 @@ CREATE TABLE ehr.formTemplates CONSTRAINT UNIQUE_formTemplates UNIQUE (formtype, title) ); - -DROP TABLE IF EXISTS ehr.formTemplateRecords; CREATE TABLE ehr.formTemplateRecords ( RowId serial NOT NULL, @@ -228,8 +210,6 @@ CREATE TABLE ehr.formTemplateRecords CONSTRAINT PK_formTemplateRecords PRIMARY KEY (RowId) ); - -DROP TABLE IF EXISTS ehr.formTypes; CREATE TABLE ehr.formTypes ( formType varchar(4000) NOT NULL, @@ -245,8 +225,6 @@ CREATE TABLE ehr.formTypes CONSTRAINT PK_formTypes PRIMARY KEY (formType) ); - -DROP TABLE IF EXISTS ehr.formPanelSections; CREATE TABLE ehr.formPanelSections ( RowId serial NOT NULL, @@ -290,7 +268,6 @@ CREATE TABLE ehr.formPanelSections -- ); -DROP TABLE IF EXISTS ehr.notificationTypes; CREATE TABLE ehr.notificationTypes ( NotificationType varchar(4000) NOT NULL, @@ -309,7 +286,6 @@ VALUES ('Colony Validation - General', 'Subscribing to this notification will result in emails for general colony records issues like records needing attention, animals missing from the demographics table, etc.') ; -DROP TABLE IF EXISTS ehr.notificationRecipients; CREATE TABLE ehr.notificationRecipients ( RowId serial NOT NULL, @@ -325,10 +301,8 @@ CREATE TABLE ehr.notificationRecipients CONSTRAINT PK_notificationRecipients PRIMARY KEY (RowId) ); - --///////////////////////////////////// -DROP TABLE IF EXISTS ehr.protocols; CREATE TABLE ehr.protocols ( protocol varchar(4000) NOT NULL, @@ -345,7 +319,6 @@ CREATE TABLE ehr.protocols CONSTRAINT PK_protocol PRIMARY KEY (protocol) ); -DROP TABLE IF EXISTS ehr.protocol_counts; CREATE TABLE ehr.protocol_counts ( rowId serial not null, @@ -362,7 +335,6 @@ CREATE TABLE ehr.protocol_counts CONSTRAINT PK_protocol_counts PRIMARY KEY (RowId) ); -DROP TABLE IF EXISTS ehr.project; CREATE TABLE ehr.project ( project varchar (200) not null, @@ -409,8 +381,6 @@ CREATE TABLE ehr.project -- ); - -DROP TABLE IF EXISTS ehr.client_errors; CREATE TABLE ehr.client_errors ( rowid serial not null, @@ -427,10 +397,6 @@ CREATE TABLE ehr.client_errors CONSTRAINT PK_client_errors PRIMARY KEY (rowid) ); - - - -DROP TABLE IF EXISTS ehr.qcStateMetadata; CREATE TABLE ehr.qcStateMetadata ( QCStateLabel varchar(4000) NOT NULL, @@ -456,12 +422,8 @@ VALUES ('Request: Complete', FALSE, FALSE, TRUE) ; -/* EHR-11.101-11.102.sql */ - -DROP TABLE IF EXISTS ehr.qcPermissionMap; - - DROP TABLE IF EXISTS ehr.module_properties; + CREATE TABLE ehr.module_properties ( RowId SERIAL NOT NULL, @@ -479,7 +441,6 @@ CREATE TABLE ehr.module_properties ( CONSTRAINT UNIQUE_module_properties UNIQUE (prop_name, container) ); -DROP TABLE IF EXISTS ehr.site_module_properties; CREATE TABLE ehr.site_module_properties ( prop_name varchar(255) DEFAULT NULL, stringvalue varchar(255) DEFAULT NULL, @@ -497,37 +458,34 @@ CREATE TABLE ehr.site_module_properties ( -- Table structure for ehr.reports -- ---------------------------- DROP TABLE IF EXISTS ehr.reports; + CREATE TABLE ehr.reports ( -rowid serial not null, -ReportName varchar(255) DEFAULT NULL, -Category varchar(255) DEFAULT NULL, -ReportType varchar(255) DEFAULT NULL, -ReportTitle varchar(255) DEFAULT NULL, -Visible bool DEFAULT NULL, -ContainerPath varchar(255) DEFAULT NULL, -SchemaName varchar(255) DEFAULT NULL, -QueryName varchar(255) DEFAULT NULL, -ViewName varchar(255) DEFAULT NULL, -Report varchar(255) DEFAULT NULL, -DateFieldName varchar(255) DEFAULT NULL, -TodayOnly bool DEFAULT NULL, -QueryHasLocation bool DEFAULT NULL, ---added -QCStatePublicDataFieldName varchar(255) default null, - -Container ENTITYID NOT NULL, -CreatedBy USERID NOT NULL, -Created TIMESTAMP NOT NULL, -ModifiedBy USERID NOT NULL, -Modified TIMESTAMP NOT NULL, - -CONSTRAINT PK_reports PRIMARY KEY (rowid) -) -WITH (OIDS=FALSE) + rowid serial not null, + ReportName varchar(255) DEFAULT NULL, + Category varchar(255) DEFAULT NULL, + ReportType varchar(255) DEFAULT NULL, + ReportTitle varchar(255) DEFAULT NULL, + Visible bool DEFAULT NULL, + ContainerPath varchar(255) DEFAULT NULL, + SchemaName varchar(255) DEFAULT NULL, + QueryName varchar(255) DEFAULT NULL, + ViewName varchar(255) DEFAULT NULL, + Report varchar(255) DEFAULT NULL, + DateFieldName varchar(255) DEFAULT NULL, + TodayOnly bool DEFAULT NULL, + QueryHasLocation bool DEFAULT NULL, + --added + QCStatePublicDataFieldName varchar(255) default null, -; + Container ENTITYID NOT NULL, + CreatedBy USERID NOT NULL, + Created TIMESTAMP NOT NULL, + ModifiedBy USERID NOT NULL, + Modified TIMESTAMP NOT NULL, -/* EHR-11.102-11.105.sql */ + CONSTRAINT PK_reports PRIMARY KEY (rowid) +) +WITH (OIDS=FALSE); ALTER TABLE ehr.cage_observations add column no_observations boolean @@ -541,20 +499,14 @@ ALTER TABLE ehr.cage_observations drop column roomcage ; -/* EHR-11.105-11.106.sql */ - ALTER TABLE ehr.reports add column jsonConfig varchar(4000) ; -/* EHR-11.107-11.108.sql */ - ALTER TABLE ehr.reports add column description varchar(4000) ; -/* EHR-11.108-11.109.sql */ - INSERT INTO ehr.qcStateMetadata (QCStateLabel,draftData,isDeleted,isRequest) VALUES @@ -562,13 +514,8 @@ VALUES ('Scheduled', TRUE, FALSE, FALSE) ; -/* EHR-11.109-11.110.sql */ - ALTER TABLE ehr.formTypes ADD COLUMN configJson text; -/* EHR-11.113-11.114.sql */ - -DROP TABLE IF EXISTS ehr.animal_groups; CREATE TABLE ehr.animal_groups ( name varchar(255) NOT NULL, @@ -581,9 +528,8 @@ CREATE TABLE ehr.animal_groups ( CONSTRAINT PK_animal_groups PRIMARY KEY (name) ); -/* EHR-11.116-11.117.sql */ - DROP TABLE IF EXISTS ehr.formTypes; + CREATE TABLE ehr.formTypes ( rowid serial not null, @@ -609,6 +555,7 @@ alter table ehr.project drop column container; DROP TABLE IF EXISTS ehr.animal_groups; + CREATE TABLE ehr.animal_groups ( rowid serial not null, name varchar(255) NOT NULL, @@ -622,8 +569,6 @@ CREATE TABLE ehr.animal_groups ( CONSTRAINT PK_animal_groups PRIMARY KEY (rowid) ); - -DROP TABLE IF EXISTS ehr.supplemental_pedigree; CREATE TABLE ehr.supplemental_pedigree ( rowid serial not null, Id varchar(50) NOT NULL, @@ -640,21 +585,16 @@ CREATE TABLE ehr.supplemental_pedigree ( CONSTRAINT PK_supplemental_pedigree PRIMARY KEY (rowid) ); -/* EHR-11.118-11.119.sql */ - ALTER TABLE ehr.supplemental_pedigree add column birth timestamp, add column acquiredate timestamp, add column departdate timestamp ; -/* EHR-11.119-11.120.sql */ - ALTER TABLE ehr.tasks add column datecompleted timestamp ; - ALTER table ehr.qcStateMetadata add column allowFutureDates bool ; @@ -677,62 +617,48 @@ VALUES ('Scheduled', TRUE, FALSE, FALSE, TRUE) ; -/* EHR-11.120-11.121.sql */ - UPDATE ehr.qcStateMetadata SET DraftData = FALSE WHERE QCStateLabel = 'Delete Requested'; -/* EHR-11.121-11.122.sql */ - ALTER table ehr.reports add column sort_order integer ; -/* EHR-11.133-11.134.sql */ - insert into ehr.notificationtypes (notificationtype,description) VALUES ('Incompleted Treatments', 'An email will be sent each day at 8:30, 15:30 and 20:30 notifying of any incompleted treatments') ; -DROP TABLE IF EXISTS ehr.automatic_alerts; CREATE TABLE ehr.automatic_alerts ( -rowid serial not null, -title varchar(200) DEFAULT NULL, - -ContainerPath varchar(255) DEFAULT NULL, -SchemaName varchar(255) DEFAULT NULL, -QueryName varchar(255) DEFAULT NULL, -ViewName varchar(255) DEFAULT NULL, -notificationtype varchar(100) default null, -email_html text DEFAULT NULL, - -Container ENTITYID NOT NULL, -CreatedBy USERID NOT NULL, -Created TIMESTAMP NOT NULL, -ModifiedBy USERID NOT NULL, -Modified TIMESTAMP NOT NULL, - -CONSTRAINT PK_automatic_alerts PRIMARY KEY (rowid) + rowid serial not null, + title varchar(200) DEFAULT NULL, + + ContainerPath varchar(255) DEFAULT NULL, + SchemaName varchar(255) DEFAULT NULL, + QueryName varchar(255) DEFAULT NULL, + ViewName varchar(255) DEFAULT NULL, + notificationtype varchar(100) default null, + email_html text DEFAULT NULL, + + Container ENTITYID NOT NULL, + CreatedBy USERID NOT NULL, + Created TIMESTAMP NOT NULL, + ModifiedBy USERID NOT NULL, + Modified TIMESTAMP NOT NULL, + + CONSTRAINT PK_automatic_alerts PRIMARY KEY (rowid) ) WITH (OIDS=FALSE) ; -/* EHR-11.134-11.135.sql */ - -- INSERT command moved to EHR_Lookups-11.134-11.135.sql; -/* EHR-11.137-11.138.sql */ - alter table ehr.cage_observations add column feces varchar(100) ; -/* EHR-11.138-11.139.sql */ - -DROP TABLE IF EXISTS ehr.kinship; CREATE TABLE ehr.kinship ( RowId SERIAL NOT NULL, @@ -751,20 +677,14 @@ CREATE TABLE ehr.kinship ( update ehr.qcStateMetadata set qcstatelabel = 'Completed' WHERE qcstatelabel = 'Approved'; -/* EHR-11.145-11.146.sql */ - alter table ehr.formtypes add column permitsSingleIdOnly bool ; - - UPDATE ehr.qcStateMetadata SET DraftData = TRUE WHERE QCStateLabel = 'Review Requested'; -/* EHR-11.20-11.30.sql */ - insert into ehr.notificationtypes (notificationtype,description) VALUES ('Blood Draw Request Completed', 'An email will be sent each time a blood draw request is completed'), @@ -773,8 +693,6 @@ insert into ehr.notificationtypes ('Clinpath Request Denied', 'An email will be sent each time a clinpath request is denied') ; - - alter TABLE ehr.notificationRecipients add column Recipient2 integer ; @@ -793,7 +711,7 @@ alter TABLE ehr.notificationRecipients -- alter table ehr.protocols rename to protocol; DROP TABLE IF EXISTS ehr.protocols; -DROP TABLE IF EXISTS ehr.protocol; + CREATE TABLE ehr.protocol ( protocol varchar(4000) NOT NULL, @@ -834,7 +752,6 @@ CREATE TABLE ehr.project CONSTRAINT PK_project PRIMARY KEY (project) ); -DROP TABLE IF EXISTS ehr.protocolProcedures; CREATE TABLE ehr.protocolProcedures ( rowid serial not null, @@ -903,8 +820,6 @@ insert into ehr.notificationtypes ('Site Error Alerts', 'An hourly email will be sent if a new site error is reported.') ; -/* EHR-11.30-12.10.sql */ - drop TABLE ehr.client_errors; --modify column sizes: @@ -956,8 +871,6 @@ CREATE TABLE ehr.status --drop table ehr.qcstatemetadata; -/* EHR-12.20-12.30.sql */ - CREATE TABLE ehr.chargedItems ( rowid SERIAL NOT NULL, id varchar(100), @@ -1032,30 +945,30 @@ CREATE TABLE ehr.investigators ( --user / role for a given procedure CREATE TABLE ehr.encounter_participants ( - rowid serial, - userid int, - username varchar(500), - role varchar(200), - procedure_id entityid, - comment varchar(4000), - container entityid NOT NULL, - createdby userid, - created timestamp, - modifiedby userid, - modified timestamp, + rowid serial, + userid int, + username varchar(500), + role varchar(200), + procedure_id entityid, + comment varchar(4000), + container entityid NOT NULL, + createdby userid, + created timestamp, + modifiedby userid, + modified timestamp, - constraint pk_encounter_participants PRIMARY KEY (rowid) + constraint pk_encounter_participants PRIMARY KEY (rowid) ); ALTER TABLE ehr.protocol - add enddate timestamp, - add title varchar(1000), - add usda_level varchar(100), - add external_id varchar(200), - add project_type varchar(200), - add ibc_approval_required boolean, - add ibc_approval_num varchar(200) + add enddate timestamp, + add title varchar(1000), + add usda_level varchar(100), + add external_id varchar(200), + add project_type varchar(200), + add ibc_approval_required boolean, + add ibc_approval_num varchar(200) ; ALTER table ehr.project drop requestid; @@ -1069,48 +982,48 @@ ALTER TABLE ehr.animal_groups add column category varchar(100); ALTER TABLE ehr.animal_groups drop column container; CREATE TABLE ehr.animal_group_members ( - rowid serial, - date timestamp, - enddate timestamp, - groupname integer, - comment varchar(4000), + rowid serial, + date timestamp, + enddate timestamp, + groupname integer, + comment varchar(4000), - objectid entityid, - container entityid NOT NULL, - createdby userid, - created timestamp, - modifiedby userid, - modified timestamp, + objectid entityid, + container entityid NOT NULL, + createdby userid, + created timestamp, + modifiedby userid, + modified timestamp, - constraint pk_animal_group_members PRIMARY KEY (rowid) + constraint pk_animal_group_members PRIMARY KEY (rowid) ); CREATE TABLE ehr.scheduled_tasks ( - rowid serial, - taskid ENTITYID NOT NULL, - tasktype varchar(200), - date timestamp, - enddate timestamp, - frequency int, - id varchar(100), - location varchar(100), - description varchar(4000), - json text, + rowid serial, + taskid ENTITYID NOT NULL, + tasktype varchar(200), + date timestamp, + enddate timestamp, + frequency int, + id varchar(100), + location varchar(100), + description varchar(4000), + json text, - objectid entityid, - container entityid NOT NULL, - createdby userid, - created timestamp, - modifiedby userid, - modified timestamp, + objectid entityid, + container entityid NOT NULL, + createdby userid, + created timestamp, + modifiedby userid, + modified timestamp, - constraint pk_scheduled_tasks PRIMARY KEY (rowid) + constraint pk_scheduled_tasks PRIMARY KEY (rowid) ); CREATE TABLE ehr.scheduled_task_types ( - tasktype varchar(200), + tasktype varchar(200), - constraint pk_scheduled_task_types PRIMARY KEY (tasktype) + constraint pk_scheduled_task_types PRIMARY KEY (tasktype) ); ALTER TABLE ehr.encounter_participants ADD COLUMN objectid ENTITYID; @@ -1118,55 +1031,50 @@ ALTER TABLE ehr.encounter_participants ADD COLUMN objectid ENTITYID; ALTER TABLE ehr.project add contact_emails varchar(4000); ALTER TABLE ehr.project DROP COLUMN qcstate; -/* EHR-12.30-12.301.sql */ - ALTER TABLE ehr.snomed_tags ADD objectid ENTITYID; -/* EHR-12.301-12.302.sql */ - ALTER TABLE ehr.protocolProcedures ADD startdate timestamp; ALTER TABLE ehr.protocolProcedures ADD enddate timestamp; ALTER TABLE ehr.protocolProcedures ADD objectid entityid; - CREATE TABLE ehr.encounter_flags ( - rowid serial, - id varchar(100), - date timestamp, - parentid entityid, - schemaName varchar(100), - queryName varchar(100), - flag varchar(200), - value varchar(100), - remark varchar(4000), - - objectid entityid, - container entityid NOT NULL, - createdby userid, - created timestamp, - modifiedby userid, - modified timestamp, + rowid serial, + id varchar(100), + date timestamp, + parentid entityid, + schemaName varchar(100), + queryName varchar(100), + flag varchar(200), + value varchar(100), + remark varchar(4000), + + objectid entityid, + container entityid NOT NULL, + createdby userid, + created timestamp, + modifiedby userid, + modified timestamp, - constraint pk_encounter_flags PRIMARY KEY (rowid) + constraint pk_encounter_flags PRIMARY KEY (rowid) ); CREATE TABLE ehr.encounter_summaries ( - rowid serial, - id varchar(100), - date timestamp, - parentid entityid, - schemaName varchar(100), - queryName varchar(100), - remark text, - - objectid entityid, - container entityid NOT NULL, - createdby userid, - created timestamp, - modifiedby userid, - modified timestamp, + rowid serial, + id varchar(100), + date timestamp, + parentid entityid, + schemaName varchar(100), + queryName varchar(100), + remark text, + + objectid entityid, + container entityid NOT NULL, + createdby userid, + created timestamp, + modifiedby userid, + modified timestamp, - constraint pk_encounter_summaries PRIMARY KEY (rowid) + constraint pk_encounter_summaries PRIMARY KEY (rowid) ); alter table ehr.project add startdate timestamp; @@ -1180,20 +1088,18 @@ alter table ehr.accounts add fiscalAuthority varchar(200); drop table ehr.chargedItems; CREATE TABLE ehr.projectAccountHistory ( - rowid serial, - project int, - account varchar(200), - startdate timestamp, - enddate timestamp, - objectid entityid, - createdby userid, - created timestamp, - modifiedby userid, - modified timestamp + rowid serial, + project int, + account varchar(200), + startdate timestamp, + enddate timestamp, + objectid entityid, + createdby userid, + created timestamp, + modifiedby userid, + modified timestamp ); -/* EHR-12.302-12.303.sql */ - ALTER TABLE ehr.tasks ADD billingType int; alter table ehr.project add name varchar(100); @@ -1201,23 +1107,14 @@ alter table ehr.project add investigatorId int; alter table ehr.protocol add investigatorId int; -/* EHR-12.303-12.304.sql */ - DROP TABLE ehr.investigators; DROP TABLE ehr.accounts; - -/* EHR-12.304-12.305.sql */ - DROP TABLE ehr.projectAccountHistory; -/* EHR-12.315-12.316.sql */ - ALTER TABLE ehr.snomed_tags ADD set_number int default 1; update ehr.snomed_tags set set_number = 1 where set_number is null; -/* EHR-12.316-12.317.sql */ - ALTER TABLE ehr.encounter_participants rename procedure_id to parentid; CREATE INDEX encounter_flags_objectid ON ehr.encounter_flags (objectid); @@ -1236,12 +1133,8 @@ CREATE INDEX snomed_tags_objectid ON ehr.snomed_tags (objectid); CREATE INDEX snomed_tags_recordid ON ehr.snomed_tags (recordid); -/* EHR-12.317-12.318.sql */ - ALTER TABLE ehr.protocol ADD last_modification timestamp; -/* EHR-12.321-12.322.sql */ - ALTER TABLE ehr.protocol_counts add project integer; ALTER TABLE ehr.protocol_counts add start timestamp; ALTER TABLE ehr.protocol_counts add enddate timestamp; @@ -1255,8 +1148,6 @@ ALTER TABLE ehr.protocolProcedures add daysBetween integer; ALTER TABLE ehr.snomed_tags add id varchar(100); ALTER TABLE ehr.snomed_tags add date timestamp; -/* EHR-12.322-12.323.sql */ - ALTER TABLE ehr.encounter_participants add Id varchar(100); --see 12.321-12.322 @@ -1271,8 +1162,6 @@ CREATE INDEX snomed_tags_id ON ehr.snomed_tags (Id); CREATE INDEX snomed_tags_parentid ON ehr.snomed_tags (parentid); CREATE INDEX snomed_tags_caseid ON ehr.snomed_tags (caseid); -/* EHR-12.324-12.325.sql */ - DROP INDEX ehr.snomed_tags_objectid; ALTER TABLE ehr.snomed_tags ALTER COLUMN objectid TYPE varchar(50); CREATE INDEX snomed_tags_objectid ON ehr.snomed_tags (objectid); @@ -1289,8 +1178,6 @@ DROP INDEX ehr.encounter_summaries_objectid; ALTER TABLE ehr.encounter_summaries ALTER COLUMN objectid TYPE varchar(50); CREATE INDEX encounter_summaries_objectid ON ehr.encounter_summaries (objectid); -/* EHR-12.325-12.326.sql */ - DROP INDEX ehr.snomed_tags_objectid; ALTER TABLE ehr.snomed_tags ALTER COLUMN objectid TYPE varchar(60); CREATE INDEX snomed_tags_objectid ON ehr.snomed_tags (objectid); @@ -1307,8 +1194,6 @@ DROP INDEX ehr.encounter_summaries_objectid; ALTER TABLE ehr.encounter_summaries ALTER COLUMN objectid TYPE varchar(60); CREATE INDEX encounter_summaries_objectid ON ehr.encounter_summaries (objectid); -/* EHR-12.327-12.328.sql */ - ALTER TABLE ehr.animal_groups ADD container entityid; ALTER TABLE ehr.animal_groups ADD date timestamp; ALTER TABLE ehr.animal_groups ADD enddate timestamp; @@ -1321,47 +1206,27 @@ ALTER TABLE ehr.animal_group_members ADD id varchar(200); ALTER TABLE ehr.animal_group_members DROP COLUMN groupname; ALTER TABLE ehr.animal_group_members ADD groupId int; -/* EHR-12.329-12.330.sql */ - DROP INDEX ehr.encounter_encounter_participants_id; CREATE INDEX encounter_participants_id ON ehr.encounter_participants (id); -/* EHR-12.330-12.331.sql */ - ALTER TABLE ehr.protocol_counts ADD objectid entityid; -/* EHR-12.331-12.332.sql */ - --remove not null constraint alter table ehr.protocol_counts alter column protocol drop not null; -/* EHR-12.332-12.333.sql */ - CREATE INDEX snomed_tags_id_recordid ON ehr.snomed_tags (id, recordid); -/* EHR-12.334-12.335.sql */ - DROP INDEX ehr.snomed_tags_id_recordid; CREATE INDEX snomed_tags_id_recordid_code on ehr.snomed_tags (id, recordid, code); -/* EHR-12.335-12.336.sql */ - -; - -/* EHR-12.341-12.342.sql */ - alter table ehr.project add use_category varchar(100); -/* EHR-12.342-12.343.sql */ - CREATE INDEX animal_group_members_groupId_container ON ehr.animal_group_members (groupId, container); --NOTE: this is different than the SQLServer version CREATE INDEX project_investigatorid_project ON ehr.project (investigatorId, project); -/* EHR-12.343-12.344.sql */ - CREATE INDEX encounter_participants_container_rowid_id ON ehr.encounter_participants (container, rowid, id); CREATE INDEX encounter_participants_container_rowid_parentid ON ehr.encounter_participants (container, rowid, parentid); @@ -1372,12 +1237,8 @@ CREATE INDEX encounter_summaries_container_parentid ON ehr.encounter_summaries ( CREATE INDEX snomed_tags_recordid_rowid_id ON ehr.snomed_tags (recordid, rowid, id); CREATE INDEX snomed_tags_code_rowid_id_recordid ON ehr.snomed_tags (code, rowid, id, recordid); -/* EHR-12.344-12.345.sql */ - CREATE INDEX snomed_tags_recordid_container_code ON ehr.snomed_tags (recordid, container, code); -/* EHR-12.345-12.346.sql */ - CREATE TABLE ehr.treatment_times ( rowid serial, treatmentid entityid, @@ -1393,33 +1254,18 @@ CREATE TABLE ehr.treatment_times ( constraint PK_teatment_times PRIMARY KEY (rowid) ); -/* EHR-12.346-12.347.sql */ - CREATE INDEX project_name_project ON ehr.project (name, project); CREATE INDEX snomed_tags_code_container ON ehr.snomed_tags (code, container); -/* EHR-12.350-12.351.sql */ - ---NOTE: added sqlserver only index with this update -; - -/* EHR-12.355-12.356.sql */ - ALTER TABLE ehr.requests ADD sendemail bool; ALTER TABLE ehr.reports ADD subjectIdFieldName varchar(200); -/* EHR-12.356-12.357.sql */ - ALTER TABLE ehr.project ADD alwaysavailable bool; -/* EHR-12.358-12.359.sql */ - INSERT INTO ehr.qcstateMetadata (QCStateLabel,draftData,isDeleted,isRequest) VALUES ('Request: Sample Delivered', TRUE, FALSE, TRUE); -/* EHR-12.359-12.360.sql */ - CREATE TABLE ehr.protocolexemptions ( rowid SERIAL, protocol VARCHAR(100), @@ -1438,16 +1284,10 @@ CREATE TABLE ehr.protocolexemptions ( CONSTRAINT PK_protocolExemptions PRIMARY KEY (rowid) ); -/* EHR-12.361-12.362.sql */ - ALTER TABLE ehr.snomed_tags ADD taskid entityid; -/* EHR-12.362-12.363.sql */ - ALTER TABLE ehr.encounter_participants ADD taskid entityid; -/* EHR-12.363-12.364.sql */ - truncate table ehr.encounter_participants; --this might have been created by EHRManager @@ -1464,8 +1304,6 @@ SELECT core.fn_dropifexists('encounter_participants', 'ehr', 'INDEX', 'encounter ALTER TABLE ehr.encounter_participants DROP COLUMN rowid; -/* EHR-12.364-12.365.sql */ - --this might have been created by EHRManager SELECT core.fn_dropifexists('encounter_participants', 'ehr', 'INDEX', 'encounter_participants_objectid'); SELECT core.fn_dropifexists('encounter_participants', 'ehr', 'CONSTRAINT', 'pk_encounter_participants'); @@ -1474,12 +1312,8 @@ ALTER TABLE ehr.encounter_participants ALTER COLUMN objectid TYPE VARCHAR(60); ALTER TABLE ehr.encounter_participants ADD CONSTRAINT pk_encounter_participants PRIMARY KEY (objectid); -/* EHR-12.371-12.372.sql */ - ALTER TABLE ehr.project ADD shortname varchar(200); -/* EHR-12.372-12.373.sql */ - --this might have been created by EHRManager SELECT core.fn_dropifexists('encounter_summaries', 'ehr', 'index', 'encounter_summaries_objectid'); SELECT core.fn_dropifexists('encounter_summaries', 'ehr', 'index', 'encounter_summaries_parentid_rowid_container_id'); @@ -1492,8 +1326,6 @@ ALTER TABLE ehr.encounter_summaries ALTER COLUMN objectid SET NOT NULL; ALTER TABLE ehr.encounter_summaries ADD CONSTRAINT PK_encounter_summaries PRIMARY KEY (objectid); ALTER TABLE ehr.encounter_summaries DROP COLUMN rowid; -/* EHR-12.373-12.374.sql */ - CREATE INDEX encounter_summaries_objectid ON ehr.encounter_summaries (objectid); CREATE INDEX encounter_summaries_parentid_objectid_container_id ON ehr.encounter_summaries (parentid, objectid, container, id); CREATE INDEX encounter_summaries_container_objectid ON ehr.encounter_summaries (container, objectid); @@ -1503,29 +1335,17 @@ CREATE INDEX encounter_participants_taskid ON ehr.encounter_participants (taskid CREATE INDEX snomed_tags_taskid ON ehr.snomed_tags (taskid); -/* EHR-12.374-12.375.sql */ - CREATE INDEX treatment_times_container_treatmentid ON ehr.treatment_times (container, treatmentid); -/* EHR-12.376-12.377.sql */ - INSERT INTO ehr.qcStateMetadata (QCStateLabel,DraftData,isDeleted,isRequest,allowFutureDates) VALUES ('Request: Cancelled', false, false, true, true); -/* EHR-12.378-12.379.sql */ - ALTER TABLE ehr.project ADD projecttype varchar(100); -/* EHR-12.379-12.380.sql */ - ALTER TABLE ehr.formtemplates ADD category varchar(100); -/* EHR-12.381-12.382.sql */ - ALTER TABLE ehr.formtemplates drop column template; ALTER TABLE ehr.formtemplaterecords ADD targettemplate varchar(100); -/* EHR-12.384-12.385.sql */ - ALTER TABLE ehr.snomed_tags DROP CONSTRAINT PK_snomed_tags; DROP INDEX ehr.snomed_tags_recordid_rowid_id; DROP INDEX ehr.snomed_tags_code_rowid_id_recordid; @@ -1543,8 +1363,6 @@ ALTER TABLE ehr.snomed_tags ALTER COLUMN objectid SET NOT NULL; CREATE INDEX snomed_tags_objectid on ehr.snomed_tags (objectid); ALTER TABLE ehr.snomed_tags ADD CONSTRAINT PK_snomed_tags PRIMARY KEY (objectid); -/* EHR-12.385-12.386.sql */ - --removed after monitoring usage on site DROP INDEX ehr.encounter_summaries_parentid; DROP INDEX ehr.encounter_summaries_parentid_objectid_container_id; @@ -1559,20 +1377,10 @@ DROP INDEX ehr.snomed_tags_id; DROP INDEX ehr.snomed_tags_recordid; DROP INDEX ehr.snomed_tags_recordid_container_code; -/* EHR-12.386-12.387.sql */ - DROP INDEX ehr.snomed_tags_objectid; -/* EHR-12.387-12.388.sql */ - ALTER TABLE ehr.encounter_summaries ADD category varchar(100); - -/* EHR-12.388-12.389.sql */ - ALTER TABLE ehr.snomed_tags ADD parentid entityid; - -/* EHR-12.393-12.394.sql */ - ALTER TABLE ehr.project ADD container entityid; ALTER TABLE ehr.protocol ADD container entityid; @@ -1588,8 +1396,6 @@ UPDATE ehr.protocol SET container = (SELECT c.entityid from core.containers c LE DELETE FROM ehr.project WHERE container IS NULL; DELETE FROM ehr.protocol WHERE container IS NULL; -/* EHR-12.394-12.395.sql */ - ALTER TABLE ehr.project DROP CONSTRAINT PK_project; ALTER TABLE ehr.protocol DROP CONSTRAINT PK_protocol; @@ -1599,8 +1405,6 @@ ALTER TABLE ehr.protocol ADD objectid UUID NOT NULL DEFAULT ehr.uuid(); ALTER TABLE ehr.project ADD CONSTRAINT PK_project PRIMARY KEY (objectid); ALTER TABLE ehr.protocol ADD CONSTRAINT PK_protocol PRIMARY KEY (objectid); -/* EHR-12.395-12.396.sql */ - ALTER TABLE ehr.project DROP CONSTRAINT PK_project; ALTER TABLE ehr.protocol DROP CONSTRAINT PK_protocol; @@ -1610,22 +1414,16 @@ ALTER TABLE ehr.protocol ALTER COLUMN objectid TYPE entityid; ALTER TABLE ehr.project ADD CONSTRAINT PK_project PRIMARY KEY (objectid); ALTER TABLE ehr.protocol ADD CONSTRAINT PK_protocol PRIMARY KEY (objectid); -/* EHR-12.397-12.398.sql */ - CREATE INDEX IDX_project_container_project_protocol ON ehr.project (container, project, protocol); CREATE INDEX IDX_project_container_project_investigatorid ON ehr.project (container, project, investigatorid); CREATE INDEX IDX_protocol_container_protocol ON ehr.protocol (container, protocol); CREATE INDEX IDX_container_taskid_formtype ON ehr.tasks (container, taskid, formtype); -/* EHR-12.399-12.400.sql */ - ALTER TABLE ehr.animal_group_members ADD releaseType VARCHAR(200); ALTER TABLE ehr.animal_group_members ADD taskid entityid; ALTER TABLE ehr.animal_group_members ADD qcstate integer; -/* EHR-12.400-12.401.sql */ - ALTER TABLE ehr.animal_group_members DROP CONSTRAINT pk_animal_group_members; ALTER TABLE ehr.animal_group_members DROP COLUMN rowid; ALTER TABLE ehr.animal_group_members DROP COLUMN comment; @@ -1633,8 +1431,6 @@ ALTER TABLE ehr.animal_group_members ADD remark varchar(4000); ALTER TABLE ehr.animal_group_members ALTER COLUMN objectid SET NOT NULL; ALTER TABLE ehr.animal_group_members ADD CONSTRAINT pk_animal_group_members PRIMARY KEY (objectid); -/* EHR-12.402-12.403.sql */ - ALTER TABLE ehr.snomed_tags ADD formsort integer; ALTER TABLE ehr.snomed_tags ADD date timestamp; ALTER TABLE ehr.encounter_summaries ADD formsort integer; @@ -1643,44 +1439,26 @@ ALTER TABLE ehr.encounter_participants ADD formsort integer; ALTER TABLE ehr.formtemplates ADD hidden bool default false; UPDATE ehr.formtemplates SET hidden = false; -/* EHR-12.404-12.405.sql */ - alter table ehr.kinship alter column coefficient TYPE double precision; -/* EHR-12.409-12.410.sql */ - CREATE INDEX IDX_requests_requestid_container ON ehr.requests (requestid, container); CREATE INDEX IDX_container_project_objectid_name ON ehr.project (container, project, objectid, name); -/* EHR-12.415-12.416.sql */ - ALTER TABLE ehr.protocol ADD lastAnnualReview timestamp; -/* EHR-12.416-12.417.sql */ - ALTER TABLE ehr.protocol_counts ADD description varchar(4000); -/* EHR-12.417-12.418.sql */ - DROP INDEX ehr.encounter_flags_objectid; DROP INDEX ehr.encounter_flags_parentid; -/* EHR-12.418-12.419.sql */ - ALTER TABLE ehr.formtemplates DROP CONSTRAINT UNIQUE_formTemplates; ALTER TABLE ehr.formtemplates ADD CONSTRAINT UNIQUE_formTemplates UNIQUE (container, formtype, title); -/* EHR-12.419-12.420.sql */ - UPDATE ehr.qcStateMetadata SET draftData = true WHERE QCStateLabel = 'Review Required'; -/* EHR-12.421-12.422.sql */ - CREATE INDEX IDX_treatment_times_treatmentid ON ehr.treatment_times (treatmentid); -/* EHR-12.424-12.425.sql */ - CREATE FUNCTION ehr.handleUpgrade() RETURNS VOID AS $$ DECLARE BEGIN @@ -1704,42 +1482,34 @@ SELECT core.fn_dropifexists('treatment_times', 'ehr', 'Index', 'IDX_treatment_ti CREATE INDEX IDX_treatment_times_treatmentid ON ehr.treatment_times (treatmentid); -/* EHR-12.425-12.426.sql */ - ALTER TABLE ehr.project ALTER COLUMN Title TYPE VARCHAR(400); -/* ehr-16.10-16.20.sql */ - DROP TABLE IF EXISTS ehr.animal_group_members; -/* ehr-16.20-16.30.sql */ - CREATE TABLE ehr.institutions ( - id int not null, - name varchar(50), - abbreviation varchar(10), - city varchar(40), - state varchar(2), - country varchar(20), - affiliate varchar(100), - web_site varchar(200), - fileStatus varchar(2), - recordClass varchar(4), - objectid varchar(100), - Created TIMESTAMP, - CreatedBy USERID, - Modified TIMESTAMP, - ModifiedBy USERID, - Container entityId NOT NULL, - - CONSTRAINT PK_EHR_INSTITUTIONS PRIMARY KEY (id), - CONSTRAINT FK_EHR_INSTITUTIONS FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) + id int not null, + name varchar(50), + abbreviation varchar(10), + city varchar(40), + state varchar(2), + country varchar(20), + affiliate varchar(100), + web_site varchar(200), + fileStatus varchar(2), + recordClass varchar(4), + objectid varchar(100), + Created TIMESTAMP, + CreatedBy USERID, + Modified TIMESTAMP, + ModifiedBy USERID, + Container entityId NOT NULL, + + CONSTRAINT PK_EHR_INSTITUTIONS PRIMARY KEY (id), + CONSTRAINT FK_EHR_INSTITUTIONS FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) ); CREATE INDEX EHR_INSTITUTIONS_CONTAINER_INDEX ON ehr.institutions(Container); -/* ehr-16.30-17.10.sql */ - ALTER TABLE ehr.animal_groups ADD COLUMN diCreatedBy USERID; ALTER TABLE ehr.animal_groups ADD COLUMN diCreated TIMESTAMP; ALTER TABLE ehr.animal_groups ADD COLUMN diModifiedBy USERID; @@ -1755,24 +1525,22 @@ ALTER TABLE ehr.protocol ADD COLUMN diCreated TIMESTAMP; ALTER TABLE ehr.protocol ADD COLUMN diModifiedBy USERID; ALTER TABLE ehr.protocol ADD COLUMN diModified TIMESTAMP; -/* ehr-17.20-17.30.sql */ - CREATE TABLE ehr.observation_types ( - rowid serial NOT NULL, - value varchar(200), - category varchar(200), - editorconfig varchar(4000), - schemaname varchar(200), - queryname varchar(200), - valuecolumn varchar(200), - Created TIMESTAMP, - CreatedBy USERID, - Modified TIMESTAMP, - ModifiedBy USERID, - Container entityId NOT NULL, - - CONSTRAINT PK_EHR_OBSERVATION_TYPES PRIMARY KEY (rowid), - CONSTRAINT FK_EHR_OBSERVATION_TYPES_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) + rowid serial NOT NULL, + value varchar(200), + category varchar(200), + editorconfig varchar(4000), + schemaname varchar(200), + queryname varchar(200), + valuecolumn varchar(200), + Created TIMESTAMP, + CreatedBy USERID, + Modified TIMESTAMP, + ModifiedBy USERID, + Container entityId NOT NULL, + + CONSTRAINT PK_EHR_OBSERVATION_TYPES PRIMARY KEY (rowid), + CONSTRAINT FK_EHR_OBSERVATION_TYPES_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) ); CREATE INDEX EHR_OBSERVATION_TYPES_CONTAINER_INDEX ON ehr.observation_types (Container); @@ -1781,69 +1549,63 @@ ALTER TABLE ehr.project ADD COLUMN LSID LSIDtype; ALTER TABLE ehr.reports ADD COLUMN ReportStatus TEXT; -/* ehr-17.30-18.10.sql */ - -- add LSID column to tables to allow them to be extensible ALTER TABLE ehr.protocol_counts ADD COLUMN lsid LSIDtype; ALTER TABLE ehr.snomed_tags ADD COLUMN lsid LSIDtype; CREATE TABLE ehr.protocol_amendments ( - RowId SERIAL NOT NULL, - Created TIMESTAMP, - CreatedBy USERID, - Modified TIMESTAMP, - ModifiedBy USERID, - Container ENTITYID NOT NULL, - ObjectId ENTITYID, - - Project INTEGER, - Protocol VARCHAR(200), - Date TIMESTAMP, - Submitted TIMESTAMP, - Approved TIMESTAMP, - Comment VARCHAR(4000), - Lsid LSIDtype, - - CONSTRAINT PK_protocol_amendments PRIMARY KEY (RowId), - CONSTRAINT FK_protocol_amendments_Container FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) -); + RowId SERIAL NOT NULL, + Created TIMESTAMP, + CreatedBy USERID, + Modified TIMESTAMP, + ModifiedBy USERID, + Container ENTITYID NOT NULL, + ObjectId ENTITYID, -/* ehr-18.20-18.30.sql */ + Project INTEGER, + Protocol VARCHAR(200), + Date TIMESTAMP, + Submitted TIMESTAMP, + Approved TIMESTAMP, + Comment VARCHAR(4000), + Lsid LSIDtype, + + CONSTRAINT PK_protocol_amendments PRIMARY KEY (RowId), + CONSTRAINT FK_protocol_amendments_Container FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) +); CREATE TABLE ehr.investigators ( - rowid SERIAL NOT NULL, - firstName varchar(100), - lastName varchar(100), - position varchar(100), - address varchar(500), - city varchar(100), - state varchar(100), - country varchar(100), - zip varchar(100), - phoneNumber varchar(100), - investigatorType varchar(100), - emailAddress varchar(100), - dateCreated timestamp, - dateDisabled timestamp, - division varchar(100), - userid int, - - Lsid LSIDtype, - Created TIMESTAMP, - CreatedBy USERID, - Modified TIMESTAMP, - ModifiedBy USERID, - Container ENTITYID NOT NULL, - - CONSTRAINT PK_EHR_INVESTIGATORS PRIMARY KEY (rowid), - CONSTRAINT FK_EHR_INVESTIGATORS_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) + rowid SERIAL NOT NULL, + firstName varchar(100), + lastName varchar(100), + position varchar(100), + address varchar(500), + city varchar(100), + state varchar(100), + country varchar(100), + zip varchar(100), + phoneNumber varchar(100), + investigatorType varchar(100), + emailAddress varchar(100), + dateCreated timestamp, + dateDisabled timestamp, + division varchar(100), + userid int, + + Lsid LSIDtype, + Created TIMESTAMP, + CreatedBy USERID, + Modified TIMESTAMP, + ModifiedBy USERID, + Container ENTITYID NOT NULL, + + CONSTRAINT PK_EHR_INVESTIGATORS PRIMARY KEY (rowid), + CONSTRAINT FK_EHR_INVESTIGATORS_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) ); CREATE INDEX IX_EHR_INVESTIGATORS_CONTAINER ON ehr.investigators (Container); -/* ehr-18.30-19.10.sql */ - ALTER TABLE ehr.investigators ADD financialanalyst int; -- ehr-17.20-17.21.sql @@ -2029,4 +1791,41 @@ INSERT INTO ehr.status VALUES ('Request: On Hold', 'Request has been put on hold', FALSE, FALSE, FALSE, TRUE, TRUE); -CREATE INDEX snomed_tags_recordid ON ehr.snomed_tags (recordid); \ No newline at end of file +CREATE INDEX snomed_tags_recordid ON ehr.snomed_tags (recordid); + +ALTER TABLE ehr.animal_groups ALTER COLUMN purpose TYPE text; + +ALTER TABLE ehr.encounter_flags ALTER COLUMN remark TYPE text; + +ALTER TABLE ehr.encounter_participants ALTER COLUMN comment TYPE text; + +ALTER TABLE ehr.formpanelsections ALTER COLUMN metadatasources TYPE text; +ALTER TABLE ehr.formpanelsections ALTER COLUMN buttons TYPE text; +ALTER TABLE ehr.formpanelsections ALTER COLUMN initialtemplates TYPE text; + +ALTER TABLE ehr.formtypes ALTER COLUMN configjson TYPE text; + +ALTER TABLE ehr.observation_types ALTER COLUMN editorconfig TYPE text; + +ALTER TABLE ehr.project ALTER COLUMN contact_emails TYPE text; + +ALTER TABLE ehr.protocol_amendments ALTER COLUMN Comment TYPE text; + +ALTER TABLE ehr.protocol_counts ALTER COLUMN description TYPE text; + +ALTER TABLE ehr.protocolexemptions ALTER COLUMN remark TYPE text; + +ALTER TABLE ehr.protocolprocedures ALTER COLUMN remark TYPE text; + +ALTER TABLE ehr.reports ALTER COLUMN jsonconfig TYPE text; +ALTER TABLE ehr.reports ALTER COLUMN description TYPE text; + +ALTER TABLE ehr.requests ALTER COLUMN remark TYPE text; + +ALTER TABLE ehr.scheduled_tasks ALTER COLUMN description TYPE text; + +ALTER TABLE ehr.status ALTER COLUMN description TYPE text; + +ALTER TABLE ehr.supplemental_pedigree ALTER COLUMN species TYPE text; + +ALTER TABLE ehr.notificationrecipients ADD COLUMN LSID LSIDtype; diff --git a/ehr/resources/schemas/dbscripts/postgresql/ehr-23.000-23.001.sql b/ehr/resources/schemas/dbscripts/postgresql/ehr-23.000-23.001.sql deleted file mode 100644 index 7ec92df00..000000000 --- a/ehr/resources/schemas/dbscripts/postgresql/ehr-23.000-23.001.sql +++ /dev/null @@ -1,34 +0,0 @@ -ALTER TABLE ehr.animal_groups ALTER COLUMN purpose TYPE text; - -ALTER TABLE ehr.encounter_flags ALTER COLUMN remark TYPE text; - -ALTER TABLE ehr.encounter_participants ALTER COLUMN comment TYPE text; - -ALTER TABLE ehr.formpanelsections ALTER COLUMN metadatasources TYPE text; -ALTER TABLE ehr.formpanelsections ALTER COLUMN buttons TYPE text; -ALTER TABLE ehr.formpanelsections ALTER COLUMN initialtemplates TYPE text; - -ALTER TABLE ehr.formtypes ALTER COLUMN configjson TYPE text; - -ALTER TABLE ehr.observation_types ALTER COLUMN editorconfig TYPE text; - -ALTER TABLE ehr.project ALTER COLUMN contact_emails TYPE text; - -ALTER TABLE ehr.protocol_amendments ALTER COLUMN Comment TYPE text; - -ALTER TABLE ehr.protocol_counts ALTER COLUMN description TYPE text; - -ALTER TABLE ehr.protocolexemptions ALTER COLUMN remark TYPE text; - -ALTER TABLE ehr.protocolprocedures ALTER COLUMN remark TYPE text; - -ALTER TABLE ehr.reports ALTER COLUMN jsonconfig TYPE text; -ALTER TABLE ehr.reports ALTER COLUMN description TYPE text; - -ALTER TABLE ehr.requests ALTER COLUMN remark TYPE text; - -ALTER TABLE ehr.scheduled_tasks ALTER COLUMN description TYPE text; - -ALTER TABLE ehr.status ALTER COLUMN description TYPE text; - -ALTER TABLE ehr.supplemental_pedigree ALTER COLUMN species TYPE text; \ No newline at end of file diff --git a/ehr/resources/schemas/dbscripts/postgresql/ehr-23.001-23.002.sql b/ehr/resources/schemas/dbscripts/postgresql/ehr-23.001-23.002.sql deleted file mode 100644 index fbdbea578..000000000 --- a/ehr/resources/schemas/dbscripts/postgresql/ehr-23.001-23.002.sql +++ /dev/null @@ -1 +0,0 @@ -ALTER TABLE ehr.notificationrecipients ADD COLUMN LSID LSIDtype; \ No newline at end of file diff --git a/ehr/resources/schemas/dbscripts/sqlserver/ehr-0.000-22.000.sql b/ehr/resources/schemas/dbscripts/sqlserver/ehr-0.000-24.000.sql similarity index 63% rename from ehr/resources/schemas/dbscripts/sqlserver/ehr-0.000-22.000.sql rename to ehr/resources/schemas/dbscripts/sqlserver/ehr-0.000-24.000.sql index 627abd27e..6fedfc6a7 100644 --- a/ehr/resources/schemas/dbscripts/sqlserver/ehr-0.000-22.000.sql +++ b/ehr/resources/schemas/dbscripts/sqlserver/ehr-0.000-24.000.sql @@ -4,8 +4,6 @@ * Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0 */ -/* EHR-11.30-12.10.sql */ - CREATE SCHEMA ehr; GO @@ -457,8 +455,6 @@ INSERT INTO ehr.status (label,Description,PublicData,DraftData,isDeleted,isReque --drop table ehr.qcstatemetadata; -/* EHR-12.20-12.30.sql */ - CREATE TABLE ehr.chargedItems ( rowid INT IDENTITY (1,1) NOT NULL, id varchar(100), @@ -616,12 +612,8 @@ ALTER TABLE ehr.encounter_participants add objectid ENTITYID; ALTER TABLE ehr.project add contact_emails varchar(4000); ALTER TABLE ehr.project DROP COLUMN qcstate; -/* EHR-12.30-12.301.sql */ - ALTER TABLE ehr.snomed_tags ADD objectid ENTITYID; -/* EHR-12.301-12.302.sql */ - ALTER TABLE ehr.protocolProcedures ADD startdate datetime; ALTER TABLE ehr.protocolProcedures ADD enddate datetime; ALTER TABLE ehr.protocolProcedures ADD objectid entityid; @@ -689,8 +681,6 @@ CREATE TABLE ehr.projectAccountHistory ( modified datetime ); -/* EHR-12.302-12.303.sql */ - ALTER TABLE ehr.tasks ADD billingType int; alter table ehr.project add name varchar(100); @@ -698,23 +688,15 @@ alter table ehr.project add investigatorId int; alter table ehr.protocol add investigatorId int; -/* EHR-12.303-12.304.sql */ - DROP TABLE ehr.investigators; DROP TABLE ehr.accounts; -/* EHR-12.304-12.305.sql */ - DROP TABLE ehr.projectAccountHistory; -/* EHR-12.315-12.316.sql */ - ALTER TABLE ehr.snomed_tags ADD set_number int default 1; go update ehr.snomed_tags set set_number = 1 where set_number is null; -/* EHR-12.316-12.317.sql */ - ALTER TABLE ehr.encounter_participants DROP COLUMN procedure_id; ALTER TABLE ehr.encounter_participants ADD parentid entityid; @@ -736,12 +718,8 @@ CREATE INDEX snomed_tags_objectid ON ehr.snomed_tags (objectid); CREATE INDEX snomed_tags_recordid ON ehr.snomed_tags (recordid); -/* EHR-12.317-12.318.sql */ - ALTER TABLE ehr.protocol ADD last_modification datetime; -/* EHR-12.321-12.322.sql */ - ALTER TABLE ehr.protocol_counts add project integer; ALTER TABLE ehr.protocol_counts add start datetime; ALTER TABLE ehr.protocol_counts add enddate datetime; @@ -752,8 +730,6 @@ ALTER TABLE ehr.protocol add first_approval datetime; ALTER TABLE ehr.protocolProcedures add project integer; ALTER TABLE ehr.protocolProcedures add daysBetween integer; -/* EHR-12.322-12.323.sql */ - ALTER TABLE ehr.encounter_participants add Id varchar(100); ALTER TABLE ehr.snomed_tags ADD Id varchar(100); @@ -768,8 +744,6 @@ CREATE INDEX snomed_tags_id ON ehr.snomed_tags (id); CREATE INDEX snomed_tags_parentid ON ehr.snomed_tags (parentid); CREATE INDEX snomed_tags_caseid ON ehr.snomed_tags (caseid); -/* EHR-12.324-12.325.sql */ - DROP INDEX snomed_tags_objectid ON ehr.snomed_tags; ALTER TABLE ehr.snomed_tags ALTER COLUMN objectid varchar(50); CREATE INDEX snomed_tags_objectid ON ehr.snomed_tags (objectid); @@ -786,8 +760,6 @@ DROP INDEX encounter_summaries_objectid ON ehr.encounter_summaries; ALTER TABLE ehr.encounter_summaries ALTER COLUMN objectid varchar(50); CREATE INDEX encounter_summaries_objectid ON ehr.encounter_summaries (objectid); -/* EHR-12.325-12.326.sql */ - DROP INDEX snomed_tags_objectid ON ehr.snomed_tags; ALTER TABLE ehr.snomed_tags ALTER COLUMN objectid varchar(60); CREATE INDEX snomed_tags_objectid ON ehr.snomed_tags (objectid); @@ -804,8 +776,6 @@ DROP INDEX encounter_summaries_objectid ON ehr.encounter_summaries; ALTER TABLE ehr.encounter_summaries ALTER COLUMN objectid varchar(60); CREATE INDEX encounter_summaries_objectid ON ehr.encounter_summaries (objectid); -/* EHR-12.327-12.328.sql */ - ALTER TABLE ehr.animal_groups ADD container entityid; ALTER TABLE ehr.animal_groups ADD date datetime; ALTER TABLE ehr.animal_groups ADD enddate datetime; @@ -818,47 +788,27 @@ ALTER TABLE ehr.animal_group_members ADD id varchar(200); ALTER TABLE ehr.animal_group_members DROP COLUMN groupname; ALTER TABLE ehr.animal_group_members ADD groupId int; -/* EHR-12.329-12.330.sql */ - DROP INDEX encounter_encounter_participants_id ON ehr.encounter_participants; CREATE INDEX encounter_participants_id ON ehr.encounter_participants (id); -/* EHR-12.330-12.331.sql */ - ALTER TABLE ehr.protocol_counts ADD objectid entityid; -/* EHR-12.331-12.332.sql */ - --remove not null constraint alter table ehr.protocol_counts alter column protocol varchar(200) null; -/* EHR-12.332-12.333.sql */ - CREATE INDEX snomed_tags_id_recordid ON ehr.snomed_tags (id, recordid); -/* EHR-12.334-12.335.sql */ - DROP INDEX snomed_tags_id_recordid ON ehr.snomed_tags; CREATE INDEX snomed_tags_id_recordid_code on ehr.snomed_tags (id, recordid, code); -/* EHR-12.335-12.336.sql */ - -; - -/* EHR-12.341-12.342.sql */ - alter table ehr.project add use_category varchar(100); -/* EHR-12.342-12.343.sql */ - CREATE INDEX animal_group_members_groupId_container ON ehr.animal_group_members (groupId, container); --NOTE: this is different than the SQLServer version CREATE INDEX project_investigatorid_project ON ehr.project (investigatorId ASC, project ASC) INCLUDE (name); -/* EHR-12.343-12.344.sql */ - CREATE INDEX encounter_participants_container_rowid_id ON ehr.encounter_participants (container, rowid, id); CREATE INDEX encounter_participants_container_rowid_parentid ON ehr.encounter_participants (container, rowid, parentid); @@ -869,35 +819,27 @@ CREATE INDEX encounter_summaries_container_parentid ON ehr.encounter_summaries ( CREATE INDEX snomed_tags_recordid_rowid_id ON ehr.snomed_tags (recordid, rowid, id); CREATE INDEX snomed_tags_code_rowid_id_recordid ON ehr.snomed_tags (code, rowid, id, recordid); -/* EHR-12.344-12.345.sql */ - CREATE INDEX snomed_tags_recordid_container_code ON ehr.snomed_tags (recordid, container, code); -/* EHR-12.345-12.346.sql */ - CREATE TABLE ehr.treatment_times ( - rowid int identity(1,1), - treatmentid entityid, - time int, + rowid int identity(1,1), + treatmentid entityid, + time int, - objectid entityid, - container entityid, - created datetime, - createdby int, - modified datetime, - modifiedby int, + objectid entityid, + container entityid, + created datetime, + createdby int, + modified datetime, + modifiedby int, - constraint PK_teatment_times PRIMARY KEY (rowid) + constraint PK_teatment_times PRIMARY KEY (rowid) ); -/* EHR-12.346-12.347.sql */ - CREATE INDEX project_name_project ON ehr.project (name, project); CREATE INDEX snomed_tags_code_container ON ehr.snomed_tags (code, container); -/* EHR-12.350-12.351.sql */ - --NOTE: this change is not applied to postgres ALTER TABLE ehr.snomed_tags DROP PK_snomed_tags; ALTER TABLE ehr.snomed_tags ADD CONSTRAINT PK_snomed_tags PRIMARY KEY NONCLUSTERED (rowid); @@ -907,50 +849,36 @@ CREATE CLUSTERED INDEX CIDX_snomed_tags ON --NOTE: free versions of SQLServer do not support compression, so we cannot add this in the upgrade script. --WITH (DATA_COMPRESSION = ROW); -/* EHR-12.355-12.356.sql */ - ALTER TABLE ehr.requests ADD sendemail bit; ALTER TABLE ehr.reports ADD subjectIdFieldName varchar(200); -/* EHR-12.356-12.357.sql */ - ALTER TABLE ehr.project ADD alwaysavailable bit; -/* EHR-12.358-12.359.sql */ - INSERT INTO ehr.qcstateMetadata (QCStateLabel,draftData,isDeleted,isRequest) VALUES ('Request: Sample Delivered', 1, 0, 1); -/* EHR-12.359-12.360.sql */ - CREATE TABLE ehr.protocolexemptions( - rowid int identity(1,1), - protocol VARCHAR(100), - project INTEGER, - exemption VARCHAR(200), - startdate DATETIME, - enddate DATETIME, - remark VARCHAR(4000), - - container ENTITYID, - createdby INTEGER, - created DATETIME , - modifiedby INTEGER, - modified DATETIME, - - CONSTRAINT PK_protocolExemptions PRIMARY KEY (rowid) -); + rowid int identity(1,1), + protocol VARCHAR(100), + project INTEGER, + exemption VARCHAR(200), + startdate DATETIME, + enddate DATETIME, + remark VARCHAR(4000), -/* EHR-12.361-12.362.sql */ + container ENTITYID, + createdby INTEGER, + created DATETIME , + modifiedby INTEGER, + modified DATETIME, -ALTER TABLE ehr.snomed_tags ADD taskid entityid; + CONSTRAINT PK_protocolExemptions PRIMARY KEY (rowid) +); -/* EHR-12.362-12.363.sql */ +ALTER TABLE ehr.snomed_tags ADD taskid entityid; ALTER TABLE ehr.encounter_participants ADD taskid entityid; -/* EHR-12.363-12.364.sql */ - truncate table ehr.encounter_participants; --this might have been created by EHRManager @@ -966,11 +894,8 @@ EXEC core.fn_dropifexists 'encounter_participants', 'ehr', 'index', 'encounter_p EXEC core.fn_dropifexists 'encounter_participants', 'ehr', 'index', 'encounter_participants_container_rowid_parentid'; GO - ALTER TABLE ehr.encounter_participants DROP COLUMN rowid; -/* EHR-12.364-12.365.sql */ - --this might have been created by EHRManager EXEC core.fn_dropifexists 'encounter_participants', 'ehr', 'index', 'encounter_participants_objectid'; EXEC core.fn_dropifexists 'encounter_participants', 'ehr', 'CONSTRAINT', 'PK_encounter_participants'; @@ -981,12 +906,8 @@ GO ALTER TABLE ehr.encounter_participants ADD CONSTRAINT pk_encounter_participants PRIMARY KEY (objectid); -/* EHR-12.371-12.372.sql */ - ALTER TABLE ehr.project ADD shortname varchar(200); -/* EHR-12.372-12.373.sql */ - --this might have been created by EHRManager EXEC core.fn_dropifexists 'encounter_summaries', 'ehr', 'index', 'encounter_summaries_objectid'; EXEC core.fn_dropifexists 'encounter_summaries', 'ehr', 'index', 'encounter_summaries_parentid_rowid_container_id'; @@ -1001,8 +922,6 @@ ALTER TABLE ehr.encounter_summaries ADD CONSTRAINT PK_encounter_summaries PRIMAR GO ALTER TABLE ehr.encounter_summaries DROP COLUMN rowid; -/* EHR-12.373-12.374.sql */ - CREATE INDEX encounter_summaries_objectid ON ehr.encounter_summaries (objectid); CREATE INDEX encounter_summaries_parentid_objectid_container_id ON ehr.encounter_summaries (parentid, objectid, container, id); CREATE INDEX encounter_summaries_container_objectid ON ehr.encounter_summaries (container, objectid); @@ -1012,29 +931,17 @@ CREATE INDEX encounter_participants_taskid ON ehr.encounter_participants (taskid CREATE INDEX snomed_tags_taskid ON ehr.snomed_tags (taskid); -/* EHR-12.374-12.375.sql */ - CREATE INDEX treatment_times_container_treatmentid ON ehr.treatment_times (container, treatmentid); -/* EHR-12.376-12.377.sql */ - INSERT INTO ehr.qcStateMetadata (QCStateLabel,DraftData,isDeleted,isRequest,allowFutureDates) VALUES ('Request: Cancelled', 0, 0, 1, 1); -/* EHR-12.378-12.379.sql */ - ALTER TABLE ehr.project ADD projecttype varchar(100); -/* EHR-12.379-12.380.sql */ - ALTER TABLE ehr.formtemplates ADD category varchar(100); -/* EHR-12.381-12.382.sql */ - ALTER TABLE ehr.formtemplates drop column template; ALTER TABLE ehr.formtemplaterecords ADD targettemplate varchar(100); -/* EHR-12.384-12.385.sql */ - ALTER TABLE ehr.snomed_tags DROP PK_snomed_tags; DROP INDEX snomed_tags_recordid_rowid_id ON ehr.snomed_tags; DROP INDEX snomed_tags_code_rowid_id_recordid ON ehr.snomed_tags; @@ -1053,8 +960,6 @@ GO CREATE INDEX snomed_tags_objectid on ehr.snomed_tags (objectid); ALTER TABLE ehr.snomed_tags ADD CONSTRAINT PK_snomed_tags PRIMARY KEY NONCLUSTERED (objectid); -/* EHR-12.385-12.386.sql */ - --removed after monitoring usage on site DROP INDEX encounter_summaries_parentid ON ehr.encounter_summaries; DROP INDEX encounter_summaries_parentid_objectid_container_id ON ehr.encounter_summaries; @@ -1069,20 +974,12 @@ DROP INDEX snomed_tags_id ON ehr.snomed_tags; DROP INDEX snomed_tags_recordid ON ehr.snomed_tags; DROP INDEX snomed_tags_recordid_container_code ON ehr.snomed_tags; -/* EHR-12.386-12.387.sql */ - DROP INDEX snomed_tags_objectid ON ehr.snomed_tags; -/* EHR-12.387-12.388.sql */ - ALTER TABLE ehr.encounter_summaries ADD category varchar(100); -/* EHR-12.388-12.389.sql */ - ALTER TABLE ehr.snomed_tags ADD parentid entityid; -/* EHR-12.393-12.394.sql */ - ALTER TABLE ehr.project ADD container entityid; ALTER TABLE ehr.protocol ADD container entityid; GO @@ -1098,8 +995,6 @@ UPDATE ehr.protocol SET container = (SELECT c.entityid from core.containers c LE DELETE FROM ehr.project WHERE container IS NULL; DELETE FROM ehr.protocol WHERE container IS NULL; -/* EHR-12.394-12.395.sql */ - ALTER TABLE ehr.project DROP PK_project; ALTER TABLE ehr.protocol DROP PK_protocol; GO @@ -1109,27 +1004,16 @@ GO ALTER TABLE ehr.project ADD CONSTRAINT PK_project PRIMARY KEY (objectid); ALTER TABLE ehr.protocol ADD CONSTRAINT PK_protocol PRIMARY KEY (objectid); -/* EHR-12.395-12.396.sql */ - ---placeholder for pg changes -; - -/* EHR-12.397-12.398.sql */ - CREATE INDEX IDX_project_container_project_protocol ON ehr.project (container, project, protocol); CREATE INDEX IDX_project_container_project_investigatorid ON ehr.project (container, project, investigatorid); CREATE INDEX IDX_protocol_container_protocol ON ehr.protocol (container, protocol); CREATE INDEX IDX_container_taskid_formtype ON ehr.tasks (container, taskid, formtype); -/* EHR-12.399-12.400.sql */ - ALTER TABLE ehr.animal_group_members ADD releaseType VARCHAR(200); ALTER TABLE ehr.animal_group_members ADD taskid entityid; ALTER TABLE ehr.animal_group_members ADD qcstate integer; -/* EHR-12.400-12.401.sql */ - ALTER TABLE ehr.animal_group_members DROP pk_animal_group_members; ALTER TABLE ehr.animal_group_members DROP COLUMN rowid; ALTER TABLE ehr.animal_group_members DROP COLUMN comment; @@ -1138,8 +1022,6 @@ ALTER TABLE ehr.animal_group_members ALTER COLUMN objectid entityid NOT NULL; GO ALTER TABLE ehr.animal_group_members ADD CONSTRAINT pk_animal_group_members PRIMARY KEY (objectid); -/* EHR-12.402-12.403.sql */ - ALTER TABLE ehr.snomed_tags ADD formsort integer; ALTER TABLE ehr.snomed_tags ADD date timestamp; ALTER TABLE ehr.encounter_summaries ADD formsort integer; @@ -1149,18 +1031,12 @@ ALTER TABLE ehr.formtemplates ADD hidden bit default 0; GO UPDATE ehr.formtemplates SET hidden = 0; -/* EHR-12.403-12.404.sql */ - ALTER TABLE ehr.snomed_tags DROP COLUMN date; GO ALTER TABLE ehr.snomed_tags ADD date datetime; -/* EHR-12.404-12.405.sql */ - alter table ehr.kinship alter column coefficient double precision; -/* EHR-12.409-12.410.sql */ - CREATE INDEX IDX_requests_requestid_container ON ehr.requests (requestid, container); CREATE INDEX IDX_container_project_objectid_name ON ehr.project (container, project, objectid, name); @@ -1168,34 +1044,21 @@ CREATE INDEX IDX_container_project_objectid_name ON ehr.project (container, proj CREATE STATISTICS STATS_project_objectid_container_project ON ehr.project (objectid, container, project); CREATE STATISTICS STATS_project_project_objectid ON ehr.project (project, objectid); -/* EHR-12.415-12.416.sql */ - ALTER TABLE ehr.protocol ADD lastAnnualReview datetime; -/* EHR-12.416-12.417.sql */ - ALTER TABLE ehr.protocol_counts ADD description varchar(4000); -/* EHR-12.417-12.418.sql */ - DROP INDEX encounter_flags_objectid on ehr.encounter_flags; DROP INDEX encounter_flags_parentid on ehr.encounter_flags; -/* EHR-12.418-12.419.sql */ - ALTER TABLE ehr.formtemplates DROP CONSTRAINT UNIQUE_formTemplates; ALTER TABLE ehr.formtemplates ADD CONSTRAINT UNIQUE_formTemplates UNIQUE (container, formtype, title); -/* EHR-12.419-12.420.sql */ - UPDATE ehr.qcStateMetadata SET draftData = 1 WHERE QCStateLabel = 'Review Required'; -/* EHR-12.421-12.422.sql */ - CREATE INDEX IDX_treatment_times_treatmentid ON ehr.treatment_times (treatmentid); -/* EHR-12.424-12.425.sql */ GO CREATE PROCEDURE ehr.handleUpgrade AS @@ -1220,44 +1083,36 @@ EXEC core.fn_dropifexists 'treatment_times', 'ehr', 'Index', 'IDX_treatment_time CREATE INDEX IDX_treatment_times_treatmentid ON ehr.treatment_times (treatmentid); -/* EHR-12.425-12.426.sql */ - ALTER TABLE ehr.project ALTER COLUMN Title VARCHAR(400); -/* ehr-16.10-16.20.sql */ - EXEC core.fn_dropifexists 'animal_group_members','ehr','TABLE'; -/* ehr-16.20-16.30.sql */ - CREATE TABLE ehr.institutions ( - id int not null, - name NVARCHAR(50), - abbreviation NVARCHAR(10), - city NVARCHAR(40), - state NVARCHAR(2), - country NVARCHAR(20), - affiliate varchar(50), - web_site varchar(200), - fileStatus NVARCHAR(2), - recordClass NVARCHAR(4), - objectid nvarchar(100), - Created DATETIME, - CreatedBy USERID, - Modified DATETIME, - ModifiedBy USERID, - Container entityId NOT NULL, - - CONSTRAINT PK_EHR_INSTITUTIONS PRIMARY KEY (id), - CONSTRAINT FK_EHR_INSTITUTIONS FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) + id int not null, + name NVARCHAR(50), + abbreviation NVARCHAR(10), + city NVARCHAR(40), + state NVARCHAR(2), + country NVARCHAR(20), + affiliate varchar(50), + web_site varchar(200), + fileStatus NVARCHAR(2), + recordClass NVARCHAR(4), + objectid nvarchar(100), + Created DATETIME, + CreatedBy USERID, + Modified DATETIME, + ModifiedBy USERID, + Container entityId NOT NULL, + + CONSTRAINT PK_EHR_INSTITUTIONS PRIMARY KEY (id), + CONSTRAINT FK_EHR_INSTITUTIONS FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) ); GO CREATE INDEX EHR_INSTITUTIONS_CONTAINER_INDEX ON ehr.institutions(Container); GO -/* ehr-16.30-17.10.sql */ - ALTER TABLE ehr.animal_groups ADD diCreated DATETIME; ALTER TABLE ehr.animal_groups ADD diModified DATETIME; ALTER TABLE ehr.animal_groups ADD diCreatedBy USERID; @@ -1273,24 +1128,22 @@ ALTER TABLE ehr.protocol ADD diModified DATETIME; ALTER TABLE ehr.protocol ADD diCreatedBy USERID; ALTER TABLE ehr.protocol ADD diModifiedBy USERID; -/* ehr-17.20-17.30.sql */ - CREATE TABLE ehr.observation_types ( - rowid INT IDENTITY(1,1) NOT NULL, - value varchar(200), - category varchar(200), - editorconfig varchar(4000), - schemaname varchar(200), - queryname varchar(200), - valuecolumn varchar(200), - Created DATETIME, - CreatedBy USERID, - Modified DATETIME, - ModifiedBy USERID, - Container entityId NOT NULL, - - CONSTRAINT PK_EHR_OBSERVATION_TYPES PRIMARY KEY (rowid), - CONSTRAINT FK_EHR_OBSERVATION_TYPES_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) + rowid INT IDENTITY(1,1) NOT NULL, + value varchar(200), + category varchar(200), + editorconfig varchar(4000), + schemaname varchar(200), + queryname varchar(200), + valuecolumn varchar(200), + Created DATETIME, + CreatedBy USERID, + Modified DATETIME, + ModifiedBy USERID, + Container entityId NOT NULL, + + CONSTRAINT PK_EHR_OBSERVATION_TYPES PRIMARY KEY (rowid), + CONSTRAINT FK_EHR_OBSERVATION_TYPES_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) ); GO @@ -1302,71 +1155,65 @@ ALTER TABLE ehr.project ADD Lsid LsidType null; ALTER TABLE ehr.reports ADD ReportStatus NVARCHAR(MAX); -/* ehr-17.30-18.10.sql */ - -- add LSID column to tables to allow them to be extensible ALTER TABLE ehr.protocol_counts ADD lsid LsidType; ALTER TABLE ehr.snomed_tags ADD lsid LsidType; CREATE TABLE ehr.protocol_amendments ( - RowId INT IDENTITY (1, 1) NOT NULL, - Created DATETIME, - CreatedBy USERID, - Modified DATETIME, - ModifiedBy USERID, - Container ENTITYID NOT NULL, - ObjectId ENTITYID, - - Project INTEGER, - Protocol VARCHAR(200), - Date DATETIME, - Submitted DATETIME, - Approved DATETIME, - Comment VARCHAR(4000), - Lsid LSIDtype, - - CONSTRAINT PK_protocol_amendments PRIMARY KEY (RowId), - CONSTRAINT FK_protocol_amendments_Container FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) + RowId INT IDENTITY (1, 1) NOT NULL, + Created DATETIME, + CreatedBy USERID, + Modified DATETIME, + ModifiedBy USERID, + Container ENTITYID NOT NULL, + ObjectId ENTITYID, + + Project INTEGER, + Protocol VARCHAR(200), + Date DATETIME, + Submitted DATETIME, + Approved DATETIME, + Comment VARCHAR(4000), + Lsid LSIDtype, + + CONSTRAINT PK_protocol_amendments PRIMARY KEY (RowId), + CONSTRAINT FK_protocol_amendments_Container FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) ); -/* ehr-18.20-18.30.sql */ - CREATE TABLE ehr.investigators ( - rowid INT IDENTITY (1, 1) NOT NULL, - firstName varchar(100), - lastName varchar(100), - position varchar(100), - address varchar(500), - city varchar(100), - state varchar(100), - country varchar(100), - zip varchar(100), - phoneNumber varchar(100), - investigatorType varchar(100), - emailAddress varchar(100), - dateCreated datetime, - dateDisabled datetime, - division varchar(100), - userid int, - - Lsid LSIDtype, - Created DATETIME, - CreatedBy USERID, - Modified DATETIME, - ModifiedBy USERID, - Container ENTITYID NOT NULL, - - CONSTRAINT PK_EHR_INVESTIGATORS PRIMARY KEY (rowid), - CONSTRAINT FK_EHR_INVESTIGATORS_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) + rowid INT IDENTITY (1, 1) NOT NULL, + firstName varchar(100), + lastName varchar(100), + position varchar(100), + address varchar(500), + city varchar(100), + state varchar(100), + country varchar(100), + zip varchar(100), + phoneNumber varchar(100), + investigatorType varchar(100), + emailAddress varchar(100), + dateCreated datetime, + dateDisabled datetime, + division varchar(100), + userid int, + + Lsid LSIDtype, + Created DATETIME, + CreatedBy USERID, + Modified DATETIME, + ModifiedBy USERID, + Container ENTITYID NOT NULL, + + CONSTRAINT PK_EHR_INVESTIGATORS PRIMARY KEY (rowid), + CONSTRAINT FK_EHR_INVESTIGATORS_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) ); GO CREATE INDEX IX_EHR_INVESTIGATORS_CONTAINER ON ehr.investigators (Container); GO -/* ehr-18.30-19.10.sql */ - ALTER TABLE ehr.investigators ADD financialanalyst int; --ehr-17.20-17.21.sql @@ -1389,19 +1236,19 @@ VALUES -- ehr-17.21-17.22.sql -- contents of ehr-17.21-17.22.sql script are not in rolled up ehr-0.00-18.10.sql, since they got added and merged after the rollup, so including it below CREATE TABLE ehr.form_framework_types ( - RowId INT IDENTITY(1,1) NOT NULL, + RowId INT IDENTITY(1,1) NOT NULL, - schemaname varchar(255) DEFAULT NULL, - queryname varchar(255) DEFAULT NULL, - framework varchar(255) DEFAULT NULL, + schemaname varchar(255) DEFAULT NULL, + queryname varchar(255) DEFAULT NULL, + framework varchar(255) DEFAULT NULL, - Container ENTITYID NOT NULL, - CreatedBy USERID, - Created datetime, - ModifiedBy USERID, - Modified datetime, + Container ENTITYID NOT NULL, + CreatedBy USERID, + Created datetime, + ModifiedBy USERID, + Modified datetime, - CONSTRAINT PK_form_framework_types PRIMARY KEY (schemaname, queryname) + CONSTRAINT PK_form_framework_types PRIMARY KEY (schemaname, queryname) ); ALTER TABLE ehr.supplemental_pedigree ADD species NVARCHAR(4000); @@ -1410,13 +1257,11 @@ ALTER TABLE ehr.supplemental_pedigree ADD species NVARCHAR(4000); ALTER TABLE ehr.form_framework_types add url varchar(255) DEFAULT NULL; ALTER TABLE ehr.form_framework_types ADD CONSTRAINT ehr_form_framework_types_unique UNIQUE (RowId); -/* 21.xxx SQL scripts */ - -- same contents as ehr-20.001-20.002.sql. -- Rationale: When ehr-20.001-20.002.sql was created, the module version was bumped from 21.001 to 21.002 -- rendering ehr-20.001-20.002.sql useless if the ehr module v. was already at 21.00x in the db. -- The script should have been numbered ehr-21.001-21.002.sql instead of ehr-20.001-20.002.sql. --- This script is an correction attempt to get in sync with the ehr module v. 21.00x so that this script runs +-- This script is a correction attempt to get in sync with the ehr module v. 21.00x so that this script runs -- and below col and constraint gets added as intended. EXEC core.fn_dropifexists 'form_framework_types', 'ehr', 'column', 'url'; @@ -1440,4 +1285,439 @@ INSERT INTO ehr.status VALUES ('Request: On Hold', 'Request has been put on hold', 0, 0, 0, 1, 1); -CREATE INDEX snomed_tags_recordid ON ehr.snomed_tags (recordid); \ No newline at end of file +CREATE INDEX snomed_tags_recordid ON ehr.snomed_tags (recordid); + +ALTER TABLE ehr.animal_groups ALTER COLUMN name NVARCHAR(255) NOT NULL; +ALTER TABLE ehr.animal_groups ALTER COLUMN category NVARCHAR(100); +ALTER TABLE ehr.animal_groups ALTER COLUMN purpose NVARCHAR(MAX); +GO + +ALTER TABLE ehr.cage_observations ALTER COLUMN room NVARCHAR(100); +ALTER TABLE ehr.cage_observations ALTER COLUMN cage NVARCHAR(100); +ALTER TABLE ehr.cage_observations ALTER COLUMN userid NVARCHAR(100); +ALTER TABLE ehr.cage_observations ALTER COLUMN feces NVARCHAR(100); +GO + +EXEC core.fn_dropifexists 'encounter_flags', 'ehr', 'index', 'encounter_flags_id'; +ALTER TABLE ehr.encounter_flags ALTER COLUMN id NVARCHAR(100); +GO +CREATE INDEX encounter_flags_id ON ehr.encounter_flags(id); +ALTER TABLE ehr.encounter_flags ALTER COLUMN schemaName NVARCHAR(100); +ALTER TABLE ehr.encounter_flags ALTER COLUMN queryName NVARCHAR(100); +ALTER TABLE ehr.encounter_flags ALTER COLUMN flag NVARCHAR(200); +ALTER TABLE ehr.encounter_flags ALTER COLUMN value NVARCHAR(100); +ALTER TABLE ehr.encounter_flags ALTER COLUMN remark NVARCHAR(MAX); +ALTER TABLE ehr.encounter_flags ALTER COLUMN objectid NVARCHAR(60); +GO + +EXEC core.fn_dropifexists 'encounter_participants', 'ehr', 'index', 'encounter_participants_id'; +ALTER TABLE ehr.encounter_participants ALTER COLUMN id NVARCHAR(100); +GO +CREATE INDEX encounter_participants_id ON ehr.encounter_participants(id); +ALTER TABLE ehr.encounter_participants ALTER COLUMN username NVARCHAR(500); +ALTER TABLE ehr.encounter_participants ALTER COLUMN comment NVARCHAR(MAX); +ALTER TABLE ehr.encounter_participants ALTER COLUMN role NVARCHAR(200); +EXEC core.fn_dropifexists 'encounter_participants', 'ehr', 'constraint', 'pk_encounter_participants'; +ALTER TABLE ehr.encounter_participants ALTER COLUMN objectid NVARCHAR(60) NOT NULL; +GO +ALTER TABLE ehr.encounter_participants ADD CONSTRAINT pk_encounter_participants PRIMARY KEY (objectid); +GO + +EXEC core.fn_dropifexists 'encounter_summaries', 'ehr', 'index', 'encounter_summaries_id'; +ALTER TABLE ehr.encounter_summaries ALTER COLUMN id NVARCHAR(100); +GO +CREATE INDEX encounter_summaries_id ON ehr.encounter_summaries(id); +ALTER TABLE ehr.encounter_summaries ALTER COLUMN schemaName NVARCHAR(100); +ALTER TABLE ehr.encounter_summaries ALTER COLUMN queryName NVARCHAR(100); +EXEC core.fn_dropifexists 'encounter_summaries', 'ehr', 'index', 'encounter_summaries_container_objectid'; +EXEC core.fn_dropifexists 'encounter_summaries', 'ehr', 'constraint', 'PK_encounter_summaries'; +ALTER TABLE ehr.encounter_summaries ALTER COLUMN objectid NVARCHAR(60) NOT NULL; +GO +ALTER TABLE ehr.encounter_summaries ADD CONSTRAINT PK_encounter_summaries PRIMARY KEY (objectid); +CREATE INDEX encounter_summaries_container_objectid ON ehr.encounter_summaries(container, objectid); +ALTER TABLE ehr.encounter_summaries ALTER COLUMN category NVARCHAR(100); +GO + +ALTER TABLE ehr.extracts ALTER COLUMN queryname NVARCHAR(100); +ALTER TABLE ehr.extracts ALTER COLUMN schemaname NVARCHAR(100); +ALTER TABLE ehr.extracts ALTER COLUMN containerpath NVARCHAR(100); +ALTER TABLE ehr.extracts ALTER COLUMN viewname NVARCHAR(100); +ALTER TABLE ehr.extracts ALTER COLUMN filename NVARCHAR(100); +ALTER TABLE ehr.extracts ALTER COLUMN columns NVARCHAR(500); +ALTER TABLE ehr.extracts ALTER COLUMN fieldstohash NVARCHAR(500); +GO + +DECLARE @ConstraintName nvarchar(200) +SELECT @ConstraintName = Name FROM sys.default_constraints + WHERE parent_object_id = OBJECT_ID('ehr.form_framework_types') AND + parent_column_id = (SELECT column_id FROM sys.columns WHERE object_id = OBJECT_ID('ehr.form_framework_types') AND name = 'schemaname'); + IF @ConstraintName IS NOT NULL +BEGIN + EXEC('ALTER TABLE ehr.form_framework_types DROP CONSTRAINT ' + @ConstraintName) +END + +SELECT @ConstraintName = Name FROM sys.default_constraints + WHERE parent_object_id = OBJECT_ID('ehr.form_framework_types') AND + parent_column_id = (SELECT column_id FROM sys.columns WHERE object_id = OBJECT_ID('ehr.form_framework_types') AND name = 'queryname'); +IF @ConstraintName IS NOT NULL +BEGIN + EXEC('ALTER TABLE ehr.form_framework_types DROP CONSTRAINT ' + @ConstraintName) +END + +SELECT @ConstraintName = Name FROM sys.default_constraints + WHERE parent_object_id = OBJECT_ID('ehr.form_framework_types') AND + parent_column_id = (SELECT column_id FROM sys.columns WHERE object_id = OBJECT_ID('ehr.form_framework_types') AND name = 'framework'); +IF @ConstraintName IS NOT NULL +BEGIN + EXEC('ALTER TABLE ehr.form_framework_types DROP CONSTRAINT ' + @ConstraintName) +END + +SELECT @ConstraintName = Name FROM sys.default_constraints + WHERE parent_object_id = OBJECT_ID('ehr.form_framework_types') AND + parent_column_id = (SELECT column_id FROM sys.columns WHERE object_id = OBJECT_ID('ehr.form_framework_types') AND name = 'url'); +IF @ConstraintName IS NOT NULL +BEGIN + EXEC('ALTER TABLE ehr.form_framework_types DROP CONSTRAINT ' + @ConstraintName) +END + +EXEC core.fn_dropifexists 'form_framework_types', 'ehr', 'constraint', 'PK_form_framework_types'; +ALTER TABLE ehr.form_framework_types ALTER COLUMN schemaname NVARCHAR(255) NOT NULL; +ALTER TABLE ehr.form_framework_types ALTER COLUMN queryname NVARCHAR(255) NOT NULL; +GO +ALTER TABLE ehr.form_framework_types ADD CONSTRAINT PK_form_framework_types PRIMARY KEY (schemaname, queryname); +ALTER TABLE ehr.form_framework_types ALTER COLUMN framework NVARCHAR(255); +ALTER TABLE ehr.form_framework_types ALTER COLUMN url NVARCHAR(255); +GO + +ALTER TABLE ehr.formpanelsections ALTER COLUMN formtype NVARCHAR(200) NOT NULL; +ALTER TABLE ehr.formpanelsections ALTER COLUMN destination NVARCHAR(200) NOT NULL; +ALTER TABLE ehr.formpanelsections ALTER COLUMN xtype NVARCHAR(200) NOT NULL; +ALTER TABLE ehr.formpanelsections ALTER COLUMN schemaname NVARCHAR(200); +ALTER TABLE ehr.formpanelsections ALTER COLUMN queryname NVARCHAR(200); +ALTER TABLE ehr.formpanelsections ALTER COLUMN title NVARCHAR(200); +ALTER TABLE ehr.formpanelsections ALTER COLUMN metadatasources NVARCHAR(MAX); +ALTER TABLE ehr.formpanelsections ALTER COLUMN buttons NVARCHAR(MAX); +ALTER TABLE ehr.formpanelsections ALTER COLUMN initialtemplates NVARCHAR(MAX); +GO + +ALTER TABLE ehr.formtemplaterecords ALTER COLUMN storeid NVARCHAR(1000) NOT NULL; +ALTER TABLE ehr.formtemplaterecords ALTER COLUMN targettemplate NVARCHAR(100); +GO + +EXEC core.fn_dropifexists 'formtemplates', 'ehr', 'constraint', 'UNIQUE_formTemplates'; +ALTER TABLE ehr.formtemplates ALTER COLUMN title NVARCHAR(200) NOT NULL; +ALTER TABLE ehr.formtemplates ALTER COLUMN formtype NVARCHAR(200) NOT NULL; +GO +ALTER TABLE ehr.formtemplates ADD CONSTRAINT UNIQUE_formTemplates UNIQUE (container, formtype, title); +ALTER TABLE ehr.formtemplates ALTER COLUMN category NVARCHAR(100); +GO + +EXEC core.fn_dropifexists 'formtypes', 'ehr', 'constraint', 'unique_formtypes'; +ALTER TABLE ehr.formtypes ALTER COLUMN formtype NVARCHAR(200) NOT NULL; +GO +ALTER TABLE ehr.formtypes ADD CONSTRAINT unique_formtypes UNIQUE (container , formtype); +ALTER TABLE ehr.formtypes ALTER COLUMN category NVARCHAR(100); +ALTER TABLE ehr.formtypes ALTER COLUMN configjson NVARCHAR(MAX); +GO + +ALTER TABLE ehr.institutions ALTER COLUMN affiliate NVARCHAR(50); +ALTER TABLE ehr.institutions ALTER COLUMN web_site NVARCHAR(200); +GO + +ALTER TABLE ehr.investigators ALTER COLUMN firstName NVARCHAR(100); +ALTER TABLE ehr.investigators ALTER COLUMN lastName NVARCHAR(100); +ALTER TABLE ehr.investigators ALTER COLUMN position NVARCHAR(100); +ALTER TABLE ehr.investigators ALTER COLUMN address NVARCHAR(500); +ALTER TABLE ehr.investigators ALTER COLUMN city NVARCHAR(100); +ALTER TABLE ehr.investigators ALTER COLUMN state NVARCHAR(100); +ALTER TABLE ehr.investigators ALTER COLUMN country NVARCHAR(100); +ALTER TABLE ehr.investigators ALTER COLUMN zip NVARCHAR(100); +ALTER TABLE ehr.investigators ALTER COLUMN phoneNumber NVARCHAR(100); +ALTER TABLE ehr.investigators ALTER COLUMN investigatorType NVARCHAR(100); +ALTER TABLE ehr.investigators ALTER COLUMN emailAddress NVARCHAR(100); +ALTER TABLE ehr.investigators ALTER COLUMN division NVARCHAR(100); +GO + +ALTER TABLE ehr.kinship ALTER COLUMN id NVARCHAR(100) NOT NULL; +ALTER TABLE ehr.kinship ALTER COLUMN id2 NVARCHAR(100) NOT NULL; +GO + +DECLARE @ConstraintName nvarchar(200) +SELECT @ConstraintName = Name +FROM sys.default_constraints +WHERE parent_object_id = OBJECT_ID('ehr.module_properties') AND + parent_column_id = (SELECT column_id FROM sys.columns WHERE object_id = OBJECT_ID('ehr.module_properties') AND name = 'prop_name'); +IF @ConstraintName IS NOT NULL +BEGIN +EXEC('ALTER TABLE ehr.module_properties DROP CONSTRAINT ' + @ConstraintName) +END + +SELECT @ConstraintName = Name +FROM sys.default_constraints +WHERE parent_object_id = OBJECT_ID('ehr.module_properties') AND + parent_column_id = (SELECT column_id FROM sys.columns WHERE object_id = OBJECT_ID('ehr.module_properties') AND name = 'stringvalue'); +IF @ConstraintName IS NOT NULL +BEGIN +EXEC('ALTER TABLE ehr.module_properties DROP CONSTRAINT ' + @ConstraintName) +END + +EXEC core.fn_dropifexists 'module_properties', 'ehr', 'constraint', 'unique_module_properties'; +ALTER TABLE ehr.module_properties ALTER COLUMN prop_name NVARCHAR(255); +GO +ALTER TABLE ehr.module_properties ADD CONSTRAINT unique_module_properties UNIQUE (prop_name , container); +ALTER TABLE ehr.module_properties ALTER COLUMN stringvalue NVARCHAR(255); +GO + +ALTER TABLE ehr.notificationrecipients ALTER COLUMN notificationtype NVARCHAR(200); +GO + +EXEC core.fn_dropifexists 'notificationtypes', 'ehr', 'constraint', 'pk_notificationtypes'; +ALTER TABLE ehr.notificationtypes ALTER COLUMN notificationtype NVARCHAR(200) NOT NULL; +GO +ALTER TABLE ehr.notificationtypes ADD CONSTRAINT pk_notificationtypes PRIMARY KEY (notificationtype ) + +ALTER TABLE ehr.observation_types ALTER COLUMN value NVARCHAR(200); +ALTER TABLE ehr.observation_types ALTER COLUMN category NVARCHAR(200); +ALTER TABLE ehr.observation_types ALTER COLUMN editorconfig NVARCHAR(MAX); +ALTER TABLE ehr.observation_types ALTER COLUMN schemaname NVARCHAR(200); +ALTER TABLE ehr.observation_types ALTER COLUMN queryname NVARCHAR(200); +ALTER TABLE ehr.observation_types ALTER COLUMN valuecolumn NVARCHAR(200); +GO + +EXEC core.fn_dropifexists 'project', 'ehr', 'index', 'IDX_project_container_project_protocol'; +ALTER TABLE ehr.project ALTER COLUMN protocol NVARCHAR(200); +GO +CREATE INDEX IDX_project_container_project_protocol ON ehr.project (container, project, protocol); +ALTER TABLE ehr.project ALTER COLUMN account NVARCHAR(200); +ALTER TABLE ehr.project ALTER COLUMN inves NVARCHAR(200); +ALTER TABLE ehr.project ALTER COLUMN avail NVARCHAR(100); +ALTER TABLE ehr.project ALTER COLUMN title NVARCHAR(400); +ALTER TABLE ehr.project ALTER COLUMN reqname NVARCHAR(200); +ALTER TABLE ehr.project ALTER COLUMN contact_emails NVARCHAR(MAX); +ALTER TABLE ehr.project ALTER COLUMN inves2 NVARCHAR(200); +EXEC core.fn_dropifexists 'project', 'ehr', 'index', 'project_name_project'; +EXEC core.fn_dropifexists 'project', 'ehr', 'index', 'project_investigatorid_project'; +EXEC core.fn_dropifexists 'project', 'ehr', 'index', 'IDX_container_project_objectid_name'; +ALTER TABLE ehr.project ALTER COLUMN name NVARCHAR(100); +GO +CREATE INDEX project_investigatorid_project ON ehr.project (investigatorId ASC, project ASC) INCLUDE (name); +CREATE INDEX project_name_project ON ehr.project (name, project); +CREATE INDEX IDX_container_project_objectid_name ON ehr.project (container, project, objectid, name); +ALTER TABLE ehr.project ALTER COLUMN use_category NVARCHAR(100); +ALTER TABLE ehr.project ALTER COLUMN shortname NVARCHAR(200); +ALTER TABLE ehr.project ALTER COLUMN projecttype NVARCHAR(100); +GO + +EXEC core.fn_dropifexists 'protocol', 'ehr', 'index', 'IDX_protocol_container_protocol'; +ALTER TABLE ehr.protocol ALTER COLUMN protocol NVARCHAR(200) NOT NULL; +GO +CREATE INDEX IDX_protocol_container_protocol ON ehr.protocol (container, protocol); +ALTER TABLE ehr.protocol ALTER COLUMN inves NVARCHAR(200); +ALTER TABLE ehr.protocol ALTER COLUMN title NVARCHAR(1000); +ALTER TABLE ehr.protocol ALTER COLUMN usda_level NVARCHAR(100); +ALTER TABLE ehr.protocol ALTER COLUMN external_id NVARCHAR(200); +ALTER TABLE ehr.protocol ALTER COLUMN project_type NVARCHAR(200); +ALTER TABLE ehr.protocol ALTER COLUMN ibc_approval_num NVARCHAR(200); +ALTER TABLE ehr.protocol ALTER COLUMN contacts NVARCHAR(200); +GO + +ALTER TABLE ehr.protocol_amendments ALTER COLUMN protocol NVARCHAR(200); +ALTER TABLE ehr.protocol_amendments ALTER COLUMN Comment NVARCHAR(MAX); +GO + +ALTER TABLE ehr.protocol_counts ALTER COLUMN protocol NVARCHAR(200); +ALTER TABLE ehr.protocol_counts ALTER COLUMN species NVARCHAR(200) NOT NULL; +ALTER TABLE ehr.protocol_counts ALTER COLUMN gender NVARCHAR(100); +ALTER TABLE ehr.protocol_counts ALTER COLUMN description NVARCHAR(MAX); +GO + +ALTER TABLE ehr.protocolexemptions ALTER COLUMN protocol NVARCHAR(100); +ALTER TABLE ehr.protocolexemptions ALTER COLUMN exemption NVARCHAR(200); +ALTER TABLE ehr.protocolexemptions ALTER COLUMN remark NVARCHAR(MAX); +GO + +ALTER TABLE ehr.protocolprocedures ALTER COLUMN protocol NVARCHAR(200) NOT NULL; +ALTER TABLE ehr.protocolprocedures ALTER COLUMN procedurename NVARCHAR(200); +ALTER TABLE ehr.protocolprocedures ALTER COLUMN code NVARCHAR(100); +ALTER TABLE ehr.protocolprocedures ALTER COLUMN frequency NVARCHAR(200); +ALTER TABLE ehr.protocolprocedures ALTER COLUMN remark NVARCHAR(MAX); +GO + +EXEC core.fn_dropifexists 'qcstatemetadata', 'ehr', 'constraint', 'pk_qcstatemetadata'; +ALTER TABLE ehr.qcstatemetadata ALTER COLUMN qcstatelabel NVARCHAR(200) NOT NULL; +GO +ALTER TABLE ehr.qcstatemetadata ADD CONSTRAINT pk_qcstatemetadata PRIMARY KEY (qcstatelabel) +GO + +DECLARE @ConstraintName nvarchar(200) +SELECT @ConstraintName = Name +FROM sys.default_constraints +WHERE parent_object_id = OBJECT_ID('ehr.reports') AND + parent_column_id = (SELECT column_id FROM sys.columns WHERE object_id = OBJECT_ID('ehr.reports') AND name = 'reportname'); +IF @ConstraintName IS NOT NULL +BEGIN +EXEC('ALTER TABLE ehr.reports DROP CONSTRAINT ' + @ConstraintName) +END + +SELECT @ConstraintName = Name +FROM sys.default_constraints +WHERE parent_object_id = OBJECT_ID('ehr.reports') AND + parent_column_id = (SELECT column_id FROM sys.columns WHERE object_id = OBJECT_ID('ehr.reports') AND name = 'datefieldname'); +IF @ConstraintName IS NOT NULL +BEGIN +EXEC('ALTER TABLE ehr.reports DROP CONSTRAINT ' + @ConstraintName) +END + +SELECT @ConstraintName = Name +FROM sys.default_constraints +WHERE parent_object_id = OBJECT_ID('ehr.reports') AND + parent_column_id = (SELECT column_id FROM sys.columns WHERE object_id = OBJECT_ID('ehr.reports') AND name = 'qcstatepublicdatafieldname'); +IF @ConstraintName IS NOT NULL +BEGIN +EXEC('ALTER TABLE ehr.reports DROP CONSTRAINT ' + @ConstraintName) +END + +SELECT @ConstraintName = Name +FROM sys.default_constraints +WHERE parent_object_id = OBJECT_ID('ehr.reports') AND + parent_column_id = (SELECT column_id FROM sys.columns WHERE object_id = OBJECT_ID('ehr.reports') AND name = 'report'); +IF @ConstraintName IS NOT NULL +BEGIN +EXEC('ALTER TABLE ehr.reports DROP CONSTRAINT ' + @ConstraintName) +END + +SELECT @ConstraintName = Name +FROM sys.default_constraints +WHERE parent_object_id = OBJECT_ID('ehr.reports') AND + parent_column_id = (SELECT column_id FROM sys.columns WHERE object_id = OBJECT_ID('ehr.reports') AND name = 'reporttype'); +IF @ConstraintName IS NOT NULL +BEGIN +EXEC('ALTER TABLE ehr.reports DROP CONSTRAINT ' + @ConstraintName) +END + +SELECT @ConstraintName = Name +FROM sys.default_constraints +WHERE parent_object_id = OBJECT_ID('ehr.reports') AND + parent_column_id = (SELECT column_id FROM sys.columns WHERE object_id = OBJECT_ID('ehr.reports') AND name = 'reporttitle'); +IF @ConstraintName IS NOT NULL +BEGIN +EXEC('ALTER TABLE ehr.reports DROP CONSTRAINT ' + @ConstraintName) +END + +SELECT @ConstraintName = Name +FROM sys.default_constraints +WHERE parent_object_id = OBJECT_ID('ehr.reports') AND + parent_column_id = (SELECT column_id FROM sys.columns WHERE object_id = OBJECT_ID('ehr.reports') AND name = 'schemaname'); +IF @ConstraintName IS NOT NULL +BEGIN +EXEC('ALTER TABLE ehr.reports DROP CONSTRAINT ' + @ConstraintName) +END + +SELECT @ConstraintName = Name +FROM sys.default_constraints +WHERE parent_object_id = OBJECT_ID('ehr.reports') AND + parent_column_id = (SELECT column_id FROM sys.columns WHERE object_id = OBJECT_ID('ehr.reports') AND name = 'viewname'); +IF @ConstraintName IS NOT NULL +BEGIN +EXEC('ALTER TABLE ehr.reports DROP CONSTRAINT ' + @ConstraintName) +END + +SELECT @ConstraintName = Name +FROM sys.default_constraints +WHERE parent_object_id = OBJECT_ID('ehr.reports') AND + parent_column_id = (SELECT column_id FROM sys.columns WHERE object_id = OBJECT_ID('ehr.reports') AND name = 'category'); +IF @ConstraintName IS NOT NULL +BEGIN +EXEC('ALTER TABLE ehr.reports DROP CONSTRAINT ' + @ConstraintName) +END + +SELECT @ConstraintName = Name +FROM sys.default_constraints +WHERE parent_object_id = OBJECT_ID('ehr.reports') AND + parent_column_id = (SELECT column_id FROM sys.columns WHERE object_id = OBJECT_ID('ehr.reports') AND name = 'containerpath'); +IF @ConstraintName IS NOT NULL +BEGIN +EXEC('ALTER TABLE ehr.reports DROP CONSTRAINT ' + @ConstraintName) +END + +SELECT @ConstraintName = Name +FROM sys.default_constraints +WHERE parent_object_id = OBJECT_ID('ehr.reports') AND + parent_column_id = (SELECT column_id FROM sys.columns WHERE object_id = OBJECT_ID('ehr.reports') AND name = 'queryname'); +IF @ConstraintName IS NOT NULL +BEGIN +EXEC('ALTER TABLE ehr.reports DROP CONSTRAINT ' + @ConstraintName) +END + +ALTER TABLE ehr.reports ALTER COLUMN reportname NVARCHAR(255); +ALTER TABLE ehr.reports ALTER COLUMN category NVARCHAR(255); +ALTER TABLE ehr.reports ALTER COLUMN reporttype NVARCHAR(255); +ALTER TABLE ehr.reports ALTER COLUMN reporttitle NVARCHAR(255); +ALTER TABLE ehr.reports ALTER COLUMN containerpath NVARCHAR(255); +ALTER TABLE ehr.reports ALTER COLUMN schemaname NVARCHAR(255); +ALTER TABLE ehr.reports ALTER COLUMN queryname NVARCHAR(255); +ALTER TABLE ehr.reports ALTER COLUMN viewname NVARCHAR(255); +ALTER TABLE ehr.reports ALTER COLUMN report NVARCHAR(255); +ALTER TABLE ehr.reports ALTER COLUMN datefieldname NVARCHAR(255); +ALTER TABLE ehr.reports ALTER COLUMN qcstatepublicdatafieldname NVARCHAR(255); +ALTER TABLE ehr.reports ALTER COLUMN jsonconfig NVARCHAR(MAX); +ALTER TABLE ehr.reports ALTER COLUMN description NVARCHAR(MAX); +ALTER TABLE ehr.reports ALTER COLUMN subjectIdFieldName NVARCHAR(200); +GO + +ALTER TABLE ehr.requests ALTER COLUMN title NVARCHAR(200); +ALTER TABLE ehr.requests ALTER COLUMN formtype NVARCHAR(200); +ALTER TABLE ehr.requests ALTER COLUMN priority NVARCHAR(200); +ALTER TABLE ehr.requests ALTER COLUMN pi NVARCHAR(200); +ALTER TABLE ehr.requests ALTER COLUMN remark NVARCHAR(MAX); +GO + +EXEC core.fn_dropifexists 'scheduled_task_types', 'ehr', 'constraint', 'pk_scheduled_task_types'; +ALTER TABLE ehr.scheduled_task_types ALTER COLUMN tasktype NVARCHAR(200) NOT NULL; +GO +ALTER TABLE ehr.scheduled_task_types ADD CONSTRAINT pk_scheduled_task_types PRIMARY KEY (tasktype) + +ALTER TABLE ehr.scheduled_tasks ALTER COLUMN tasktype NVARCHAR(200); +ALTER TABLE ehr.scheduled_tasks ALTER COLUMN id NVARCHAR(100); +ALTER TABLE ehr.scheduled_tasks ALTER COLUMN location NVARCHAR(100); +ALTER TABLE ehr.scheduled_tasks ALTER COLUMN description NVARCHAR(MAX); +GO + +EXEC core.fn_dropifexists 'snomed_tags', 'ehr', 'index', 'snomed_tags_recordid'; +EXEC core.fn_dropifexists 'snomed_tags', 'ehr', 'index', 'CIDX_snomed_tags'; +ALTER TABLE ehr.snomed_tags ALTER COLUMN recordid NVARCHAR(200); +GO +CREATE INDEX snomed_tags_recordid ON ehr.snomed_tags (recordid); +CREATE CLUSTERED INDEX CIDX_snomed_tags ON ehr.snomed_tags (container, recordid, set_number, sort) +EXEC core.fn_dropifexists 'snomed_tags', 'ehr', 'index', 'snomed_tags_code_container'; +ALTER TABLE ehr.snomed_tags ALTER COLUMN code NVARCHAR(32); +GO +CREATE INDEX snomed_tags_code_container ON ehr.snomed_tags (code, container); +ALTER TABLE ehr.snomed_tags ALTER COLUMN qualifier NVARCHAR(200); +EXEC core.fn_dropifexists 'snomed_tags', 'ehr', 'constraint', 'PK_snomed_tags'; +ALTER TABLE ehr.snomed_tags ALTER COLUMN objectid NVARCHAR(60) NOT NULL; +GO +ALTER TABLE ehr.snomed_tags ADD CONSTRAINT PK_snomed_tags PRIMARY KEY NONCLUSTERED (objectid); +ALTER TABLE ehr.snomed_tags ALTER COLUMN id NVARCHAR(100); +GO + +ALTER TABLE ehr.status ALTER COLUMN label NVARCHAR(200) NOT NULL; +ALTER TABLE ehr.status ALTER COLUMN description NVARCHAR(MAX); +GO + +ALTER TABLE ehr.supplemental_pedigree ALTER COLUMN id NVARCHAR(50) NOT NULL; +ALTER TABLE ehr.supplemental_pedigree ALTER COLUMN gender NVARCHAR(50); +ALTER TABLE ehr.supplemental_pedigree ALTER COLUMN dam NVARCHAR(50); +ALTER TABLE ehr.supplemental_pedigree ALTER COLUMN sire NVARCHAR(50); +ALTER TABLE ehr.supplemental_pedigree ALTER COLUMN species NVARCHAR(MAX); +GO + +ALTER TABLE ehr.tasks ALTER COLUMN category NVARCHAR(200) NOT NULL; +ALTER TABLE ehr.tasks ALTER COLUMN title NVARCHAR(200); + +EXEC core.fn_dropifexists 'tasks', 'ehr', 'index', 'IDX_container_taskid_formtype'; +ALTER TABLE ehr.tasks ALTER COLUMN formtype NVARCHAR(200); +GO +CREATE INDEX IDX_container_taskid_formtype ON ehr.tasks (container, taskid, formtype); + +ALTER TABLE ehr.notificationrecipients ADD Lsid LsidType null; diff --git a/ehr/resources/schemas/dbscripts/sqlserver/ehr-23.000-23.001.sql b/ehr/resources/schemas/dbscripts/sqlserver/ehr-23.000-23.001.sql deleted file mode 100644 index 6e4420220..000000000 --- a/ehr/resources/schemas/dbscripts/sqlserver/ehr-23.000-23.001.sql +++ /dev/null @@ -1,432 +0,0 @@ -ALTER TABLE ehr.animal_groups ALTER COLUMN name NVARCHAR(255) NOT NULL; -ALTER TABLE ehr.animal_groups ALTER COLUMN category NVARCHAR(100); -ALTER TABLE ehr.animal_groups ALTER COLUMN purpose NVARCHAR(MAX); -GO - -ALTER TABLE ehr.cage_observations ALTER COLUMN room NVARCHAR(100); -ALTER TABLE ehr.cage_observations ALTER COLUMN cage NVARCHAR(100); -ALTER TABLE ehr.cage_observations ALTER COLUMN userid NVARCHAR(100); -ALTER TABLE ehr.cage_observations ALTER COLUMN feces NVARCHAR(100); -GO - -EXEC core.fn_dropifexists 'encounter_flags', 'ehr', 'index', 'encounter_flags_id'; -ALTER TABLE ehr.encounter_flags ALTER COLUMN id NVARCHAR(100); -GO -CREATE INDEX encounter_flags_id ON ehr.encounter_flags(id); -ALTER TABLE ehr.encounter_flags ALTER COLUMN schemaName NVARCHAR(100); -ALTER TABLE ehr.encounter_flags ALTER COLUMN queryName NVARCHAR(100); -ALTER TABLE ehr.encounter_flags ALTER COLUMN flag NVARCHAR(200); -ALTER TABLE ehr.encounter_flags ALTER COLUMN value NVARCHAR(100); -ALTER TABLE ehr.encounter_flags ALTER COLUMN remark NVARCHAR(MAX); -ALTER TABLE ehr.encounter_flags ALTER COLUMN objectid NVARCHAR(60); -GO - -EXEC core.fn_dropifexists 'encounter_participants', 'ehr', 'index', 'encounter_participants_id'; -ALTER TABLE ehr.encounter_participants ALTER COLUMN id NVARCHAR(100); -GO -CREATE INDEX encounter_participants_id ON ehr.encounter_participants(id); -ALTER TABLE ehr.encounter_participants ALTER COLUMN username NVARCHAR(500); -ALTER TABLE ehr.encounter_participants ALTER COLUMN comment NVARCHAR(MAX); -ALTER TABLE ehr.encounter_participants ALTER COLUMN role NVARCHAR(200); -EXEC core.fn_dropifexists 'encounter_participants', 'ehr', 'constraint', 'pk_encounter_participants'; -ALTER TABLE ehr.encounter_participants ALTER COLUMN objectid NVARCHAR(60) NOT NULL; -GO -ALTER TABLE ehr.encounter_participants ADD CONSTRAINT pk_encounter_participants PRIMARY KEY (objectid); -GO - -EXEC core.fn_dropifexists 'encounter_summaries', 'ehr', 'index', 'encounter_summaries_id'; -ALTER TABLE ehr.encounter_summaries ALTER COLUMN id NVARCHAR(100); -GO -CREATE INDEX encounter_summaries_id ON ehr.encounter_summaries(id); -ALTER TABLE ehr.encounter_summaries ALTER COLUMN schemaName NVARCHAR(100); -ALTER TABLE ehr.encounter_summaries ALTER COLUMN queryName NVARCHAR(100); -EXEC core.fn_dropifexists 'encounter_summaries', 'ehr', 'index', 'encounter_summaries_container_objectid'; -EXEC core.fn_dropifexists 'encounter_summaries', 'ehr', 'constraint', 'PK_encounter_summaries'; -ALTER TABLE ehr.encounter_summaries ALTER COLUMN objectid NVARCHAR(60) NOT NULL; -GO -ALTER TABLE ehr.encounter_summaries ADD CONSTRAINT PK_encounter_summaries PRIMARY KEY (objectid); -CREATE INDEX encounter_summaries_container_objectid ON ehr.encounter_summaries(container, objectid); -ALTER TABLE ehr.encounter_summaries ALTER COLUMN category NVARCHAR(100); -GO - -ALTER TABLE ehr.extracts ALTER COLUMN queryname NVARCHAR(100); -ALTER TABLE ehr.extracts ALTER COLUMN schemaname NVARCHAR(100); -ALTER TABLE ehr.extracts ALTER COLUMN containerpath NVARCHAR(100); -ALTER TABLE ehr.extracts ALTER COLUMN viewname NVARCHAR(100); -ALTER TABLE ehr.extracts ALTER COLUMN filename NVARCHAR(100); -ALTER TABLE ehr.extracts ALTER COLUMN columns NVARCHAR(500); -ALTER TABLE ehr.extracts ALTER COLUMN fieldstohash NVARCHAR(500); -GO - -DECLARE @ConstraintName nvarchar(200) -SELECT @ConstraintName = Name FROM sys.default_constraints - WHERE parent_object_id = OBJECT_ID('ehr.form_framework_types') AND - parent_column_id = (SELECT column_id FROM sys.columns WHERE object_id = OBJECT_ID('ehr.form_framework_types') AND name = 'schemaname'); - IF @ConstraintName IS NOT NULL -BEGIN - EXEC('ALTER TABLE ehr.form_framework_types DROP CONSTRAINT ' + @ConstraintName) -END - -SELECT @ConstraintName = Name FROM sys.default_constraints - WHERE parent_object_id = OBJECT_ID('ehr.form_framework_types') AND - parent_column_id = (SELECT column_id FROM sys.columns WHERE object_id = OBJECT_ID('ehr.form_framework_types') AND name = 'queryname'); -IF @ConstraintName IS NOT NULL -BEGIN - EXEC('ALTER TABLE ehr.form_framework_types DROP CONSTRAINT ' + @ConstraintName) -END - -SELECT @ConstraintName = Name FROM sys.default_constraints - WHERE parent_object_id = OBJECT_ID('ehr.form_framework_types') AND - parent_column_id = (SELECT column_id FROM sys.columns WHERE object_id = OBJECT_ID('ehr.form_framework_types') AND name = 'framework'); -IF @ConstraintName IS NOT NULL -BEGIN - EXEC('ALTER TABLE ehr.form_framework_types DROP CONSTRAINT ' + @ConstraintName) -END - -SELECT @ConstraintName = Name FROM sys.default_constraints - WHERE parent_object_id = OBJECT_ID('ehr.form_framework_types') AND - parent_column_id = (SELECT column_id FROM sys.columns WHERE object_id = OBJECT_ID('ehr.form_framework_types') AND name = 'url'); -IF @ConstraintName IS NOT NULL -BEGIN - EXEC('ALTER TABLE ehr.form_framework_types DROP CONSTRAINT ' + @ConstraintName) -END - -EXEC core.fn_dropifexists 'form_framework_types', 'ehr', 'constraint', 'PK_form_framework_types'; -ALTER TABLE ehr.form_framework_types ALTER COLUMN schemaname NVARCHAR(255) NOT NULL; -ALTER TABLE ehr.form_framework_types ALTER COLUMN queryname NVARCHAR(255) NOT NULL; -GO -ALTER TABLE ehr.form_framework_types ADD CONSTRAINT PK_form_framework_types PRIMARY KEY (schemaname, queryname); -ALTER TABLE ehr.form_framework_types ALTER COLUMN framework NVARCHAR(255); -ALTER TABLE ehr.form_framework_types ALTER COLUMN url NVARCHAR(255); -GO - -ALTER TABLE ehr.formpanelsections ALTER COLUMN formtype NVARCHAR(200) NOT NULL; -ALTER TABLE ehr.formpanelsections ALTER COLUMN destination NVARCHAR(200) NOT NULL; -ALTER TABLE ehr.formpanelsections ALTER COLUMN xtype NVARCHAR(200) NOT NULL; -ALTER TABLE ehr.formpanelsections ALTER COLUMN schemaname NVARCHAR(200); -ALTER TABLE ehr.formpanelsections ALTER COLUMN queryname NVARCHAR(200); -ALTER TABLE ehr.formpanelsections ALTER COLUMN title NVARCHAR(200); -ALTER TABLE ehr.formpanelsections ALTER COLUMN metadatasources NVARCHAR(MAX); -ALTER TABLE ehr.formpanelsections ALTER COLUMN buttons NVARCHAR(MAX); -ALTER TABLE ehr.formpanelsections ALTER COLUMN initialtemplates NVARCHAR(MAX); -GO - -ALTER TABLE ehr.formtemplaterecords ALTER COLUMN storeid NVARCHAR(1000) NOT NULL; -ALTER TABLE ehr.formtemplaterecords ALTER COLUMN targettemplate NVARCHAR(100); -GO - -EXEC core.fn_dropifexists 'formtemplates', 'ehr', 'constraint', 'UNIQUE_formTemplates'; -ALTER TABLE ehr.formtemplates ALTER COLUMN title NVARCHAR(200) NOT NULL; -ALTER TABLE ehr.formtemplates ALTER COLUMN formtype NVARCHAR(200) NOT NULL; -GO -ALTER TABLE ehr.formtemplates ADD CONSTRAINT UNIQUE_formTemplates UNIQUE (container, formtype, title); -ALTER TABLE ehr.formtemplates ALTER COLUMN category NVARCHAR(100); -GO - -EXEC core.fn_dropifexists 'formtypes', 'ehr', 'constraint', 'unique_formtypes'; -ALTER TABLE ehr.formtypes ALTER COLUMN formtype NVARCHAR(200) NOT NULL; -GO -ALTER TABLE ehr.formtypes ADD CONSTRAINT unique_formtypes UNIQUE (container , formtype); -ALTER TABLE ehr.formtypes ALTER COLUMN category NVARCHAR(100); -ALTER TABLE ehr.formtypes ALTER COLUMN configjson NVARCHAR(MAX); -GO - -ALTER TABLE ehr.institutions ALTER COLUMN affiliate NVARCHAR(50); -ALTER TABLE ehr.institutions ALTER COLUMN web_site NVARCHAR(200); -GO - -ALTER TABLE ehr.investigators ALTER COLUMN firstName NVARCHAR(100); -ALTER TABLE ehr.investigators ALTER COLUMN lastName NVARCHAR(100); -ALTER TABLE ehr.investigators ALTER COLUMN position NVARCHAR(100); -ALTER TABLE ehr.investigators ALTER COLUMN address NVARCHAR(500); -ALTER TABLE ehr.investigators ALTER COLUMN city NVARCHAR(100); -ALTER TABLE ehr.investigators ALTER COLUMN state NVARCHAR(100); -ALTER TABLE ehr.investigators ALTER COLUMN country NVARCHAR(100); -ALTER TABLE ehr.investigators ALTER COLUMN zip NVARCHAR(100); -ALTER TABLE ehr.investigators ALTER COLUMN phoneNumber NVARCHAR(100); -ALTER TABLE ehr.investigators ALTER COLUMN investigatorType NVARCHAR(100); -ALTER TABLE ehr.investigators ALTER COLUMN emailAddress NVARCHAR(100); -ALTER TABLE ehr.investigators ALTER COLUMN division NVARCHAR(100); -GO - -ALTER TABLE ehr.kinship ALTER COLUMN id NVARCHAR(100) NOT NULL; -ALTER TABLE ehr.kinship ALTER COLUMN id2 NVARCHAR(100) NOT NULL; -GO - -DECLARE @ConstraintName nvarchar(200) -SELECT @ConstraintName = Name -FROM sys.default_constraints -WHERE parent_object_id = OBJECT_ID('ehr.module_properties') AND - parent_column_id = (SELECT column_id FROM sys.columns WHERE object_id = OBJECT_ID('ehr.module_properties') AND name = 'prop_name'); -IF @ConstraintName IS NOT NULL -BEGIN -EXEC('ALTER TABLE ehr.module_properties DROP CONSTRAINT ' + @ConstraintName) -END - -SELECT @ConstraintName = Name -FROM sys.default_constraints -WHERE parent_object_id = OBJECT_ID('ehr.module_properties') AND - parent_column_id = (SELECT column_id FROM sys.columns WHERE object_id = OBJECT_ID('ehr.module_properties') AND name = 'stringvalue'); -IF @ConstraintName IS NOT NULL -BEGIN -EXEC('ALTER TABLE ehr.module_properties DROP CONSTRAINT ' + @ConstraintName) -END - -EXEC core.fn_dropifexists 'module_properties', 'ehr', 'constraint', 'unique_module_properties'; -ALTER TABLE ehr.module_properties ALTER COLUMN prop_name NVARCHAR(255); -GO -ALTER TABLE ehr.module_properties ADD CONSTRAINT unique_module_properties UNIQUE (prop_name , container); -ALTER TABLE ehr.module_properties ALTER COLUMN stringvalue NVARCHAR(255); -GO - -ALTER TABLE ehr.notificationrecipients ALTER COLUMN notificationtype NVARCHAR(200); -GO - -EXEC core.fn_dropifexists 'notificationtypes', 'ehr', 'constraint', 'pk_notificationtypes'; -ALTER TABLE ehr.notificationtypes ALTER COLUMN notificationtype NVARCHAR(200) NOT NULL; -GO -ALTER TABLE ehr.notificationtypes ADD CONSTRAINT pk_notificationtypes PRIMARY KEY (notificationtype ) - -ALTER TABLE ehr.observation_types ALTER COLUMN value NVARCHAR(200); -ALTER TABLE ehr.observation_types ALTER COLUMN category NVARCHAR(200); -ALTER TABLE ehr.observation_types ALTER COLUMN editorconfig NVARCHAR(MAX); -ALTER TABLE ehr.observation_types ALTER COLUMN schemaname NVARCHAR(200); -ALTER TABLE ehr.observation_types ALTER COLUMN queryname NVARCHAR(200); -ALTER TABLE ehr.observation_types ALTER COLUMN valuecolumn NVARCHAR(200); -GO - -EXEC core.fn_dropifexists 'project', 'ehr', 'index', 'IDX_project_container_project_protocol'; -ALTER TABLE ehr.project ALTER COLUMN protocol NVARCHAR(200); -GO -CREATE INDEX IDX_project_container_project_protocol ON ehr.project (container, project, protocol); -ALTER TABLE ehr.project ALTER COLUMN account NVARCHAR(200); -ALTER TABLE ehr.project ALTER COLUMN inves NVARCHAR(200); -ALTER TABLE ehr.project ALTER COLUMN avail NVARCHAR(100); -ALTER TABLE ehr.project ALTER COLUMN title NVARCHAR(400); -ALTER TABLE ehr.project ALTER COLUMN reqname NVARCHAR(200); -ALTER TABLE ehr.project ALTER COLUMN contact_emails NVARCHAR(MAX); -ALTER TABLE ehr.project ALTER COLUMN inves2 NVARCHAR(200); -EXEC core.fn_dropifexists 'project', 'ehr', 'index', 'project_name_project'; -EXEC core.fn_dropifexists 'project', 'ehr', 'index', 'project_investigatorid_project'; -EXEC core.fn_dropifexists 'project', 'ehr', 'index', 'IDX_container_project_objectid_name'; -ALTER TABLE ehr.project ALTER COLUMN name NVARCHAR(100); -GO -CREATE INDEX project_investigatorid_project ON ehr.project (investigatorId ASC, project ASC) INCLUDE (name); -CREATE INDEX project_name_project ON ehr.project (name, project); -CREATE INDEX IDX_container_project_objectid_name ON ehr.project (container, project, objectid, name); -ALTER TABLE ehr.project ALTER COLUMN use_category NVARCHAR(100); -ALTER TABLE ehr.project ALTER COLUMN shortname NVARCHAR(200); -ALTER TABLE ehr.project ALTER COLUMN projecttype NVARCHAR(100); -GO - -EXEC core.fn_dropifexists 'protocol', 'ehr', 'index', 'IDX_protocol_container_protocol'; -ALTER TABLE ehr.protocol ALTER COLUMN protocol NVARCHAR(200) NOT NULL; -GO -CREATE INDEX IDX_protocol_container_protocol ON ehr.protocol (container, protocol); -ALTER TABLE ehr.protocol ALTER COLUMN inves NVARCHAR(200); -ALTER TABLE ehr.protocol ALTER COLUMN title NVARCHAR(1000); -ALTER TABLE ehr.protocol ALTER COLUMN usda_level NVARCHAR(100); -ALTER TABLE ehr.protocol ALTER COLUMN external_id NVARCHAR(200); -ALTER TABLE ehr.protocol ALTER COLUMN project_type NVARCHAR(200); -ALTER TABLE ehr.protocol ALTER COLUMN ibc_approval_num NVARCHAR(200); -ALTER TABLE ehr.protocol ALTER COLUMN contacts NVARCHAR(200); -GO - -ALTER TABLE ehr.protocol_amendments ALTER COLUMN protocol NVARCHAR(200); -ALTER TABLE ehr.protocol_amendments ALTER COLUMN Comment NVARCHAR(MAX); -GO - -ALTER TABLE ehr.protocol_counts ALTER COLUMN protocol NVARCHAR(200); -ALTER TABLE ehr.protocol_counts ALTER COLUMN species NVARCHAR(200) NOT NULL; -ALTER TABLE ehr.protocol_counts ALTER COLUMN gender NVARCHAR(100); -ALTER TABLE ehr.protocol_counts ALTER COLUMN description NVARCHAR(MAX); -GO - -ALTER TABLE ehr.protocolexemptions ALTER COLUMN protocol NVARCHAR(100); -ALTER TABLE ehr.protocolexemptions ALTER COLUMN exemption NVARCHAR(200); -ALTER TABLE ehr.protocolexemptions ALTER COLUMN remark NVARCHAR(MAX); -GO - -ALTER TABLE ehr.protocolprocedures ALTER COLUMN protocol NVARCHAR(200) NOT NULL; -ALTER TABLE ehr.protocolprocedures ALTER COLUMN procedurename NVARCHAR(200); -ALTER TABLE ehr.protocolprocedures ALTER COLUMN code NVARCHAR(100); -ALTER TABLE ehr.protocolprocedures ALTER COLUMN frequency NVARCHAR(200); -ALTER TABLE ehr.protocolprocedures ALTER COLUMN remark NVARCHAR(MAX); -GO - -EXEC core.fn_dropifexists 'qcstatemetadata', 'ehr', 'constraint', 'pk_qcstatemetadata'; -ALTER TABLE ehr.qcstatemetadata ALTER COLUMN qcstatelabel NVARCHAR(200) NOT NULL; -GO -ALTER TABLE ehr.qcstatemetadata ADD CONSTRAINT pk_qcstatemetadata PRIMARY KEY (qcstatelabel) -GO - -DECLARE @ConstraintName nvarchar(200) -SELECT @ConstraintName = Name -FROM sys.default_constraints -WHERE parent_object_id = OBJECT_ID('ehr.reports') AND - parent_column_id = (SELECT column_id FROM sys.columns WHERE object_id = OBJECT_ID('ehr.reports') AND name = 'reportname'); -IF @ConstraintName IS NOT NULL -BEGIN -EXEC('ALTER TABLE ehr.reports DROP CONSTRAINT ' + @ConstraintName) -END - -SELECT @ConstraintName = Name -FROM sys.default_constraints -WHERE parent_object_id = OBJECT_ID('ehr.reports') AND - parent_column_id = (SELECT column_id FROM sys.columns WHERE object_id = OBJECT_ID('ehr.reports') AND name = 'datefieldname'); -IF @ConstraintName IS NOT NULL -BEGIN -EXEC('ALTER TABLE ehr.reports DROP CONSTRAINT ' + @ConstraintName) -END - -SELECT @ConstraintName = Name -FROM sys.default_constraints -WHERE parent_object_id = OBJECT_ID('ehr.reports') AND - parent_column_id = (SELECT column_id FROM sys.columns WHERE object_id = OBJECT_ID('ehr.reports') AND name = 'qcstatepublicdatafieldname'); -IF @ConstraintName IS NOT NULL -BEGIN -EXEC('ALTER TABLE ehr.reports DROP CONSTRAINT ' + @ConstraintName) -END - -SELECT @ConstraintName = Name -FROM sys.default_constraints -WHERE parent_object_id = OBJECT_ID('ehr.reports') AND - parent_column_id = (SELECT column_id FROM sys.columns WHERE object_id = OBJECT_ID('ehr.reports') AND name = 'report'); -IF @ConstraintName IS NOT NULL -BEGIN -EXEC('ALTER TABLE ehr.reports DROP CONSTRAINT ' + @ConstraintName) -END - -SELECT @ConstraintName = Name -FROM sys.default_constraints -WHERE parent_object_id = OBJECT_ID('ehr.reports') AND - parent_column_id = (SELECT column_id FROM sys.columns WHERE object_id = OBJECT_ID('ehr.reports') AND name = 'reporttype'); -IF @ConstraintName IS NOT NULL -BEGIN -EXEC('ALTER TABLE ehr.reports DROP CONSTRAINT ' + @ConstraintName) -END - -SELECT @ConstraintName = Name -FROM sys.default_constraints -WHERE parent_object_id = OBJECT_ID('ehr.reports') AND - parent_column_id = (SELECT column_id FROM sys.columns WHERE object_id = OBJECT_ID('ehr.reports') AND name = 'reporttitle'); -IF @ConstraintName IS NOT NULL -BEGIN -EXEC('ALTER TABLE ehr.reports DROP CONSTRAINT ' + @ConstraintName) -END - -SELECT @ConstraintName = Name -FROM sys.default_constraints -WHERE parent_object_id = OBJECT_ID('ehr.reports') AND - parent_column_id = (SELECT column_id FROM sys.columns WHERE object_id = OBJECT_ID('ehr.reports') AND name = 'schemaname'); -IF @ConstraintName IS NOT NULL -BEGIN -EXEC('ALTER TABLE ehr.reports DROP CONSTRAINT ' + @ConstraintName) -END - -SELECT @ConstraintName = Name -FROM sys.default_constraints -WHERE parent_object_id = OBJECT_ID('ehr.reports') AND - parent_column_id = (SELECT column_id FROM sys.columns WHERE object_id = OBJECT_ID('ehr.reports') AND name = 'viewname'); -IF @ConstraintName IS NOT NULL -BEGIN -EXEC('ALTER TABLE ehr.reports DROP CONSTRAINT ' + @ConstraintName) -END - -SELECT @ConstraintName = Name -FROM sys.default_constraints -WHERE parent_object_id = OBJECT_ID('ehr.reports') AND - parent_column_id = (SELECT column_id FROM sys.columns WHERE object_id = OBJECT_ID('ehr.reports') AND name = 'category'); -IF @ConstraintName IS NOT NULL -BEGIN -EXEC('ALTER TABLE ehr.reports DROP CONSTRAINT ' + @ConstraintName) -END - -SELECT @ConstraintName = Name -FROM sys.default_constraints -WHERE parent_object_id = OBJECT_ID('ehr.reports') AND - parent_column_id = (SELECT column_id FROM sys.columns WHERE object_id = OBJECT_ID('ehr.reports') AND name = 'containerpath'); -IF @ConstraintName IS NOT NULL -BEGIN -EXEC('ALTER TABLE ehr.reports DROP CONSTRAINT ' + @ConstraintName) -END - -SELECT @ConstraintName = Name -FROM sys.default_constraints -WHERE parent_object_id = OBJECT_ID('ehr.reports') AND - parent_column_id = (SELECT column_id FROM sys.columns WHERE object_id = OBJECT_ID('ehr.reports') AND name = 'queryname'); -IF @ConstraintName IS NOT NULL -BEGIN -EXEC('ALTER TABLE ehr.reports DROP CONSTRAINT ' + @ConstraintName) -END - -ALTER TABLE ehr.reports ALTER COLUMN reportname NVARCHAR(255); -ALTER TABLE ehr.reports ALTER COLUMN category NVARCHAR(255); -ALTER TABLE ehr.reports ALTER COLUMN reporttype NVARCHAR(255); -ALTER TABLE ehr.reports ALTER COLUMN reporttitle NVARCHAR(255); -ALTER TABLE ehr.reports ALTER COLUMN containerpath NVARCHAR(255); -ALTER TABLE ehr.reports ALTER COLUMN schemaname NVARCHAR(255); -ALTER TABLE ehr.reports ALTER COLUMN queryname NVARCHAR(255); -ALTER TABLE ehr.reports ALTER COLUMN viewname NVARCHAR(255); -ALTER TABLE ehr.reports ALTER COLUMN report NVARCHAR(255); -ALTER TABLE ehr.reports ALTER COLUMN datefieldname NVARCHAR(255); -ALTER TABLE ehr.reports ALTER COLUMN qcstatepublicdatafieldname NVARCHAR(255); -ALTER TABLE ehr.reports ALTER COLUMN jsonconfig NVARCHAR(MAX); -ALTER TABLE ehr.reports ALTER COLUMN description NVARCHAR(MAX); -ALTER TABLE ehr.reports ALTER COLUMN subjectIdFieldName NVARCHAR(200); -GO - -ALTER TABLE ehr.requests ALTER COLUMN title NVARCHAR(200); -ALTER TABLE ehr.requests ALTER COLUMN formtype NVARCHAR(200); -ALTER TABLE ehr.requests ALTER COLUMN priority NVARCHAR(200); -ALTER TABLE ehr.requests ALTER COLUMN pi NVARCHAR(200); -ALTER TABLE ehr.requests ALTER COLUMN remark NVARCHAR(MAX); -GO - -EXEC core.fn_dropifexists 'scheduled_task_types', 'ehr', 'constraint', 'pk_scheduled_task_types'; -ALTER TABLE ehr.scheduled_task_types ALTER COLUMN tasktype NVARCHAR(200) NOT NULL; -GO -ALTER TABLE ehr.scheduled_task_types ADD CONSTRAINT pk_scheduled_task_types PRIMARY KEY (tasktype) - -ALTER TABLE ehr.scheduled_tasks ALTER COLUMN tasktype NVARCHAR(200); -ALTER TABLE ehr.scheduled_tasks ALTER COLUMN id NVARCHAR(100); -ALTER TABLE ehr.scheduled_tasks ALTER COLUMN location NVARCHAR(100); -ALTER TABLE ehr.scheduled_tasks ALTER COLUMN description NVARCHAR(MAX); -GO - -EXEC core.fn_dropifexists 'snomed_tags', 'ehr', 'index', 'snomed_tags_recordid'; -EXEC core.fn_dropifexists 'snomed_tags', 'ehr', 'index', 'CIDX_snomed_tags'; -ALTER TABLE ehr.snomed_tags ALTER COLUMN recordid NVARCHAR(200); -GO -CREATE INDEX snomed_tags_recordid ON ehr.snomed_tags (recordid); -CREATE CLUSTERED INDEX CIDX_snomed_tags ON ehr.snomed_tags (container, recordid, set_number, sort) -EXEC core.fn_dropifexists 'snomed_tags', 'ehr', 'index', 'snomed_tags_code_container'; -ALTER TABLE ehr.snomed_tags ALTER COLUMN code NVARCHAR(32); -GO -CREATE INDEX snomed_tags_code_container ON ehr.snomed_tags (code, container); -ALTER TABLE ehr.snomed_tags ALTER COLUMN qualifier NVARCHAR(200); -EXEC core.fn_dropifexists 'snomed_tags', 'ehr', 'constraint', 'PK_snomed_tags'; -ALTER TABLE ehr.snomed_tags ALTER COLUMN objectid NVARCHAR(60) NOT NULL; -GO -ALTER TABLE ehr.snomed_tags ADD CONSTRAINT PK_snomed_tags PRIMARY KEY NONCLUSTERED (objectid); -ALTER TABLE ehr.snomed_tags ALTER COLUMN id NVARCHAR(100); -GO - -ALTER TABLE ehr.status ALTER COLUMN label NVARCHAR(200) NOT NULL; -ALTER TABLE ehr.status ALTER COLUMN description NVARCHAR(MAX); -GO - -ALTER TABLE ehr.supplemental_pedigree ALTER COLUMN id NVARCHAR(50) NOT NULL; -ALTER TABLE ehr.supplemental_pedigree ALTER COLUMN gender NVARCHAR(50); -ALTER TABLE ehr.supplemental_pedigree ALTER COLUMN dam NVARCHAR(50); -ALTER TABLE ehr.supplemental_pedigree ALTER COLUMN sire NVARCHAR(50); -ALTER TABLE ehr.supplemental_pedigree ALTER COLUMN species NVARCHAR(MAX); -GO - -ALTER TABLE ehr.tasks ALTER COLUMN category NVARCHAR(200) NOT NULL; -ALTER TABLE ehr.tasks ALTER COLUMN title NVARCHAR(200); - -EXEC core.fn_dropifexists 'tasks', 'ehr', 'index', 'IDX_container_taskid_formtype'; -ALTER TABLE ehr.tasks ALTER COLUMN formtype NVARCHAR(200); -GO -CREATE INDEX IDX_container_taskid_formtype ON ehr.tasks (container, taskid, formtype); \ No newline at end of file diff --git a/ehr/resources/schemas/dbscripts/sqlserver/ehr-23.001-23.002.sql b/ehr/resources/schemas/dbscripts/sqlserver/ehr-23.001-23.002.sql deleted file mode 100644 index 97797c1a4..000000000 --- a/ehr/resources/schemas/dbscripts/sqlserver/ehr-23.001-23.002.sql +++ /dev/null @@ -1 +0,0 @@ -ALTER TABLE ehr.notificationrecipients ADD Lsid LsidType null; \ No newline at end of file diff --git a/ehr_billing/resources/schemas/dbscripts/postgresql/ehr_billing-0.000-21.000.sql b/ehr_billing/resources/schemas/dbscripts/postgresql/ehr_billing-0.000-21.000.sql deleted file mode 100644 index 2fdfa04e7..000000000 --- a/ehr_billing/resources/schemas/dbscripts/postgresql/ehr_billing-0.000-21.000.sql +++ /dev/null @@ -1,709 +0,0 @@ -/* - * Copyright (c) 2017 LabKey Corporation - * - * Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0 - */ - -/* ehr_billing-17.20-17.30.sql */ - -CREATE SCHEMA ehr_billing; - -CREATE TABLE ehr_billing.aliases ( - - rowid serial, - alias varchar(200), - aliasEnabled Varchar(100), - projectNumber varchar(200), - grantNumber varchar(200), - agencyAwardNumber varchar(200), - investigatorId int, - investigatorName varchar(200), - fiscalAuthority int, - fiscalAuthorityName varchar(200), - category varchar(100), - faRate double precision, - faSchedule varchar(200), - budgetStartDate timestamp, - budgetEndDate timestamp, - projectTitle varchar(1000), - projectDescription varchar(1000), - projectStatus varchar(200), - aliasType VARCHAR(100), - - container ENTITYID NOT NULL, - createdBy USERID, - created timestamp, - modifiedBy USERID, - modified timestamp, - - CONSTRAINT PK_aliases PRIMARY KEY (rowid), - CONSTRAINT FK_EHR_BILLING_ALIASES_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) -); - -CREATE INDEX EHR_BILLING_ALIASES_INDEX ON ehr_billing.aliases (container, alias); -CREATE INDEX EHR_BILLING_ALIASES_CONTAINER_INDEX ON ehr_billing.aliases (Container); - -CREATE TABLE ehr_billing.chargeRates ( - - rowId SERIAL NOT NULL, - chargeId int, - unitcost double precision, - subsidy double precision, - startDate timestamp, - endDate timestamp, - - container ENTITYID NOT NULL, - createdBy USERID, - created timestamp, - modifiedBy USERID, - modified timestamp, - - CONSTRAINT PK_chargeRates PRIMARY KEY (rowId), - CONSTRAINT FK_EHR_BILLING_CHARGE_RATES_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) -); - -CREATE INDEX EHR_BILLING_CHARGE_RATES_CONTAINER_INDEX ON ehr_billing.chargeRates (Container); - -ALTER TABLE ehr_billing.aliases ADD COLUMN LSID LSIDtype; -ALTER TABLE ehr_billing.chargeRates ADD COLUMN LSID LSIDtype; - -/* ehr_billing-17.30-18.10.sql */ - ---this table contains records of misc charges that have happened that cannot otherwise be ---automatically inferred from the record -CREATE TABLE ehr_billing.miscCharges ( - objectid entityid NOT NULL, - id varchar(100), - date timestamp, - project integer, - category varchar(100), - chargeId int, - quantity double precision, - unitcost double precision, - comment varchar(4000), - chargeType varchar(200), - billingDate timestamp, - invoiceId entityid, - invoicedItemId entityid, - item varchar(500), - sourceInvoicedItem entityid, - creditedaccount varchar(100), - debitedaccount varchar(200), - qcstate int, - parentid entityid, - issueId int, - formSort integer, - chargeCategory VARCHAR(100), - - taskid entityid, - requestid entityid, - - container ENTITYID NOT NULL, - createdBy USERID, - created timestamp, - modifiedBy USERID, - modified timestamp, - - CONSTRAINT PK_miscCharges PRIMARY KEY (objectid) -); - ---this table contains one row each time a billing run is performed, which gleans items to be charged from a variety of sources ---and snapshots them into invoicedItems -CREATE TABLE ehr_billing.invoiceRuns ( - rowId SERIAL NOT NULL, - dataSources varchar(1000), - comment varchar(4000), - runDate timestamp, - billingPeriodStart timestamp, - billingPeriodEnd timestamp, - objectid entityid NOT NULL, - invoiceNumber varchar(200), - status varchar(200), - - container ENTITYID NOT NULL, - createdBy USERID, - created timestamp, - modifiedBy USERID, - modified timestamp, - - CONSTRAINT pk_invoiceRuns PRIMARY KEY (objectid) -); - ---this table contains a snapshot of items actually invoiced, which will draw from many places in the animal record -CREATE TABLE ehr_billing.invoicedItems ( - rowId SERIAL NOT NULL, - id varchar(100), - date timestamp, - debitedaccount varchar(100), - creditedaccount varchar(100), - category varchar(100), - item varchar(500), - quantity double precision, - unitcost double precision, - totalcost double precision, - chargeId int, - rateId int, - exemptionId int, - comment varchar(4000), - sourceRecord varchar(200), - billingId int, - credit boolean, - lastName varchar(100), - firstName varchar(100), - project int, - invoiceDate timestamp, - invoiceNumber int, - transactionType varchar(10), - department varchar(100), - mailcode varchar(20), - contactPhone varchar(30), - faid int, - cageId int, - objectId entityid NOT NULL, - itemCode varchar(100), - creditAccountId int, - invoiceId entityid, - servicecenter varchar(200), - transactionNumber varchar(100), - investigatorId int, - chargeCategory varchar(100), - sourcerecord2 varchar(100), - issueId int, - - container ENTITYID NOT NULL, - createdBy USERID, - created timestamp, - modifiedBy USERID, - modified timestamp, - - CONSTRAINT PK_invoicedItems PRIMARY KEY (objectid) -); - -CREATE TABLE ehr_billing.chargeableItems ( - - rowId SERIAL NOT NULL, - name varchar(200), - shortName varchar(100), - category varchar(200), - comment varchar(4000), - active boolean default true, - startDate timestamp, - endDate timestamp, - itemCode varchar(100), - departmentCode varchar(100), - allowsCustomUnitCost boolean DEFAULT false, - canRaiseFA boolean DEFAULT false, - allowBlankId boolean DEFAULT false, - - container ENTITYID NOT NULL, - createdBy USERID, - created timestamp, - modifiedBy USERID, - modified timestamp, - - CONSTRAINT PK_chargeableItems PRIMARY KEY (rowId) -); - -ALTER TABLE ehr_billing.chargeableItems ADD COLUMN LSID LSIDtype; - -CREATE TABLE ehr_billing.chargeRateExemptions ( - - rowId SERIAL NOT NULL, - project int, - chargeId int, - unitcost double precision, - startDate timestamp, - endDate timestamp, - remark varchar(4000), - - container ENTITYID NOT NULL, - createdBy USERID, - created timestamp, - modifiedBy USERID, - modified timestamp, - - CONSTRAINT PK_chargeRateExemptions PRIMARY KEY (rowId) -); - -CREATE TABLE ehr_billing.chargeUnits ( - - chargetype varchar(100) NOT NULL, - shownInBlood boolean default false, - shownInLabwork boolean default false, - shownInMedications boolean default false, - shownInProcedures boolean default false, - servicecenter varchar(100), - - active boolean default true, - container entityid, - createdBy int, - created timestamp, - modifiedBy int, - modified timestamp, - - CONSTRAINT PK_chargeUnits PRIMARY KEY (chargetype) -); - -ALTER TABLE ehr_billing.chargeRateExemptions ALTER remark TYPE TEXT; - -ALTER TABLE ehr_billing.chargeRateExemptions ADD CONSTRAINT FK_EHR_BILLING_CHARGE_RATE_EXEMPTIONS_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId); -CREATE INDEX EHR_BILLING_CHARGE_RATE_EXEMPTIONS_CONTAINER_INDEX ON ehr_billing.chargeRateExemptions (Container); - -ALTER TABLE ehr_billing.chargeUnits ADD CONSTRAINT FK_EHR_BILLING_CHARGE_UNITS_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId); -CREATE INDEX EHR_BILLING_CHARGE_UNITS_CONTAINER_INDEX ON ehr_billing.chargeUnits (Container); - -ALTER TABLE ehr_billing.invoiceRuns ADD CONSTRAINT FK_EHR_BILLING_INVOICE_RUNS_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId); -CREATE INDEX EHR_BILLING_INVOICE_RUNS_CONTAINER_INDEX ON ehr_billing.invoiceRuns (Container); - -ALTER TABLE ehr_billing.invoicedItems ADD CONSTRAINT FK_EHR_BILLING_INVOICED_ITEMS_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId); -CREATE INDEX EHR_BILLING_INVOICED_ITEMS_CONTAINER_INDEX ON ehr_billing.invoicedItems (Container); - -ALTER TABLE ehr_billing.miscCharges ADD CONSTRAINT FK_EHR_BILLING_MISC_CHARGES_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId); -CREATE INDEX EHR_BILLING_MISC_CHARGES_CONTAINER_INDEX ON ehr_billing.miscCharges (Container); - -CREATE TABLE ehr_billing.invoice ( - - rowId SERIAL NOT NULL, - invoiceNumber integer, - invoiceRunId ENTITYID, - accountNumber varchar(10), - invoiceSentOn timestamp, - invoiceAmount double precision, - invoiceSentComment varchar(10), - paymentAmountReceived double precision, - fullPaymentReceived boolean, - paymentReceivedOn timestamp, - paymentReceivedComment varchar(10), - - container ENTITYID NOT NULL, - createdBy USERID, - created timestamp, - modifiedBy USERID, - modified timestamp, - - CONSTRAINT PK_EHR_BILLING_INVOICE PRIMARY KEY (rowId), - CONSTRAINT FK_EHR_BILLING_INVOICE_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) -); - -CREATE INDEX EHR_BILLING_INVOICE_CONTAINER_INDEX ON ehr_billing.invoice (Container); - -ALTER TABLE ehr_billing.invoiceRuns DROP invoiceNumber; - -ALTER TABLE ehr_billing.invoice ALTER COLUMN invoiceNumber TYPE varchar(20); -ALTER TABLE ehr_billing.invoicedItems ALTER COLUMN invoiceNumber TYPE varchar(20); - -ALTER TABLE ehr_billing.invoice DROP CONSTRAINT PK_EHR_BILLING_INVOICE; -ALTER TABLE ehr_billing.invoice ALTER COLUMN invoiceNumber SET NOT NULL; -ALTER TABLE ehr_billing.invoice ADD CONSTRAINT PK_EHR_BILLING_INVOICE_INVNUM PRIMARY KEY (invoiceNumber); - -ALTER TABLE ehr_billing.invoicedItems ALTER COLUMN invoiceNumber SET NOT NULL; - -ALTER TABLE ehr_billing.invoice ADD CONSTRAINT UNIQUE_INVOICE_NUM UNIQUE (invoiceNumber); -ALTER TABLE ehr_billing.invoicedItems ADD CONSTRAINT FK_INVOICEDITEMS_INVOICENUM FOREIGN KEY (invoiceNumber) REFERENCES ehr_billing.invoice (invoiceNumber); - -CREATE INDEX EHR_BILLING_INVOICEDITEMS_INVNUM_INDEX ON ehr_billing.invoicedItems (invoiceNumber); - -/* ehr_billing-18.20-18.30.sql */ - -SELECT core.fn_dropifexists('invoicedItems', 'ehr_billing', 'CONSTRAINT', 'FK_INVOICEDITEMS_INVOICENUM'); - -SELECT core.fn_dropifexists('chargeableItems','ehr_billing','TABLE', NULL); -SELECT core.fn_dropifexists('chargeRateExemptions','ehr_billing','TABLE', NULL); -SELECT core.fn_dropifexists('chargeUnits','ehr_billing','TABLE', NULL); -SELECT core.fn_dropifexists('invoice','ehr_billing','TABLE', NULL); - -CREATE TABLE ehr_billing.chargeableItems ( - - rowId SERIAL NOT NULL, - name varchar(200), - shortName varchar(100), - category varchar(200), - comment varchar(4000), - active boolean default true, - startDate timestamp, - endDate timestamp, - itemCode varchar(100), - departmentCode varchar(100), - allowsCustomUnitCost boolean DEFAULT false, - canRaiseFA boolean DEFAULT false, - allowBlankId boolean DEFAULT false, - LSID LSIDtype, - container ENTITYID NOT NULL, - createdBy USERID, - created timestamp, - modifiedBy USERID, - modified timestamp, - - CONSTRAINT PK_chargeableItems PRIMARY KEY (rowId), - CONSTRAINT FK_EHR_BILLING_CHARGEABLEITEMS_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) -); - -CREATE TABLE ehr_billing.chargeRateExemptions ( - - rowId SERIAL NOT NULL, - project int, - chargeId int, - unitcost double precision, - startDate timestamp, - endDate timestamp, - remark TEXT, - LSID LSIDtype, - container ENTITYID NOT NULL, - createdBy USERID, - created timestamp, - modifiedBy USERID, - modified timestamp, - - CONSTRAINT PK_chargeRateExemptions PRIMARY KEY (rowId), - CONSTRAINT FK_EHR_BILLING_CHARGERATEEXEMPTIONS_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) -); - -CREATE TABLE ehr_billing.chargeUnits ( - - chargetype varchar(100) NOT NULL, - shownInBlood boolean default false, - shownInLabwork boolean default false, - shownInMedications boolean default false, - shownInProcedures boolean default false, - servicecenter varchar(100), - active boolean default true, - LSID LSIDtype, - container entityid, - createdBy int, - created timestamp, - modifiedBy int, - modified timestamp, - - CONSTRAINT PK_chargeUnits PRIMARY KEY (chargetype), - CONSTRAINT FK_EHR_BILLING_CHARGEUNITS_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) -); - -CREATE TABLE ehr_billing.invoice ( - - rowId SERIAL NOT NULL, - invoiceNumber varchar(20) NOT NULL, - invoiceRunId ENTITYID, - accountNumber varchar(10), - invoiceSentOn timestamp, - invoiceAmount double precision, - invoiceSentComment varchar(10), - paymentAmountReceived double precision, - fullPaymentReceived boolean, - paymentReceivedOn timestamp, - paymentReceivedComment varchar(10), - LSID LSIDtype, - container ENTITYID NOT NULL, - createdBy USERID, - created timestamp, - modifiedBy USERID, - modified timestamp, - - CONSTRAINT PK_EHR_BILLING_INVOICE_INVNUM PRIMARY KEY (invoiceNumber), - CONSTRAINT FK_EHR_BILLING_INVOICE_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) -); - -CREATE INDEX EHR_BILLING_INVOICE_CONTAINER_INDEX ON ehr_billing.invoice (Container); -CREATE INDEX EHR_BILLING_CHARGEUNITS_CONTAINER_INDEX ON ehr_billing.chargeUnits (Container); -CREATE INDEX EHR_BILLING_CHARGERATEEXEMPTIONS_CONTAINER_INDEX ON ehr_billing.chargeRateExemptions (Container); -CREATE INDEX EHR_BILLING_CHARGEABLEITEMS_CONTAINER_INDEX ON ehr_billing.chargeableItems (Container); - -ALTER TABLE ehr_billing.invoiceditems ADD COLUMN Lsid LSIDType; -ALTER TABLE ehr_billing.invoiceruns ADD COLUMN Lsid LSIDType; -ALTER TABLE ehr_billing.miscCharges ADD COLUMN Lsid LSIDType; - -SELECT core.fn_dropifexists('invoiceRuns', 'ehr_billing', 'CONSTRAINT', 'FK_EHR_BILLING_INVOICE_RUNS_CONTAINER'); -SELECT core.fn_dropifexists('invoicedItems', 'ehr_billing', 'CONSTRAINT', 'FK_EHR_BILLING_INVOICED_ITEMS_CONTAINER'); -SELECT core.fn_dropifexists('miscCharges', 'ehr_billing', 'CONSTRAINT', 'FK_EHR_BILLING_MISC_CHARGES_CONTAINER'); - -SELECT core.fn_dropifexists('invoiceRuns', 'ehr_billing', 'INDEX', 'EHR_BILLING_INVOICE_RUNS_CONTAINER_INDEX'); -SELECT core.fn_dropifexists('invoicedItems', 'ehr_billing', 'INDEX', 'EHR_BILLING_INVOICED_ITEMS_CONTAINER_INDEX'); -SELECT core.fn_dropifexists('miscCharges', 'ehr_billing', 'INDEX', 'EHR_BILLING_MISC_CHARGES_CONTAINER_INDEX'); - - -ALTER TABLE ehr_billing.invoiceRuns ADD CONSTRAINT FK_EHR_BILLING_INVOICE_RUNS_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId); -CREATE INDEX EHR_BILLING_INVOICE_RUNS_CONTAINER_INDEX ON ehr_billing.invoiceRuns (Container); - -ALTER TABLE ehr_billing.invoicedItems ADD CONSTRAINT FK_EHR_BILLING_INVOICED_ITEMS_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId); -CREATE INDEX EHR_BILLING_INVOICED_ITEMS_CONTAINER_INDEX ON ehr_billing.invoicedItems (Container); - -ALTER TABLE ehr_billing.miscCharges ADD CONSTRAINT FK_EHR_BILLING_MISC_CHARGES_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId); -CREATE INDEX EHR_BILLING_MISC_CHARGES_CONTAINER_INDEX ON ehr_billing.miscCharges (Container); - -SELECT core.fn_dropifexists('invoiceRuns', 'ehr_billing', 'COLUMN', 'invoiceNumber'); -SELECT core.fn_dropifexists('invoicedItems', 'ehr_billing', 'COLUMN', 'invoiceNumber'); - -TRUNCATE TABLE ehr_billing.invoicedItems; -ALTER TABLE ehr_billing.invoicedItems ADD COLUMN invoiceNumber varchar(20) NOT NULL; - -ALTER TABLE ehr_billing.invoice ADD CONSTRAINT UNIQUE_INVOICE_NUM UNIQUE (invoiceNumber); -ALTER TABLE ehr_billing.invoicedItems ADD CONSTRAINT FK_INVOICEDITEMS_INVOICENUM FOREIGN KEY (invoiceNumber) REFERENCES ehr_billing.invoice (invoiceNumber); - -SELECT core.fn_dropifexists('invoicedItems', 'ehr_billing', 'CONSTRAINT', 'EHR_BILLING_INVOICEDITEMS_INVNUM_INDEX'); - -CREATE INDEX EHR_BILLING_INVOICEDITEMS_INVNUM_INDEX ON ehr_billing.invoicedItems (invoiceNumber); - -CREATE TABLE ehr_billing.chargeableItemCategories ( - rowId SERIAL NOT NULL, - name varchar(100) NOT NULL, - dateDisabled timestamp, - - container entityid NOT NULL, - createdBy int, - created timestamp, - modifiedBy int, - modified timestamp, - - CONSTRAINT PK_chargeableItemCategories PRIMARY KEY (rowId) -); - -TRUNCATE ehr_billing.chargeableItems; -ALTER TABLE ehr_billing.chargeableItems DROP COLUMN category; -ALTER TABLE ehr_billing.chargeableItems ADD chargeCategoryId INT NOT NULL; -ALTER TABLE ehr_billing.chargeableItems ADD CONSTRAINT fk_chargeableItems FOREIGN KEY (chargeCategoryId) REFERENCES ehr_billing.chargeableItemCategories (rowId); -CREATE INDEX IX_ehr_billing_chargebleItems ON ehr_billing.chargeableItems (chargeCategoryId); - -ALTER TABLE ehr_billing.chargeRates ALTER COLUMN unitCost TYPE DECIMAL(13,2); -ALTER TABLE ehr_billing.invoice ALTER COLUMN invoiceAmount TYPE DECIMAL(13,2); -ALTER TABLE ehr_billing.invoice ALTER COLUMN paymentAmountReceived TYPE DECIMAL(13,2); -ALTER TABLE ehr_billing.invoicedItems ALTER COLUMN unitCost TYPE DECIMAL(13,2); -ALTER TABLE ehr_billing.invoicedItems ALTER COLUMN totalCost TYPE DECIMAL(13,2); -ALTER TABLE ehr_billing.miscCharges ALTER COLUMN unitCost TYPE DECIMAL(13,2); - -CREATE TABLE ehr_billing.dataAccess ( - rowId serial NOT NULL, - userid int, - investigatorId int, - project int, - allData boolean, - - container ENTITYID NOT NULL, - createdBy USERID, - created timestamp, - modifiedBy USERID, - modified timestamp, - - CONSTRAINT PK_dataAccess PRIMARY KEY (rowId), - CONSTRAINT FK_EHR_BILLING_DATA_ACCESS_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) -); - -CREATE INDEX EHR_BILLING_DATA_ACCESS_CONTAINER_INDEX ON ehr_billing.dataAccess (Container); - -/* ehr_billing-18.30-19.10.sql */ - -CREATE TABLE ehr_billing.fiscalAuthorities ( - rowid serial, - faid varchar(100), - firstName varchar(100), - lastName varchar(100), - position varchar(100), - address varchar(500), - city varchar(100), - state varchar(100), - country varchar(100), - zip varchar(100), - phoneNumber varchar(100), - active boolean default true, - objectid ENTITYID, - - container ENTITYID NOT NULL, - createdBy USERID, - created timestamp, - modifiedBy USERID, - modified timestamp, - - CONSTRAINT pk_fiscalAuthorities PRIMARY KEY (rowid), - CONSTRAINT FK_EHR_BILLING_FISCAL_AUTHORITIES_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) -); - -CREATE INDEX EHR_BILLING_FISCAL_AUTHORITIES_CONTAINER_INDEX ON ehr_billing.fiscalAuthorities (container); - -ALTER TABLE ehr_billing.aliases DROP COLUMN aliasEnabled; -ALTER TABLE ehr_billing.aliases ADD isAcceptingCharges boolean DEFAULT true; - -ALTER TABLE ehr_billing.invoice ADD balanceDue DECIMAL(13,2); -ALTER TABLE ehr_billing.miscCharges ADD investigator varchar(100); - -/* ehr_billing-19.10-19.20.sql */ - --- dropping to avoid duplicate index, EHR_BILLING_ALIASES_INDEX includes index to container -SELECT core.fn_dropifexists ('aliases', 'ehr_billing', 'INDEX', 'ehr_billing_aliases_container_index'); - --- constraint and index in chargeRates table -SELECT core.fn_dropifexists ('chargeRates', 'ehr_billing', 'CONSTRAINT', 'FK_EHR_BILLING_CHARGE_RATES_CHARGEID'); -ALTER TABLE ehr_billing.chargeRates ADD CONSTRAINT FK_EHR_BILLING_CHARGE_RATES_CHARGEID FOREIGN KEY (chargeId) REFERENCES ehr_billing.chargeableItems (rowid); - -SELECT core.fn_dropifexists ('chargeRates', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_CHARGE_RATES_CHARGEID'); -CREATE INDEX IX_EHR_BILLING_CHARGE_RATES_CHARGEID ON ehr_billing.chargeRates (chargeId); - --- constraint and index in dataaccess table -SELECT core.fn_dropifexists ('dataaccess', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_DATA_ACCESS_PROJECT'); -CREATE INDEX IX_EHR_BILLING_DATA_ACCESS_PROJECT ON ehr_billing.dataaccess (project); - -SELECT core.fn_dropifexists ('dataaccess', 'ehr_billing', 'CONSTRAINT', 'FK_EHR_BILLING_DATA_ACCESS_USERID'); -ALTER TABLE ehr_billing.dataaccess ADD CONSTRAINT FK_EHR_BILLING_DATA_ACCESS_USERID FOREIGN KEY (userid) REFERENCES core.Usersdata (UserId); - -SELECT core.fn_dropifexists ('dataaccess', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_DATA_ACCESS_USERID'); -CREATE INDEX IX_EHR_BILLING_DATA_ACCESS_USERID ON ehr_billing.dataaccess (userid); - --- constraint and index in invoice table -SELECT core.fn_dropifexists ('invoice', 'ehr_billing', 'CONSTRAINT', 'FK_EHR_BILLING_INVOICE_INVOICERUNID'); -ALTER TABLE ehr_billing.invoice ADD CONSTRAINT FK_EHR_BILLING_INVOICE_INVOICERUNID FOREIGN KEY (invoicerunid) REFERENCES ehr_billing.invoiceRuns (objectid); - -SELECT core.fn_dropifexists ('invoice', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_INVOICE_INVOICERUNID'); -CREATE INDEX IX_EHR_BILLING_INVOICE_INVOICERUNID ON ehr_billing.invoice (invoicerunid); - -SELECT core.fn_dropifexists ('invoice', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_INVOICE_ACCOUNTNUMBER'); -CREATE INDEX IX_EHR_BILLING_INVOICE_ACCOUNTNUMBER ON ehr_billing.invoice (accountnumber); - -SELECT core.fn_dropifexists ('invoice', 'ehr_billing', 'CONSTRAINT', 'UQ_EHR_BILLING_INVOICE_INVOICENUMBER'); -ALTER TABLE ehr_billing.invoice ADD CONSTRAINT UQ_EHR_BILLING_INVOICE_INVOICENUMBER UNIQUE (invoicenumber); - -SELECT core.fn_dropifexists ('invoice', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_INVOICE_INVOICENUMBER'); -CREATE INDEX IX_EHR_BILLING_INVOICE_INVOICENUMBER ON ehr_billing.invoice (invoicenumber); - --- constraint and index in invoicedItems -SELECT core.fn_dropifexists ('invoiceditems', 'ehr_billing', 'CONSTRAINT', 'FK_EHR_BILLING_INVOICED_ITEMS_CHARGEID'); -ALTER TABLE ehr_billing.invoiceditems ADD CONSTRAINT FK_EHR_BILLING_INVOICED_ITEMS_CHARGEID FOREIGN KEY (chargeid) REFERENCES ehr_billing.chargeableItems (rowid); - -SELECT core.fn_dropifexists ('invoiceditems', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_INVOICED_ITEMS_CHARGEID'); -CREATE INDEX IX_EHR_BILLING_INVOICED_ITEMS_CHARGEID ON ehr_billing.invoiceditems (chargeid); - --- constraint and index in miscCharges -SELECT core.fn_dropifexists ('misccharges', 'ehr_billing', 'CONSTRAINT', 'FK_EHR_BILLING_MISC_CHARGES_CHARGEID'); -ALTER TABLE ehr_billing.misccharges ADD CONSTRAINT FK_EHR_BILLING_MISC_CHARGES_CHARGEID FOREIGN KEY (chargeid) REFERENCES ehr_billing.chargeableItems (rowid); - -SELECT core.fn_dropifexists ('misccharges', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_MISC_CHARGES_CHARGEID'); -CREATE INDEX IX_EHR_BILLING_MISC_CHARGES_CHARGEID ON ehr_billing.misccharges (chargeid); - -SELECT core.fn_dropifexists ('misccharges', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_MISC_CHARGES_PROJECT'); -CREATE INDEX IX_EHR_BILLING_MISC_CHARGES_PROJECT ON ehr_billing.misccharges (project); - --- index on lsid col in extensible tables -SELECT core.fn_dropifexists ('aliases', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_ALIASES_LSID'); -CREATE INDEX IX_EHR_BILLING_ALIASES_LSID ON ehr_billing.aliases (lsid); - -SELECT core.fn_dropifexists ('chargeRates', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_CHARGE_RATES_LSID'); -CREATE INDEX IX_EHR_BILLING_CHARGE_RATES_LSID ON ehr_billing.chargeRates (lsid); - -SELECT core.fn_dropifexists ('chargeableItems', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_CHARGEABLE_ITEMS_LSID'); -CREATE INDEX IX_EHR_BILLING_CHARGEABLE_ITEMS_LSID ON ehr_billing.chargeableItems (lsid); - -SELECT core.fn_dropifexists ('invoiceRuns', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_INVOICE_RUNS_LSID'); -CREATE INDEX IX_EHR_BILLING_INVOICE_RUNS_LSID ON ehr_billing.invoiceRuns (lsid); - -SELECT core.fn_dropifexists ('invoicedItems', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_INVOICED_ITEMS_LSID'); -CREATE INDEX IX_EHR_BILLING_INVOICED_ITEMS_LSID ON ehr_billing.invoicedItems (lsid); - -SELECT core.fn_dropifexists ('miscCharges', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_MISC_CHARGES_LSID'); -CREATE INDEX IX_EHR_BILLING_MISC_CHARGES_LSID ON ehr_billing.miscCharges (lsid); - -SELECT core.fn_dropifexists ('chargeUnits', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_CHARGE_UNITS_LSID'); -CREATE INDEX IX_EHR_BILLING_CHARGE_UNITS_LSID ON ehr_billing.chargeUnits (lsid); - -SELECT core.fn_dropifexists ('chargeRateExemptions', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_CHARGE_RATE_EXEMPTIONS_LSID'); -CREATE INDEX IX_EHR_BILLING_CHARGE_RATE_EXEMPTIONS_LSID ON ehr_billing.chargeRateExemptions (lsid); - -SELECT core.fn_dropifexists ('invoice', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_INVOICE_LSID'); -CREATE INDEX IX_EHR_BILLING_INVOICE_LSID ON ehr_billing.invoice (lsid); - --- drop Index and Constraints -SELECT core.fn_dropifexists ('invoicedItems', 'ehr_billing', 'INDEX', 'EHR_BILLING_INVOICEDITEMS_INVNUM_INDEX'); - -SELECT core.fn_dropifexists ('invoicedItems', 'ehr_billing', 'CONSTRAINT', 'FK_INVOICEDITEMS_INVOICENUM'); - -SELECT core.fn_dropifexists ('invoice', 'ehr_billing', 'CONSTRAINT', 'PK_EHR_BILLING_INVOICE_INVNUM'); - -SELECT core.fn_dropifexists ('invoice', 'ehr_billing', 'CONSTRAINT', 'UNIQUE_INVOICE_NUM'); - -SELECT core.fn_dropifexists ('invoice', 'ehr_billing', 'CONSTRAINT', 'UQ_EHR_BILLING_INVOICE_INVOICENUMBER'); - -SELECT core.fn_dropifexists ('invoice', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_INVOICE_INVOICENUMBER'); - --- Modify invoiceNumber -ALTER TABLE ehr_billing.invoicedItems ALTER COLUMN invoiceNumber TYPE varchar(100); - -ALTER TABLE ehr_billing.invoice ALTER COLUMN invoiceNumber TYPE varchar(100); - --- Add Index and Constraints back -CREATE INDEX EHR_BILLING_INVOICEDITEMS_INVNUM_INDEX ON ehr_billing.invoicedItems (invoiceNumber); - -ALTER TABLE ehr_billing.invoice ADD CONSTRAINT PK_EHR_BILLING_INVOICE_INVNUM PRIMARY KEY (invoiceNumber); - -ALTER TABLE ehr_billing.invoice ADD CONSTRAINT UNIQUE_INVOICE_NUM UNIQUE (invoiceNumber); - -ALTER TABLE ehr_billing.invoice ADD CONSTRAINT UQ_EHR_BILLING_INVOICE_INVOICENUMBER UNIQUE (invoicenumber); - -CREATE INDEX IX_EHR_BILLING_INVOICE_INVOICENUMBER ON ehr_billing.invoice (invoicenumber); - -ALTER TABLE ehr_billing.invoicedItems ADD CONSTRAINT FK_INVOICEDITEMS_INVOICENUM FOREIGN KEY (invoiceNumber) REFERENCES ehr_billing.invoice (invoiceNumber); - -ALTER TABLE ehr_billing.chargeableItemCategories ADD COLUMN LSID LSIDtype; - --- ehr_billing-18.33-18.34.sql -ALTER TABLE ehr_billing.invoice ALTER COLUMN invoiceSentComment TYPE varchar(500); -ALTER TABLE ehr_billing.invoice ALTER COLUMN paymentReceivedComment TYPE varchar(500); - --- ehr_billing-18.34-18.35.sql - modified to add if column doesn't already exists -CREATE FUNCTION ehr_billing.addChargeGroupToMiscCharges() RETURNS VOID AS $$ -DECLARE -BEGIN - IF NOT EXISTS ( - SELECT column_name - FROM information_schema.columns - WHERE table_name='misccharges' and table_schema='ehr_billing' and column_name='chargegroup' - ) - THEN - ALTER TABLE ehr_billing.miscCharges ADD chargeGroup VARCHAR(200); - END IF; -END; -$$ LANGUAGE plpgsql; - -SELECT ehr_billing.addChargeGroupToMiscCharges(); - -DROP FUNCTION ehr_billing.addChargeGroupToMiscCharges(); - ---rename column chargetype to groupName - modified to rename if column exists/not renamed already -CREATE FUNCTION ehr_billing.renameChargeTypeToGroupName() RETURNS VOID AS $$ -DECLARE -BEGIN - IF EXISTS ( - SELECT column_name - FROM information_schema.columns - WHERE table_name='chargeunits' and table_schema='ehr_billing' and column_name='chargetype' - ) - THEN - ALTER TABLE ehr_billing.chargeUnits DROP CONSTRAINT PK_chargeUnits; - ALTER TABLE ehr_billing.chargeUnits RENAME COLUMN chargetype TO groupName; - ALTER TABLE ehr_billing.chargeUnits ADD CONSTRAINT PK_chargeUnits PRIMARY KEY (groupName); - END IF; -END; -$$ LANGUAGE plpgsql; - -SELECT ehr_billing.renameChargeTypeToGroupName(); - -DROP FUNCTION ehr_billing.renameChargeTypeToGroupName(); - - --- ehr_billing-18.35-18.36.sql - modified to add if column doesn't already exists -CREATE FUNCTION ehr_billing.addTotalCostToMiscCharges() RETURNS VOID AS $$ -DECLARE -BEGIN - IF NOT EXISTS ( - SELECT column_name - FROM information_schema.columns - WHERE table_name='misccharges' and table_schema='ehr_billing' and column_name='totalcost' - ) - THEN - ALTER TABLE ehr_billing.miscCharges ADD totalCost double precision; - END IF; -END; -$$ LANGUAGE plpgsql; - -SELECT ehr_billing.addTotalCostToMiscCharges(); - -DROP FUNCTION ehr_billing.addTotalCostToMiscCharges(); - --- Convert from a plain index to a unique constraint -SELECT core.fn_dropifexists ('aliases', 'ehr_billing', 'INDEX', 'EHR_BILLING_ALIASES_INDEX'); - -ALTER TABLE ehr_billing.aliases ADD CONSTRAINT UNIQUE_ALIAS UNIQUE (Container, alias); \ No newline at end of file diff --git a/ehr_billing/resources/schemas/dbscripts/postgresql/ehr_billing-0.000-24.000.sql b/ehr_billing/resources/schemas/dbscripts/postgresql/ehr_billing-0.000-24.000.sql new file mode 100644 index 000000000..a3515cf89 --- /dev/null +++ b/ehr_billing/resources/schemas/dbscripts/postgresql/ehr_billing-0.000-24.000.sql @@ -0,0 +1,561 @@ +/* + * Copyright (c) 2017 LabKey Corporation + * + * Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0 + */ + +CREATE SCHEMA ehr_billing; + +CREATE TABLE ehr_billing.aliases +( + rowid serial, + alias varchar(200), + aliasEnabled Varchar(100), + projectNumber varchar(200), + grantNumber varchar(200), + agencyAwardNumber varchar(200), + investigatorId int, + investigatorName varchar(200), + fiscalAuthority int, + fiscalAuthorityName varchar(200), + category varchar(100), + faRate double precision, + faSchedule varchar(200), + budgetStartDate timestamp, + budgetEndDate timestamp, + projectTitle varchar(1000), + projectDescription varchar(1000), + projectStatus varchar(200), + aliasType VARCHAR(100), + + container ENTITYID NOT NULL, + createdBy USERID, + created timestamp, + modifiedBy USERID, + modified timestamp, + + CONSTRAINT PK_aliases PRIMARY KEY (rowid), + CONSTRAINT FK_EHR_BILLING_ALIASES_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) +); + +CREATE INDEX EHR_BILLING_ALIASES_INDEX ON ehr_billing.aliases (container, alias); +CREATE INDEX EHR_BILLING_ALIASES_CONTAINER_INDEX ON ehr_billing.aliases (Container); + +ALTER TABLE ehr_billing.aliases ADD COLUMN LSID LSIDtype; +ALTER TABLE ehr_billing.aliases DROP COLUMN aliasEnabled; +ALTER TABLE ehr_billing.aliases ADD isAcceptingCharges boolean DEFAULT true; + +-- dropping to avoid duplicate index, EHR_BILLING_ALIASES_INDEX includes index to container +SELECT core.fn_dropifexists ('aliases', 'ehr_billing', 'INDEX', 'ehr_billing_aliases_container_index'); + +-- index on lsid col in extensible tables +SELECT core.fn_dropifexists ('aliases', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_ALIASES_LSID'); +CREATE INDEX IX_EHR_BILLING_ALIASES_LSID ON ehr_billing.aliases (lsid); + +-- Convert from a plain index to a unique constraint +SELECT core.fn_dropifexists ('aliases', 'ehr_billing', 'INDEX', 'EHR_BILLING_ALIASES_INDEX'); + +ALTER TABLE ehr_billing.aliases ADD CONSTRAINT UNIQUE_ALIAS UNIQUE (Container, alias); + +CREATE TABLE ehr_billing.chargeRates +( + rowId SERIAL NOT NULL, + chargeId int, + unitcost double precision, + subsidy double precision, + startDate timestamp, + endDate timestamp, + + container ENTITYID NOT NULL, + createdBy USERID, + created timestamp, + modifiedBy USERID, + modified timestamp, + + CONSTRAINT PK_chargeRates PRIMARY KEY (rowId), + CONSTRAINT FK_EHR_BILLING_CHARGE_RATES_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) +); + +CREATE INDEX EHR_BILLING_CHARGE_RATES_CONTAINER_INDEX ON ehr_billing.chargeRates (Container); + +ALTER TABLE ehr_billing.chargeRates ADD COLUMN LSID LSIDtype; + +ALTER TABLE ehr_billing.chargeRates ALTER COLUMN unitCost TYPE DECIMAL(13,2); +-- constraint and index in chargeRates table +SELECT core.fn_dropifexists ('chargeRates', 'ehr_billing', 'CONSTRAINT', 'FK_EHR_BILLING_CHARGE_RATES_CHARGEID'); +SELECT core.fn_dropifexists ('chargeRates', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_CHARGE_RATES_CHARGEID'); +CREATE INDEX IX_EHR_BILLING_CHARGE_RATES_CHARGEID ON ehr_billing.chargeRates (chargeId); + +SELECT core.fn_dropifexists ('chargeRates', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_CHARGE_RATES_LSID'); +CREATE INDEX IX_EHR_BILLING_CHARGE_RATES_LSID ON ehr_billing.chargeRates (lsid); + +--this table contains records of misc charges that have happened that cannot otherwise be +--automatically inferred from the record +CREATE TABLE ehr_billing.miscCharges +( + objectid entityid NOT NULL, + id varchar(100), + date timestamp, + project integer, + category varchar(100), + chargeId int, + quantity double precision, + unitcost double precision, + comment varchar(4000), + chargeType varchar(200), + billingDate timestamp, + invoiceId entityid, + invoicedItemId entityid, + item varchar(500), + sourceInvoicedItem entityid, + creditedaccount varchar(100), + debitedaccount varchar(200), + qcstate int, + parentid entityid, + issueId int, + formSort integer, + chargeCategory VARCHAR(100), + + taskid entityid, + requestid entityid, + + container ENTITYID NOT NULL, + createdBy USERID, + created timestamp, + modifiedBy USERID, + modified timestamp, + + CONSTRAINT PK_miscCharges PRIMARY KEY (objectid) +); + +ALTER TABLE ehr_billing.miscCharges ADD chargeGroup VARCHAR(200); +ALTER TABLE ehr_billing.miscCharges ADD totalCost double precision; + +ALTER TABLE ehr_billing.miscCharges ADD CONSTRAINT FK_EHR_BILLING_MISC_CHARGES_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId); +CREATE INDEX EHR_BILLING_MISC_CHARGES_CONTAINER_INDEX ON ehr_billing.miscCharges (Container); + +ALTER TABLE ehr_billing.miscCharges ADD COLUMN Lsid LSIDType; + +SELECT core.fn_dropifexists('miscCharges', 'ehr_billing', 'CONSTRAINT', 'FK_EHR_BILLING_MISC_CHARGES_CONTAINER'); + +SELECT core.fn_dropifexists('miscCharges', 'ehr_billing', 'INDEX', 'EHR_BILLING_MISC_CHARGES_CONTAINER_INDEX'); + + +ALTER TABLE ehr_billing.miscCharges ADD CONSTRAINT FK_EHR_BILLING_MISC_CHARGES_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId); +CREATE INDEX EHR_BILLING_MISC_CHARGES_CONTAINER_INDEX ON ehr_billing.miscCharges (Container); + +ALTER TABLE ehr_billing.miscCharges ALTER COLUMN unitCost TYPE DECIMAL(13,2); + +ALTER TABLE ehr_billing.miscCharges ADD investigator varchar(100); + +-- constraint and index in miscCharges +SELECT core.fn_dropifexists ('misccharges', 'ehr_billing', 'CONSTRAINT', 'FK_EHR_BILLING_MISC_CHARGES_CHARGEID'); +SELECT core.fn_dropifexists ('misccharges', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_MISC_CHARGES_CHARGEID'); +CREATE INDEX IX_EHR_BILLING_MISC_CHARGES_CHARGEID ON ehr_billing.misccharges (chargeid); + +SELECT core.fn_dropifexists ('misccharges', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_MISC_CHARGES_PROJECT'); +CREATE INDEX IX_EHR_BILLING_MISC_CHARGES_PROJECT ON ehr_billing.misccharges (project); + +SELECT core.fn_dropifexists ('miscCharges', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_MISC_CHARGES_LSID'); +CREATE INDEX IX_EHR_BILLING_MISC_CHARGES_LSID ON ehr_billing.miscCharges (lsid); + +ALTER TABLE ehr_billing.miscCharges ALTER COLUMN creditedaccount TYPE varchar(200); +ALTER TABLE ehr_billing.miscCharges ALTER COLUMN debitedaccount TYPE varchar(200); + +--this table contains one row each time a billing run is performed, which gleans items to be charged from a variety of sources +--and snapshots them into invoicedItems +CREATE TABLE ehr_billing.invoiceRuns +( + rowId SERIAL NOT NULL, + dataSources varchar(1000), + comment varchar(4000), + runDate timestamp, + billingPeriodStart timestamp, + billingPeriodEnd timestamp, + objectid entityid NOT NULL, + invoiceNumber varchar(200), + status varchar(200), + + container ENTITYID NOT NULL, + createdBy USERID, + created timestamp, + modifiedBy USERID, + modified timestamp, + + CONSTRAINT pk_invoiceRuns PRIMARY KEY (objectid) +); + +ALTER TABLE ehr_billing.invoiceRuns ADD CONSTRAINT FK_EHR_BILLING_INVOICE_RUNS_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId); +CREATE INDEX EHR_BILLING_INVOICE_RUNS_CONTAINER_INDEX ON ehr_billing.invoiceRuns (Container); + +ALTER TABLE ehr_billing.invoiceRuns DROP invoiceNumber; + +ALTER TABLE ehr_billing.invoiceruns ADD COLUMN Lsid LSIDType; +SELECT core.fn_dropifexists('invoiceRuns', 'ehr_billing', 'CONSTRAINT', 'FK_EHR_BILLING_INVOICE_RUNS_CONTAINER'); +SELECT core.fn_dropifexists('invoiceRuns', 'ehr_billing', 'INDEX', 'EHR_BILLING_INVOICE_RUNS_CONTAINER_INDEX'); +ALTER TABLE ehr_billing.invoiceRuns ADD CONSTRAINT FK_EHR_BILLING_INVOICE_RUNS_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId); +CREATE INDEX EHR_BILLING_INVOICE_RUNS_CONTAINER_INDEX ON ehr_billing.invoiceRuns (Container); + +SELECT core.fn_dropifexists ('invoiceRuns', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_INVOICE_RUNS_LSID'); +CREATE INDEX IX_EHR_BILLING_INVOICE_RUNS_LSID ON ehr_billing.invoiceRuns (lsid); + +--this table contains a snapshot of items actually invoiced, which will draw from many places in the animal record +CREATE TABLE ehr_billing.invoicedItems +( + rowId SERIAL NOT NULL, + id varchar(100), + date timestamp, + debitedaccount varchar(100), + creditedaccount varchar(100), + category varchar(100), + item varchar(500), + quantity double precision, + unitcost double precision, + totalcost double precision, + chargeId int, + rateId int, + exemptionId int, + comment varchar(4000), + sourceRecord varchar(200), + billingId int, + credit boolean, + lastName varchar(100), + firstName varchar(100), + project int, + invoiceDate timestamp, + invoiceNumber int, + transactionType varchar(10), + department varchar(100), + mailcode varchar(20), + contactPhone varchar(30), + faid int, + cageId int, + objectId entityid NOT NULL, + itemCode varchar(100), + creditAccountId int, + invoiceId entityid, + servicecenter varchar(200), + transactionNumber varchar(100), + investigatorId int, + chargeCategory varchar(100), + sourcerecord2 varchar(100), + issueId int, + + container ENTITYID NOT NULL, + createdBy USERID, + created timestamp, + modifiedBy USERID, + modified timestamp, + + CONSTRAINT PK_invoicedItems PRIMARY KEY (objectid) +); + +ALTER TABLE ehr_billing.invoicedItems ADD CONSTRAINT FK_EHR_BILLING_INVOICED_ITEMS_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId); +CREATE INDEX EHR_BILLING_INVOICED_ITEMS_CONTAINER_INDEX ON ehr_billing.invoicedItems (Container); + +ALTER TABLE ehr_billing.invoicedItems ALTER COLUMN invoiceNumber TYPE varchar(20); + +ALTER TABLE ehr_billing.invoicedItems ALTER COLUMN invoiceNumber SET NOT NULL; + +CREATE INDEX EHR_BILLING_INVOICEDITEMS_INVNUM_INDEX ON ehr_billing.invoicedItems (invoiceNumber); + +ALTER TABLE ehr_billing.invoiceditems ADD COLUMN Lsid LSIDType; +SELECT core.fn_dropifexists('invoicedItems', 'ehr_billing', 'CONSTRAINT', 'FK_EHR_BILLING_INVOICED_ITEMS_CONTAINER'); +SELECT core.fn_dropifexists('invoicedItems', 'ehr_billing', 'INDEX', 'EHR_BILLING_INVOICED_ITEMS_CONTAINER_INDEX'); +ALTER TABLE ehr_billing.invoicedItems ADD CONSTRAINT FK_EHR_BILLING_INVOICED_ITEMS_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId); +CREATE INDEX EHR_BILLING_INVOICED_ITEMS_CONTAINER_INDEX ON ehr_billing.invoicedItems (Container); + +SELECT core.fn_dropifexists('invoiceRuns', 'ehr_billing', 'COLUMN', 'invoiceNumber'); +SELECT core.fn_dropifexists('invoicedItems', 'ehr_billing', 'COLUMN', 'invoiceNumber'); + +TRUNCATE TABLE ehr_billing.invoicedItems; +ALTER TABLE ehr_billing.invoicedItems ADD COLUMN invoiceNumber varchar(20) NOT NULL; + +SELECT core.fn_dropifexists('invoicedItems', 'ehr_billing', 'CONSTRAINT', 'EHR_BILLING_INVOICEDITEMS_INVNUM_INDEX'); + +CREATE INDEX EHR_BILLING_INVOICEDITEMS_INVNUM_INDEX ON ehr_billing.invoicedItems (invoiceNumber); + +ALTER TABLE ehr_billing.invoicedItems ALTER COLUMN unitCost TYPE DECIMAL(13,2); +ALTER TABLE ehr_billing.invoicedItems ALTER COLUMN totalCost TYPE DECIMAL(13,2); + +-- constraint and index in invoicedItems +SELECT core.fn_dropifexists ('invoiceditems', 'ehr_billing', 'CONSTRAINT', 'FK_EHR_BILLING_INVOICED_ITEMS_CHARGEID'); +SELECT core.fn_dropifexists ('invoiceditems', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_INVOICED_ITEMS_CHARGEID'); +CREATE INDEX IX_EHR_BILLING_INVOICED_ITEMS_CHARGEID ON ehr_billing.invoiceditems (chargeid); + +SELECT core.fn_dropifexists ('invoicedItems', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_INVOICED_ITEMS_LSID'); +CREATE INDEX IX_EHR_BILLING_INVOICED_ITEMS_LSID ON ehr_billing.invoicedItems (lsid); + +-- drop Index and Constraints +SELECT core.fn_dropifexists ('invoicedItems', 'ehr_billing', 'INDEX', 'EHR_BILLING_INVOICEDITEMS_INVNUM_INDEX'); + +-- Modify invoiceNumber +ALTER TABLE ehr_billing.invoicedItems ALTER COLUMN invoiceNumber TYPE varchar(100); + +-- Add Index and Constraints back +CREATE INDEX EHR_BILLING_INVOICEDITEMS_INVNUM_INDEX ON ehr_billing.invoicedItems (invoiceNumber); + +ALTER TABLE ehr_billing.invoicedItems ALTER COLUMN creditedaccount TYPE varchar(200); +ALTER TABLE ehr_billing.invoicedItems ALTER COLUMN debitedaccount TYPE varchar(200); + +CREATE TABLE ehr_billing.chargeableItems +( + rowId SERIAL NOT NULL, + name varchar(200), + shortName varchar(100), + category varchar(200), + comment varchar(4000), + active boolean default true, + startDate timestamp, + endDate timestamp, + itemCode varchar(100), + departmentCode varchar(100), + allowsCustomUnitCost boolean DEFAULT false, + canRaiseFA boolean DEFAULT false, + allowBlankId boolean DEFAULT false, + LSID LSIDtype, + container ENTITYID NOT NULL, + createdBy USERID, + created timestamp, + modifiedBy USERID, + modified timestamp, + + CONSTRAINT PK_chargeableItems PRIMARY KEY (rowId), + CONSTRAINT FK_EHR_BILLING_CHARGEABLEITEMS_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) +); + +CREATE INDEX EHR_BILLING_CHARGEABLEITEMS_CONTAINER_INDEX ON ehr_billing.chargeableItems (Container); + +TRUNCATE ehr_billing.chargeableItems; +ALTER TABLE ehr_billing.chargeableItems DROP COLUMN category; +ALTER TABLE ehr_billing.chargeableItems ADD chargeCategoryId INT NOT NULL; +CREATE INDEX IX_ehr_billing_chargebleItems ON ehr_billing.chargeableItems (chargeCategoryId); + +ALTER TABLE ehr_billing.chargeRates ADD CONSTRAINT FK_EHR_BILLING_CHARGE_RATES_CHARGEID FOREIGN KEY (chargeId) REFERENCES ehr_billing.chargeableItems (rowid); + +ALTER TABLE ehr_billing.invoiceditems ADD CONSTRAINT FK_EHR_BILLING_INVOICED_ITEMS_CHARGEID FOREIGN KEY (chargeid) REFERENCES ehr_billing.chargeableItems (rowid); + +ALTER TABLE ehr_billing.misccharges ADD CONSTRAINT FK_EHR_BILLING_MISC_CHARGES_CHARGEID FOREIGN KEY (chargeid) REFERENCES ehr_billing.chargeableItems (rowid); + +SELECT core.fn_dropifexists ('chargeableItems', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_CHARGEABLE_ITEMS_LSID'); +CREATE INDEX IX_EHR_BILLING_CHARGEABLE_ITEMS_LSID ON ehr_billing.chargeableItems (lsid); + +CREATE TABLE ehr_billing.chargeRateExemptions +( + rowId SERIAL NOT NULL, + project int, + chargeId int, + unitcost double precision, + startDate timestamp, + endDate timestamp, + remark TEXT, + LSID LSIDtype, + container ENTITYID NOT NULL, + createdBy USERID, + created timestamp, + modifiedBy USERID, + modified timestamp, + + CONSTRAINT PK_chargeRateExemptions PRIMARY KEY (rowId), + CONSTRAINT FK_EHR_BILLING_CHARGERATEEXEMPTIONS_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) +); + +CREATE INDEX EHR_BILLING_CHARGERATEEXEMPTIONS_CONTAINER_INDEX ON ehr_billing.chargeRateExemptions (Container); +SELECT core.fn_dropifexists ('chargeRateExemptions', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_CHARGE_RATE_EXEMPTIONS_LSID'); +CREATE INDEX IX_EHR_BILLING_CHARGE_RATE_EXEMPTIONS_LSID ON ehr_billing.chargeRateExemptions (lsid); + +CREATE TABLE ehr_billing.chargeUnits +( + groupName varchar(100) NOT NULL, + shownInBlood boolean default false, + shownInLabwork boolean default false, + shownInMedications boolean default false, + shownInProcedures boolean default false, + servicecenter varchar(100), + active boolean default true, + LSID LSIDtype, + container entityid, + createdBy int, + created timestamp, + modifiedBy int, + modified timestamp, + + CONSTRAINT PK_chargeUnits PRIMARY KEY (groupName), + CONSTRAINT FK_EHR_BILLING_CHARGEUNITS_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) +); + +CREATE INDEX EHR_BILLING_CHARGEUNITS_CONTAINER_INDEX ON ehr_billing.chargeUnits (Container); +SELECT core.fn_dropifexists ('chargeUnits', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_CHARGE_UNITS_LSID'); +CREATE INDEX IX_EHR_BILLING_CHARGE_UNITS_LSID ON ehr_billing.chargeUnits (lsid); + +CREATE TABLE ehr_billing.invoice +( + rowId SERIAL NOT NULL, + invoiceNumber varchar(20) NOT NULL, + invoiceRunId ENTITYID, + accountNumber varchar(10), + invoiceSentOn timestamp, + invoiceAmount double precision, + invoiceSentComment varchar(10), + paymentAmountReceived double precision, + fullPaymentReceived boolean, + paymentReceivedOn timestamp, + paymentReceivedComment varchar(10), + LSID LSIDtype, + container ENTITYID NOT NULL, + createdBy USERID, + created timestamp, + modifiedBy USERID, + modified timestamp, + + CONSTRAINT PK_EHR_BILLING_INVOICE_INVNUM PRIMARY KEY (invoiceNumber), + CONSTRAINT FK_EHR_BILLING_INVOICE_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) +); + +CREATE INDEX EHR_BILLING_INVOICE_CONTAINER_INDEX ON ehr_billing.invoice (Container); + +ALTER TABLE ehr_billing.invoice ADD CONSTRAINT UNIQUE_INVOICE_NUM UNIQUE (invoiceNumber); +ALTER TABLE ehr_billing.invoice ALTER COLUMN invoiceAmount TYPE DECIMAL(13,2); +ALTER TABLE ehr_billing.invoice ALTER COLUMN paymentAmountReceived TYPE DECIMAL(13,2); +ALTER TABLE ehr_billing.invoice ADD balanceDue DECIMAL(13,2); +-- constraint and index in invoice table +SELECT core.fn_dropifexists ('invoice', 'ehr_billing', 'CONSTRAINT', 'FK_EHR_BILLING_INVOICE_INVOICERUNID'); +ALTER TABLE ehr_billing.invoice ADD CONSTRAINT FK_EHR_BILLING_INVOICE_INVOICERUNID FOREIGN KEY (invoicerunid) REFERENCES ehr_billing.invoiceRuns (objectid); + +SELECT core.fn_dropifexists ('invoice', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_INVOICE_INVOICERUNID'); +CREATE INDEX IX_EHR_BILLING_INVOICE_INVOICERUNID ON ehr_billing.invoice (invoicerunid); + +SELECT core.fn_dropifexists ('invoice', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_INVOICE_ACCOUNTNUMBER'); +CREATE INDEX IX_EHR_BILLING_INVOICE_ACCOUNTNUMBER ON ehr_billing.invoice (accountnumber); + +SELECT core.fn_dropifexists ('invoice', 'ehr_billing', 'CONSTRAINT', 'UQ_EHR_BILLING_INVOICE_INVOICENUMBER'); +ALTER TABLE ehr_billing.invoice ADD CONSTRAINT UQ_EHR_BILLING_INVOICE_INVOICENUMBER UNIQUE (invoicenumber); + +SELECT core.fn_dropifexists ('invoice', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_INVOICE_INVOICENUMBER'); +CREATE INDEX IX_EHR_BILLING_INVOICE_INVOICENUMBER ON ehr_billing.invoice (invoicenumber); + +SELECT core.fn_dropifexists ('invoice', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_INVOICE_LSID'); +CREATE INDEX IX_EHR_BILLING_INVOICE_LSID ON ehr_billing.invoice (lsid); + +SELECT core.fn_dropifexists ('invoice', 'ehr_billing', 'CONSTRAINT', 'PK_EHR_BILLING_INVOICE_INVNUM'); + +SELECT core.fn_dropifexists ('invoice', 'ehr_billing', 'CONSTRAINT', 'UNIQUE_INVOICE_NUM'); + +SELECT core.fn_dropifexists ('invoice', 'ehr_billing', 'CONSTRAINT', 'UQ_EHR_BILLING_INVOICE_INVOICENUMBER'); + +SELECT core.fn_dropifexists ('invoice', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_INVOICE_INVOICENUMBER'); + +ALTER TABLE ehr_billing.invoice ALTER COLUMN invoiceNumber TYPE varchar(100); + +ALTER TABLE ehr_billing.invoice ADD CONSTRAINT PK_EHR_BILLING_INVOICE_INVNUM PRIMARY KEY (invoiceNumber); + +ALTER TABLE ehr_billing.invoice ADD CONSTRAINT UNIQUE_INVOICE_NUM UNIQUE (invoiceNumber); + +ALTER TABLE ehr_billing.invoice ADD CONSTRAINT UQ_EHR_BILLING_INVOICE_INVOICENUMBER UNIQUE (invoicenumber); + +CREATE INDEX IX_EHR_BILLING_INVOICE_INVOICENUMBER ON ehr_billing.invoice (invoicenumber); + +ALTER TABLE ehr_billing.invoicedItems ADD CONSTRAINT FK_INVOICEDITEMS_INVOICENUM FOREIGN KEY (invoiceNumber) REFERENCES ehr_billing.invoice (invoiceNumber); + +-- ehr_billing-18.33-18.34.sql +ALTER TABLE ehr_billing.invoice ALTER COLUMN invoiceSentComment TYPE varchar(500); +ALTER TABLE ehr_billing.invoice ALTER COLUMN paymentReceivedComment TYPE varchar(500); + +ALTER TABLE ehr_billing.invoice ALTER COLUMN accountnumber TYPE varchar(200); + +CREATE TABLE ehr_billing.chargeableItemCategories +( + rowId SERIAL NOT NULL, + name varchar(100) NOT NULL, + dateDisabled timestamp, + + container entityid NOT NULL, + createdBy int, + created timestamp, + modifiedBy int, + modified timestamp, + + CONSTRAINT PK_chargeableItemCategories PRIMARY KEY (rowId) +); + +ALTER TABLE ehr_billing.chargeableItems ADD CONSTRAINT fk_chargeableItems FOREIGN KEY (chargeCategoryId) REFERENCES ehr_billing.chargeableItemCategories (rowId); +ALTER TABLE ehr_billing.chargeableItemCategories ADD COLUMN LSID LSIDtype; + +CREATE TABLE ehr_billing.dataAccess +( + rowId serial NOT NULL, + userid int, + investigatorId int, + project int, + allData boolean, + + container ENTITYID NOT NULL, + createdBy USERID, + created timestamp, + modifiedBy USERID, + modified timestamp, + + CONSTRAINT PK_dataAccess PRIMARY KEY (rowId), + CONSTRAINT FK_EHR_BILLING_DATA_ACCESS_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) +); + +CREATE INDEX EHR_BILLING_DATA_ACCESS_CONTAINER_INDEX ON ehr_billing.dataAccess (Container); + +-- constraint and index in dataaccess table +SELECT core.fn_dropifexists ('dataaccess', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_DATA_ACCESS_PROJECT'); +CREATE INDEX IX_EHR_BILLING_DATA_ACCESS_PROJECT ON ehr_billing.dataaccess (project); + +SELECT core.fn_dropifexists ('dataaccess', 'ehr_billing', 'CONSTRAINT', 'FK_EHR_BILLING_DATA_ACCESS_USERID'); +ALTER TABLE ehr_billing.dataaccess ADD CONSTRAINT FK_EHR_BILLING_DATA_ACCESS_USERID FOREIGN KEY (userid) REFERENCES core.Usersdata (UserId); + +SELECT core.fn_dropifexists ('dataaccess', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_DATA_ACCESS_USERID'); +CREATE INDEX IX_EHR_BILLING_DATA_ACCESS_USERID ON ehr_billing.dataaccess (userid); + +CREATE TABLE ehr_billing.fiscalAuthorities +( + rowid serial, + faid varchar(100), + firstName varchar(100), + lastName varchar(100), + position varchar(100), + address varchar(500), + city varchar(100), + state varchar(100), + country varchar(100), + zip varchar(100), + phoneNumber varchar(100), + active boolean default true, + objectid ENTITYID, + + container ENTITYID NOT NULL, + createdBy USERID, + created timestamp, + modifiedBy USERID, + modified timestamp, + + CONSTRAINT pk_fiscalAuthorities PRIMARY KEY (rowid), + CONSTRAINT FK_EHR_BILLING_FISCAL_AUTHORITIES_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) +); + +CREATE INDEX EHR_BILLING_FISCAL_AUTHORITIES_CONTAINER_INDEX ON ehr_billing.fiscalAuthorities (container); + +-- this table should consists of the rows with schema name, query name where the resulting rows of that query are associated with a chargeId, chargeId, and description of the query +CREATE TABLE ehr_billing.procedureQueryChargeIdAssoc +( + rowId SERIAL NOT NULL, + schemaName varchar(200) NOT NULL, + queryName varchar(500) NOT NULL, + description varchar(2000) NOT NULL, + chargeId int NOT NULL, + + container ENTITYID NOT NULL, + createdBy USERID, + created timestamp, + modifiedBy USERID, + modified timestamp, + + CONSTRAINT PK_procedureQueryChargeIdAssociations PRIMARY KEY (rowId), + CONSTRAINT FK_EHR_BILLING_PROCEDURE_QUERY_CHARGEID_ASSOC_CONTAINER FOREIGN KEY (container) REFERENCES core.Containers (EntityId) +); + +CREATE INDEX IDX_EHR_BILLING_PROCEDURE_QUERY_CHARGEID_ASSOC_CONTAINER ON ehr_billing.procedureQueryChargeIdAssoc (container); diff --git a/ehr_billing/resources/schemas/dbscripts/postgresql/ehr_billing-23.000-23.001.sql b/ehr_billing/resources/schemas/dbscripts/postgresql/ehr_billing-23.000-23.001.sql deleted file mode 100644 index 8d0e219ce..000000000 --- a/ehr_billing/resources/schemas/dbscripts/postgresql/ehr_billing-23.000-23.001.sql +++ /dev/null @@ -1,5 +0,0 @@ -ALTER TABLE ehr_billing.invoicedItems ALTER COLUMN creditedaccount TYPE varchar(200); -ALTER TABLE ehr_billing.invoicedItems ALTER COLUMN debitedaccount TYPE varchar(200); -ALTER TABLE ehr_billing.invoice ALTER COLUMN accountnumber TYPE varchar(200); -ALTER TABLE ehr_billing.miscCharges ALTER COLUMN creditedaccount TYPE varchar(200); -ALTER TABLE ehr_billing.miscCharges ALTER COLUMN debitedaccount TYPE varchar(200); diff --git a/ehr_billing/resources/schemas/dbscripts/postgresql/ehr_billing-23.001-23.002.sql b/ehr_billing/resources/schemas/dbscripts/postgresql/ehr_billing-23.001-23.002.sql deleted file mode 100644 index 0c4d3b3e3..000000000 --- a/ehr_billing/resources/schemas/dbscripts/postgresql/ehr_billing-23.001-23.002.sql +++ /dev/null @@ -1,20 +0,0 @@ --- this table should consists of the rows with schema name, query name where the resulting rows of that query are associated with a chargeId, chargeId, and description of the query -CREATE TABLE ehr_billing.procedureQueryChargeIdAssoc ( - - rowId SERIAL NOT NULL, - schemaName varchar(200) NOT NULL, - queryName varchar(500) NOT NULL, - description varchar(2000) NOT NULL, - chargeId int NOT NULL, - - container ENTITYID NOT NULL, - createdBy USERID, - created timestamp, - modifiedBy USERID, - modified timestamp, - - CONSTRAINT PK_procedureQueryChargeIdAssociations PRIMARY KEY (rowId), - CONSTRAINT FK_EHR_BILLING_PROCEDURE_QUERY_CHARGEID_ASSOC_CONTAINER FOREIGN KEY (container) REFERENCES core.Containers (EntityId) -); - -CREATE INDEX IDX_EHR_BILLING_PROCEDURE_QUERY_CHARGEID_ASSOC_CONTAINER ON ehr_billing.procedureQueryChargeIdAssoc (container); \ No newline at end of file diff --git a/ehr_billing/resources/schemas/dbscripts/sqlserver/ehr_billing-0.000-21.000.sql b/ehr_billing/resources/schemas/dbscripts/sqlserver/ehr_billing-0.000-24.000.sql similarity index 54% rename from ehr_billing/resources/schemas/dbscripts/sqlserver/ehr_billing-0.000-21.000.sql rename to ehr_billing/resources/schemas/dbscripts/sqlserver/ehr_billing-0.000-24.000.sql index c1b4cd304..070954b8c 100644 --- a/ehr_billing/resources/schemas/dbscripts/sqlserver/ehr_billing-0.000-21.000.sql +++ b/ehr_billing/resources/schemas/dbscripts/sqlserver/ehr_billing-0.000-24.000.sql @@ -4,41 +4,39 @@ * Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0 */ -/* ehr_billing-17.20-17.30.sql */ - CREATE SCHEMA ehr_billing; GO -CREATE TABLE ehr_billing.aliases ( - - rowid INT IDENTITY(1,1) NOT NULL, - alias varchar(200), - aliasEnabled Varchar(100), - projectNumber varchar(200), - grantNumber varchar(200), - agencyAwardNumber varchar(200), - investigatorId int, - investigatorName varchar(200), - fiscalAuthority int, - fiscalAuthorityName varchar(200), - category varchar(100), - faRate double precision, - faSchedule varchar(200), - budgetStartDate DATETIME, - budgetEndDate DATETIME, - projectTitle varchar(1000), - projectDescription varchar(1000), - projectStatus varchar(200), - aliasType VARCHAR(100), - - container ENTITYID NOT NULL, - createdBy USERID, - created DATETIME, - modifiedBy USERID, - modified DATETIME, - - CONSTRAINT PK_aliases PRIMARY KEY (rowid), - CONSTRAINT FK_EHR_BILLING_ALIASES_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) +CREATE TABLE ehr_billing.aliases +( + rowid INT IDENTITY(1,1) NOT NULL, + alias varchar(200), + aliasEnabled Varchar(100), + projectNumber varchar(200), + grantNumber varchar(200), + agencyAwardNumber varchar(200), + investigatorId int, + investigatorName varchar(200), + fiscalAuthority int, + fiscalAuthorityName varchar(200), + category varchar(100), + faRate double precision, + faSchedule varchar(200), + budgetStartDate DATETIME, + budgetEndDate DATETIME, + projectTitle varchar(1000), + projectDescription varchar(1000), + projectStatus varchar(200), + aliasType VARCHAR(100), + + container ENTITYID NOT NULL, + createdBy USERID, + created DATETIME, + modifiedBy USERID, + modified DATETIME, + + CONSTRAINT PK_aliases PRIMARY KEY (rowid), + CONSTRAINT FK_EHR_BILLING_ALIASES_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) ); CREATE INDEX EHR_BILLING_ALIASES_INDEX ON ehr_billing.aliases (container, alias); @@ -47,469 +45,355 @@ GO CREATE INDEX EHR_BILLING_ALIASES_CONTAINER_INDEX ON ehr_billing.aliases (Container); GO -CREATE TABLE ehr_billing.chargeRates ( - - rowId INT IDENTITY(1,1) NOT NULL, - chargeId int, - unitcost double precision, - subsidy double precision, - startDate DATETIME, - endDate DATETIME, - - container ENTITYID NOT NULL, - createdBy USERID, - created DATETIME, - modifiedBy USERID, - modified DATETIME, - - CONSTRAINT PK_chargeRates PRIMARY KEY (rowId), - CONSTRAINT FK_EHR_BILLING_CHARGE_RATES_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) -); +ALTER TABLE ehr_billing.aliases ADD LSID LSIDtype; +ALTER TABLE ehr_billing.aliases DROP COLUMN aliasEnabled; +ALTER TABLE ehr_billing.aliases ADD isAcceptingCharges bit DEFAULT 1; -CREATE INDEX EHR_BILLING_CHARGE_RATES_CONTAINER_INDEX ON ehr_billing.chargeRates (Container); +-- dropping to avoid duplicate index, EHR_BILLING_ALIASES_INDEX includes index to container +EXEC core.fn_dropifexists 'aliases', 'ehr_billing', 'INDEX', 'ehr_billing_aliases_container_index'; GO -ALTER TABLE ehr_billing.aliases ADD LSID LSIDtype; -ALTER TABLE ehr_billing.chargeRates ADD LSID LSIDtype; +-- index on lsid col in extensible tables +EXEC core.fn_dropifexists 'aliases', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_ALIASES_LSID'; +GO +CREATE INDEX IX_EHR_BILLING_ALIASES_LSID ON ehr_billing.aliases (lsid); +GO -/* ehr_billing-17.30-18.10.sql */ +-- Convert from a plain index to a unique constraint +EXEC core.fn_dropifexists 'aliases', 'ehr_billing', 'INDEX', 'EHR_BILLING_ALIASES_INDEX'; +GO ---this table contains records of misc charges that have happened that cannot otherwise be ---automatically inferred from the record -CREATE TABLE ehr_billing.miscCharges ( - objectid entityid NOT NULL, - id nvarchar(100), - date DATETIME, - project integer, - category nvarchar(100), - chargeId int, - quantity double precision, - unitcost double precision, - comment nvarchar(4000), - chargeType nvarchar(200), - billingDate DATETIME, - invoiceId entityid, - invoicedItemId entityid, - item nvarchar(500), - sourceInvoicedItem entityid, - creditedaccount nvarchar(100), - debitedaccount nvarchar(200), - qcstate int, - parentid entityid, - issueId int, - formSort integer, - chargeCategory nvarchar(100), - - taskid entityid, - requestid entityid, - - container ENTITYID NOT NULL, - createdBy USERID, - created DATETIME, - modifiedBy USERID, - modified DATETIME, - - CONSTRAINT PK_miscCharges PRIMARY KEY (objectid) -); +ALTER TABLE ehr_billing.aliases ADD CONSTRAINT UNIQUE_ALIAS UNIQUE (alias, Container); ---this table contains one row each time a billing run is performed, which gleans items to be charged from a variety of sources ---and snapshots them into invoicedItems -CREATE TABLE ehr_billing.invoiceRuns ( - rowId INT IDENTITY(1,1) NOT NULL, - dataSources nvarchar(1000), - comment nvarchar(4000), - runDate DATETIME, - billingPeriodStart DATETIME, - billingPeriodEnd DATETIME, - objectid entityid NOT NULL, - invoiceNumber nvarchar(200), - status nvarchar(200), - - container ENTITYID NOT NULL, - createdBy USERID, - created DATETIME, - modifiedBy USERID, - modified DATETIME, - - CONSTRAINT PK_invoiceRuns PRIMARY KEY (objectid) -); +CREATE TABLE ehr_billing.chargeRates +( + rowId INT IDENTITY(1,1) NOT NULL, + chargeId int, + unitcost double precision, + subsidy double precision, + startDate DATETIME, + endDate DATETIME, ---this table contains a snapshot of items actually invoiced, which will draw from many places in the animal record -CREATE TABLE ehr_billing.invoicedItems ( - rowId INT IDENTITY(1,1) NOT NULL, - id nvarchar(100), - date DATETIME, - debitedaccount nvarchar(100), - creditedaccount nvarchar(100), - category nvarchar(100), - item nvarchar(500), - quantity double precision, - unitcost double precision, - totalcost double precision, - chargeId int, - rateId int, - exemptionId int, - comment nvarchar(4000), - sourceRecord nvarchar(200), - billingId int, - credit bit, - lastName nvarchar(100), - firstName nvarchar(100), - project int, - invoiceDate DATETIME, - invoiceNumber int, - transactionType nvarchar(10), - department nvarchar(100), - mailcode nvarchar(20), - contactPhone nvarchar(30), - faid int, - cageId int, - objectId entityid NOT NULL, - itemCode nvarchar(100), - creditAccountId int, - invoiceId entityid, - servicecenter nvarchar(200), - transactionNumber nvarchar(100), - investigatorId int, - chargeCategory nvarchar(100), - sourcerecord2 nvarchar(100), - issueId int, - - container ENTITYID NOT NULL, - createdBy USERID, - created DATETIME, - modifiedBy USERID, - modified DATETIME, - - CONSTRAINT PK_invoicedItems PRIMARY KEY (objectid) -); + container ENTITYID NOT NULL, + createdBy USERID, + created DATETIME, + modifiedBy USERID, + modified DATETIME, -CREATE TABLE ehr_billing.chargeableItems ( - - rowId INT IDENTITY(1,1) NOT NULL, - name nvarchar(200), - shortName nvarchar(100), - category nvarchar(200), - comment nvarchar(4000), - active bit default 1, - startDate datetime, - endDate datetime, - itemCode nvarchar(100), - departmentCode nvarchar(100), - allowsCustomUnitCost bit DEFAULT 0, - canRaiseFA bit DEFAULT 0, - allowBlankId bit DEFAULT 0, - - container ENTITYID NOT NULL, - createdBy USERID, - created datetime, - modifiedBy USERID, - modified datetime, - - CONSTRAINT PK_chargeableItems PRIMARY KEY (rowId) + CONSTRAINT PK_chargeRates PRIMARY KEY (rowId), + CONSTRAINT FK_EHR_BILLING_CHARGE_RATES_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) ); -ALTER TABLE ehr_billing.chargeableItems ADD LSID LSIDtype; - -CREATE TABLE ehr_billing.chargeRateExemptions ( - - rowId INT IDENTITY(1,1) NOT NULL, - project int, - chargeId int, - unitcost double precision, - startDate datetime, - endDate datetime, - remark nvarchar(4000), - - container ENTITYID NOT NULL, - createdBy USERID, - created datetime, - modifiedBy USERID, - modified datetime, - - CONSTRAINT PK_chargeRateExemptions PRIMARY KEY (rowId) -); +CREATE INDEX EHR_BILLING_CHARGE_RATES_CONTAINER_INDEX ON ehr_billing.chargeRates (Container); +GO -CREATE TABLE ehr_billing.chargeUnits ( +ALTER TABLE ehr_billing.chargeRates ADD LSID LSIDtype; - chargetype nvarchar(100) NOT NULL, - shownInBlood bit default 0, - shownInLabwork bit default 0, - shownInMedications bit default 0, - shownInProcedures bit default 0, - servicecenter nvarchar(100), +ALTER TABLE ehr_billing.chargeRates ALTER COLUMN unitCost DECIMAL(13,2); +GO +-- constraint and index in chargeRates table +EXEC core.fn_dropifexists 'chargeRates', 'ehr_billing', 'CONSTRAINT', 'FK_EHR_BILLING_CHARGE_RATES_CHARGEID'; +GO +EXEC core.fn_dropifexists 'chargeRates', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_CHARGE_RATES_CHARGEID'; +GO +CREATE INDEX IX_EHR_BILLING_CHARGE_RATES_CHARGEID ON ehr_billing.chargeRates (chargeId); +GO - active bit default 1, - container entityid, - createdBy int, - created datetime, - modifiedBy int, - modified datetime, +EXEC core.fn_dropifexists 'chargeRates', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_CHARGE_RATES_LSID'; +GO +CREATE INDEX IX_EHR_BILLING_CHARGE_RATES_LSID ON ehr_billing.chargeRates (lsid); +GO - CONSTRAINT PK_chargeUnits PRIMARY KEY (chargetype) +--this table contains records of misc charges that have happened that cannot otherwise be +--automatically inferred from the record +CREATE TABLE ehr_billing.miscCharges +( + objectid entityid NOT NULL, + id nvarchar(100), + date DATETIME, + project integer, + category nvarchar(100), + chargeId int, + quantity double precision, + unitcost double precision, + comment nvarchar(4000), + chargeType nvarchar(200), + billingDate DATETIME, + invoiceId entityid, + invoicedItemId entityid, + item nvarchar(500), + sourceInvoicedItem entityid, + creditedaccount nvarchar(100), + debitedaccount nvarchar(200), + qcstate int, + parentid entityid, + issueId int, + formSort integer, + chargeCategory nvarchar(100), + + taskid entityid, + requestid entityid, + + container ENTITYID NOT NULL, + createdBy USERID, + created DATETIME, + modifiedBy USERID, + modified DATETIME, + + CONSTRAINT PK_miscCharges PRIMARY KEY (objectid) ); -ALTER TABLE ehr_billing.chargeRateExemptions ALTER COLUMN remark nvarchar(max); - -ALTER TABLE ehr_billing.chargeRateExemptions ADD CONSTRAINT FK_EHR_BILLING_CHARGE_RATE_EXEMPTIONS_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId); -CREATE INDEX EHR_BILLING_CHARGE_RATE_EXEMPTIONS_CONTAINER_INDEX ON ehr_billing.chargeRateExemptions (Container); +ALTER TABLE ehr_billing.miscCharges ADD CONSTRAINT FK_EHR_BILLING_MISC_CHARGES_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId); +CREATE INDEX EHR_BILLING_MISC_CHARGES_CONTAINER_INDEX ON ehr_billing.miscCharges (Container); GO -ALTER TABLE ehr_billing.chargeUnits ADD CONSTRAINT FK_EHR_BILLING_CHARGE_UNITS_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId); -CREATE INDEX EHR_BILLING_CHARGE_UNITS_CONTAINER_INDEX ON ehr_billing.chargeUnits (Container); +ALTER TABLE ehr_billing.miscCharges ADD Lsid LSIDType; GO -ALTER TABLE ehr_billing.invoiceRuns ADD CONSTRAINT FK_EHR_BILLING_INVOICE_RUNS_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId); -CREATE INDEX EHR_BILLING_INVOICE_RUNS_CONTAINER_INDEX ON ehr_billing.invoiceRuns (Container); +EXEC core.fn_dropifexists 'miscCharges', 'ehr_billing', 'CONSTRAINT', 'FK_EHR_BILLING_MISC_CHARGES_CONTAINER'; GO -ALTER TABLE ehr_billing.invoicedItems ADD CONSTRAINT FK_EHR_BILLING_INVOICED_ITEMS_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId); -CREATE INDEX EHR_BILLING_INVOICED_ITEMS_CONTAINER_INDEX ON ehr_billing.invoicedItems (Container); +EXEC core.fn_dropifexists 'miscCharges', 'ehr_billing', 'INDEX', 'EHR_BILLING_MISC_CHARGES_CONTAINER_INDEX'; GO ALTER TABLE ehr_billing.miscCharges ADD CONSTRAINT FK_EHR_BILLING_MISC_CHARGES_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId); CREATE INDEX EHR_BILLING_MISC_CHARGES_CONTAINER_INDEX ON ehr_billing.miscCharges (Container); GO -CREATE TABLE ehr_billing.invoice ( - - rowid INT IDENTITY(1,1) NOT NULL, - invoiceNumber int, - invoiceRunId ENTITYID, - accountNumber nvarchar(10), - invoiceSentOn datetime, - invoiceAmount double precision, - invoiceSentComment nvarchar(10), - paymentAmountReceived double precision, - fullPaymentReceived bit default 0, - paymentReceivedOn datetime, - paymentReceivedComment nvarchar(10), - - container ENTITYID NOT NULL, - createdBy USERID, - created datetime, - modifiedBy USERID, - modified datetime, - - CONSTRAINT PK_EHR_BILLING_INVOICE PRIMARY KEY (rowId), - CONSTRAINT FK_EHR_BILLING_INVOICE_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) -); - -CREATE INDEX EHR_BILLING_INVOICE_CONTAINER_INDEX ON ehr_billing.invoice (Container); -GO - -ALTER TABLE ehr_billing.invoiceRuns DROP COLUMN invoiceNumber; +ALTER TABLE ehr_billing.miscCharges ALTER COLUMN unitCost DECIMAL(13,2); GO -ALTER TABLE ehr_billing.invoice ALTER COLUMN invoiceNumber nvarchar(20); +ALTER TABLE ehr_billing.miscCharges ADD investigator nvarchar(100); GO -ALTER TABLE ehr_billing.invoicedItems ALTER COLUMN invoiceNumber nvarchar(20); +-- constraint and index in misccharges table +EXEC core.fn_dropifexists 'misccharges', 'ehr_billing', 'CONSTRAINT', 'FK_EHR_BILLING_MISC_CHARGES_CHARGEID'; GO - -ALTER TABLE ehr_billing.invoice DROP CONSTRAINT PK_EHR_BILLING_INVOICE; +EXEC core.fn_dropifexists 'misccharges', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_MISC_CHARGES_CHARGEID'; GO - -ALTER TABLE ehr_billing.invoice ALTER COLUMN invoiceNumber nvarchar(20) NOT NULL; +CREATE INDEX IX_EHR_BILLING_MISC_CHARGES_CHARGEID ON ehr_billing.misccharges (chargeid); GO -ALTER TABLE ehr_billing.invoice ADD CONSTRAINT PK_EHR_BILLING_INVOICE_INVNUM PRIMARY KEY (invoiceNumber); +EXEC core.fn_dropifexists 'misccharges', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_MISC_CHARGES_PROJECT'; GO - -ALTER TABLE ehr_billing.invoicedItems ALTER COLUMN invoiceNumber nvarchar(20) NOT NULL; +CREATE INDEX IX_EHR_BILLING_MISC_CHARGES_PROJECT ON ehr_billing.misccharges (project); GO -ALTER TABLE ehr_billing.invoice ADD CONSTRAINT UNIQUE_INVOICE_NUM UNIQUE (invoiceNumber); +EXEC core.fn_dropifexists 'miscCharges', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_MISC_CHARGES_LSID'; GO - -ALTER TABLE ehr_billing.invoicedItems ADD CONSTRAINT FK_INVOICEDITEMS_INVOICENUM FOREIGN KEY (invoiceNumber) REFERENCES ehr_billing.invoice (invoiceNumber); +CREATE INDEX IX_EHR_BILLING_MISC_CHARGES_LSID ON ehr_billing.miscCharges (lsid); GO -CREATE INDEX EHR_BILLING_INVOICEDITEMS_INVNUM_INDEX ON ehr_billing.invoicedItems (invoiceNumber); +ALTER TABLE ehr_billing.miscCharges ADD chargeGroup nvarchar(200); GO -/* ehr_billing-18.20-18.30.sql */ +ALTER TABLE ehr_billing.miscCharges ADD totalCost double precision; -EXEC core.fn_dropifexists 'invoicedItems', 'ehr_billing', 'CONSTRAINT', 'FK_INVOICEDITEMS_INVOICENUM'; +ALTER TABLE ehr_billing.miscCharges ALTER COLUMN creditedaccount nvarchar(200); GO -EXEC core.fn_dropifexists 'chargeableItems','ehr_billing','TABLE', NULL; +ALTER TABLE ehr_billing.miscCharges ALTER COLUMN debitedaccount nvarchar(200); GO -EXEC core.fn_dropifexists 'chargeRateExemptions','ehr_billing','TABLE', NULL; +--this table contains one row each time a billing run is performed, which gleans items to be charged from a variety of sources +--and snapshots them into invoicedItems +CREATE TABLE ehr_billing.invoiceRuns +( + rowId INT IDENTITY(1,1) NOT NULL, + dataSources nvarchar(1000), + comment nvarchar(4000), + runDate DATETIME, + billingPeriodStart DATETIME, + billingPeriodEnd DATETIME, + objectid entityid NOT NULL, + invoiceNumber nvarchar(200), + status nvarchar(200), + + container ENTITYID NOT NULL, + createdBy USERID, + created DATETIME, + modifiedBy USERID, + modified DATETIME, + + CONSTRAINT PK_invoiceRuns PRIMARY KEY (objectid) +); + +ALTER TABLE ehr_billing.invoiceRuns ADD CONSTRAINT FK_EHR_BILLING_INVOICE_RUNS_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId); +CREATE INDEX EHR_BILLING_INVOICE_RUNS_CONTAINER_INDEX ON ehr_billing.invoiceRuns (Container); GO -EXEC core.fn_dropifexists 'chargeUnits','ehr_billing','TABLE', NULL; +ALTER TABLE ehr_billing.invoiceRuns DROP COLUMN invoiceNumber; GO -EXEC core.fn_dropifexists 'invoice','ehr_billing','TABLE', NULL; +ALTER TABLE ehr_billing.invoiceruns ADD Lsid LSIDType; +EXEC core.fn_dropifexists 'invoiceRuns', 'ehr_billing', 'CONSTRAINT', 'FK_EHR_BILLING_INVOICE_RUNS_CONTAINER'; GO -CREATE TABLE ehr_billing.chargeableItems ( +EXEC core.fn_dropifexists 'invoiceRuns', 'ehr_billing', 'INDEX', 'EHR_BILLING_INVOICE_RUNS_CONTAINER_INDEX'; +GO - rowId int IDENTITY(1,1), - name varchar(200), - shortName varchar(100), - category varchar(200), - comment varchar(4000), - active BIT default 1, - startDate DATETIME, - endDate DATETIME, - itemCode varchar(100), - departmentCode varchar(100), - allowsCustomUnitCost BIT DEFAULT 0, - canRaiseFA BIT DEFAULT 0, - allowBlankId BIT DEFAULT 0, - LSID LSIDtype, - container ENTITYID NOT NULL, - createdBy USERID, - created DATETIME, - modifiedBy USERID, - modified DATETIME, +ALTER TABLE ehr_billing.invoiceRuns ADD CONSTRAINT FK_EHR_BILLING_INVOICE_RUNS_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId); +CREATE INDEX EHR_BILLING_INVOICE_RUNS_CONTAINER_INDEX ON ehr_billing.invoiceRuns (Container); - CONSTRAINT PK_chargeableItems PRIMARY KEY (rowId), - CONSTRAINT FK_EHR_BILLING_CHARGEABLEITEMS_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) -); +EXEC core.fn_dropifexists 'invoiceRuns', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_INVOICE_RUNS_LSID'; +GO +CREATE INDEX IX_EHR_BILLING_INVOICE_RUNS_LSID ON ehr_billing.invoiceRuns (lsid); +GO -CREATE TABLE ehr_billing.chargeRateExemptions ( - - rowId int IDENTITY(1,1), - project int, - chargeId int, - unitcost double precision, - startDate DATETIME, - endDate DATETIME, - remark TEXT, - LSID LSIDtype, - container ENTITYID NOT NULL, - createdBy USERID, - created DATETIME, - modifiedBy USERID, - modified DATETIME, - - CONSTRAINT PK_chargeRateExemptions PRIMARY KEY (rowId), - CONSTRAINT FK_EHR_BILLING_CHARGERATEEXEMPTIONS_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) -); +EXEC core.fn_dropifexists 'invoiceRuns', 'ehr_billing', 'COLUMN', 'invoiceNumber'; +GO -CREATE TABLE ehr_billing.chargeUnits ( - - chargetype varchar(100) NOT NULL, - shownInBlood BIT default 0, - shownInLabwork BIT default 0, - shownInMedications BIT default 0, - shownInProcedures BIT default 0, - servicecenter varchar(100), - active BIT default 1, - LSID LSIDtype, - container entityid, - createdBy int, - created DATETIME, - modifiedBy int, - modified DATETIME, - - CONSTRAINT PK_chargeUnits PRIMARY KEY (chargetype), - CONSTRAINT FK_EHR_BILLING_CHARGEUNITS_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) +--this table contains a snapshot of items actually invoiced, which will draw from many places in the animal record +CREATE TABLE ehr_billing.invoicedItems +( + rowId INT IDENTITY(1,1) NOT NULL, + id nvarchar(100), + date DATETIME, + debitedaccount nvarchar(100), + creditedaccount nvarchar(100), + category nvarchar(100), + item nvarchar(500), + quantity double precision, + unitcost double precision, + totalcost double precision, + chargeId int, + rateId int, + exemptionId int, + comment nvarchar(4000), + sourceRecord nvarchar(200), + billingId int, + credit bit, + lastName nvarchar(100), + firstName nvarchar(100), + project int, + invoiceDate DATETIME, + invoiceNumber int, + transactionType nvarchar(10), + department nvarchar(100), + mailcode nvarchar(20), + contactPhone nvarchar(30), + faid int, + cageId int, + objectId entityid NOT NULL, + itemCode nvarchar(100), + creditAccountId int, + invoiceId entityid, + servicecenter nvarchar(200), + transactionNumber nvarchar(100), + investigatorId int, + chargeCategory nvarchar(100), + sourcerecord2 nvarchar(100), + issueId int, + + container ENTITYID NOT NULL, + createdBy USERID, + created DATETIME, + modifiedBy USERID, + modified DATETIME, + + CONSTRAINT PK_invoicedItems PRIMARY KEY (objectid) ); -CREATE TABLE ehr_billing.invoice ( - - rowId int IDENTITY(1,1), - invoiceNumber varchar(20) NOT NULL, - invoiceRunId ENTITYID, - accountNumber varchar(10), - invoiceSentOn DATETIME, - invoiceAmount double precision, - invoiceSentComment varchar(10), - paymentAmountReceived double precision, - fullPaymentReceived BIT, - paymentReceivedOn DATETIME, - paymentReceivedComment varchar(10), - LSID LSIDtype, - container ENTITYID NOT NULL, - createdBy USERID, - created DATETIME, - modifiedBy USERID, - modified DATETIME, - - CONSTRAINT PK_EHR_BILLING_INVOICE_INVNUM PRIMARY KEY (invoiceNumber), - CONSTRAINT FK_EHR_BILLING_INVOICE_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) -); +ALTER TABLE ehr_billing.invoicedItems ADD CONSTRAINT FK_EHR_BILLING_INVOICED_ITEMS_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId); +CREATE INDEX EHR_BILLING_INVOICED_ITEMS_CONTAINER_INDEX ON ehr_billing.invoicedItems (Container); GO -CREATE INDEX EHR_BILLING_INVOICE_CONTAINER_INDEX ON ehr_billing.invoice (Container); -CREATE INDEX EHR_BILLING_CHARGEUNITS_CONTAINER_INDEX ON ehr_billing.chargeUnits (Container); -CREATE INDEX EHR_BILLING_CHARGERATEEXEMPTIONS_CONTAINER_INDEX ON ehr_billing.chargeRateExemptions (Container); -CREATE INDEX EHR_BILLING_CHARGEABLEITEMS_CONTAINER_INDEX ON ehr_billing.chargeableItems (Container); +ALTER TABLE ehr_billing.invoicedItems ALTER COLUMN invoiceNumber nvarchar(20); GO -ALTER TABLE ehr_billing.invoiceditems ADD Lsid LSIDType; -ALTER TABLE ehr_billing.invoiceruns ADD Lsid LSIDType; -ALTER TABLE ehr_billing.miscCharges ADD Lsid LSIDType; +ALTER TABLE ehr_billing.invoicedItems ALTER COLUMN invoiceNumber nvarchar(20) NOT NULL; GO -EXEC core.fn_dropifexists 'invoiceRuns', 'ehr_billing', 'CONSTRAINT', 'FK_EHR_BILLING_INVOICE_RUNS_CONTAINER'; +CREATE INDEX EHR_BILLING_INVOICEDITEMS_INVNUM_INDEX ON ehr_billing.invoicedItems (invoiceNumber); GO +ALTER TABLE ehr_billing.invoiceditems ADD Lsid LSIDType; EXEC core.fn_dropifexists 'invoicedItems', 'ehr_billing', 'CONSTRAINT', 'FK_EHR_BILLING_INVOICED_ITEMS_CONTAINER'; GO -EXEC core.fn_dropifexists 'miscCharges', 'ehr_billing', 'CONSTRAINT', 'FK_EHR_BILLING_MISC_CHARGES_CONTAINER'; -GO - -EXEC core.fn_dropifexists 'invoiceRuns', 'ehr_billing', 'INDEX', 'EHR_BILLING_INVOICE_RUNS_CONTAINER_INDEX'; -GO - EXEC core.fn_dropifexists 'invoicedItems', 'ehr_billing', 'INDEX', 'EHR_BILLING_INVOICED_ITEMS_CONTAINER_INDEX'; GO -EXEC core.fn_dropifexists 'miscCharges', 'ehr_billing', 'INDEX', 'EHR_BILLING_MISC_CHARGES_CONTAINER_INDEX'; -GO - -ALTER TABLE ehr_billing.invoiceRuns ADD CONSTRAINT FK_EHR_BILLING_INVOICE_RUNS_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId); -CREATE INDEX EHR_BILLING_INVOICE_RUNS_CONTAINER_INDEX ON ehr_billing.invoiceRuns (Container); - ALTER TABLE ehr_billing.invoicedItems ADD CONSTRAINT FK_EHR_BILLING_INVOICED_ITEMS_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId); CREATE INDEX EHR_BILLING_INVOICED_ITEMS_CONTAINER_INDEX ON ehr_billing.invoicedItems (Container); -ALTER TABLE ehr_billing.miscCharges ADD CONSTRAINT FK_EHR_BILLING_MISC_CHARGES_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId); -CREATE INDEX EHR_BILLING_MISC_CHARGES_CONTAINER_INDEX ON ehr_billing.miscCharges (Container); +TRUNCATE TABLE ehr_billing.invoicedItems; GO -EXEC core.fn_dropifexists 'invoiceRuns', 'ehr_billing', 'COLUMN', 'invoiceNumber'; +EXEC core.fn_dropifexists 'invoicedItems', 'ehr_billing', 'COLUMN', 'invoiceNumber'; GO -EXEC core.fn_dropifexists 'invoicedItems', 'ehr_billing', 'COLUMN', 'invoiceNumber'; +ALTER TABLE ehr_billing.invoicedItems ADD invoiceNumber varchar(20) NOT NULL; GO -TRUNCATE TABLE ehr_billing.invoicedItems; +EXEC core.fn_dropifexists 'invoicedItems', 'ehr_billing', 'CONSTRAINT', 'EHR_BILLING_INVOICEDITEMS_INVNUM_INDEX'; GO -ALTER TABLE ehr_billing.invoicedItems ADD invoiceNumber varchar(20) NOT NULL; +CREATE INDEX EHR_BILLING_INVOICEDITEMS_INVNUM_INDEX ON ehr_billing.invoicedItems (invoiceNumber); GO -ALTER TABLE ehr_billing.invoice ADD CONSTRAINT UNIQUE_INVOICE_NUM UNIQUE (invoiceNumber); -ALTER TABLE ehr_billing.invoicedItems ADD CONSTRAINT FK_INVOICEDITEMS_INVOICENUM FOREIGN KEY (invoiceNumber) REFERENCES ehr_billing.invoice (invoiceNumber); +ALTER TABLE ehr_billing.invoicedItems ALTER COLUMN unitCost DECIMAL(13,2); +GO +ALTER TABLE ehr_billing.invoicedItems ALTER COLUMN totalCost DECIMAL(13,2); +GO +-- constraint and index in invoicedItems table +EXEC core.fn_dropifexists 'invoiceditems', 'ehr_billing', 'CONSTRAINT', 'FK_EHR_BILLING_INVOICED_ITEMS_CHARGEID'; +GO +EXEC core.fn_dropifexists 'invoiceditems', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_INVOICED_ITEMS_CHARGEID'; +GO +CREATE INDEX IX_EHR_BILLING_INVOICED_ITEMS_CHARGEID ON ehr_billing.invoiceditems (chargeid); GO -EXEC core.fn_dropifexists 'invoicedItems', 'ehr_billing', 'CONSTRAINT', 'EHR_BILLING_INVOICEDITEMS_INVNUM_INDEX'; +EXEC core.fn_dropifexists 'invoicedItems', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_INVOICED_ITEMS_LSID'; +GO +CREATE INDEX IX_EHR_BILLING_INVOICED_ITEMS_LSID ON ehr_billing.invoicedItems (lsid); GO -CREATE INDEX EHR_BILLING_INVOICEDITEMS_INVNUM_INDEX ON ehr_billing.invoicedItems (invoiceNumber); +-- drop Index and Constraints +EXEC core.fn_dropifexists 'invoicedItems', 'ehr_billing', 'INDEX', 'EHR_BILLING_INVOICEDITEMS_INVNUM_INDEX'; GO -CREATE TABLE ehr_billing.chargeableItemCategories ( - rowId int identity(1,1) NOT NULL, - name varchar(100) NOT NULL, - dateDisabled datetime, +-- Modify invoiceNumber +ALTER TABLE ehr_billing.invoicedItems ALTER COLUMN invoiceNumber nvarchar(100); +GO - container entityid NOT NULL, - createdBy int, - created datetime, - modifiedBy int, - modified datetime, +-- Add Index and Constraints back +CREATE INDEX EHR_BILLING_INVOICEDITEMS_INVNUM_INDEX ON ehr_billing.invoicedItems (invoiceNumber); +GO - CONSTRAINT PK_chargeableItemCategories PRIMARY KEY (rowId) +ALTER TABLE ehr_billing.invoicedItems ALTER COLUMN creditedaccount nvarchar(200); +GO + +ALTER TABLE ehr_billing.invoicedItems ALTER COLUMN debitedaccount nvarchar(200); +GO + +CREATE TABLE ehr_billing.chargeableItems +( + rowId int IDENTITY(1,1), + name varchar(200), + shortName varchar(100), + category varchar(200), + comment varchar(4000), + active BIT default 1, + startDate DATETIME, + endDate DATETIME, + itemCode varchar(100), + departmentCode varchar(100), + allowsCustomUnitCost BIT DEFAULT 0, + canRaiseFA BIT DEFAULT 0, + allowBlankId BIT DEFAULT 0, + LSID LSIDtype, + container ENTITYID NOT NULL, + createdBy USERID, + created DATETIME, + modifiedBy USERID, + modified DATETIME, + + CONSTRAINT PK_chargeableItems PRIMARY KEY (rowId), + CONSTRAINT FK_EHR_BILLING_CHARGEABLEITEMS_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) ); + +CREATE INDEX EHR_BILLING_CHARGEABLEITEMS_CONTAINER_INDEX ON ehr_billing.chargeableItems (Container); GO TRUNCATE TABLE ehr_billing.chargeableItems; @@ -518,113 +402,120 @@ ALTER TABLE ehr_billing.chargeableItems DROP COLUMN category; GO ALTER TABLE ehr_billing.chargeableItems ADD chargeCategoryId INT NOT NULL; GO -ALTER TABLE ehr_billing.chargeableItems ADD CONSTRAINT fk_chargeableItems FOREIGN KEY (chargeCategoryId) REFERENCES ehr_billing.chargeableItemCategories (rowId); -GO CREATE INDEX IX_ehr_billing_chargebleItems ON ehr_billing.chargeableItems (chargeCategoryId); GO -ALTER TABLE ehr_billing.chargeRates ALTER COLUMN unitCost DECIMAL(13,2); -GO -ALTER TABLE ehr_billing.invoice ALTER COLUMN invoiceAmount DECIMAL(13,2); +ALTER TABLE ehr_billing.chargeRates ADD CONSTRAINT FK_EHR_BILLING_CHARGE_RATES_CHARGEID FOREIGN KEY (chargeId) REFERENCES ehr_billing.chargeableItems (rowid); GO -ALTER TABLE ehr_billing.invoice ALTER COLUMN paymentAmountReceived DECIMAL(13,2); + +ALTER TABLE ehr_billing.invoiceditems ADD CONSTRAINT FK_EHR_BILLING_INVOICED_ITEMS_CHARGEID FOREIGN KEY (chargeid) REFERENCES ehr_billing.chargeableItems (rowid); GO -ALTER TABLE ehr_billing.invoicedItems ALTER COLUMN unitCost DECIMAL(13,2); + +ALTER TABLE ehr_billing.misccharges ADD CONSTRAINT FK_EHR_BILLING_MISC_CHARGES_CHARGEID FOREIGN KEY (chargeid) REFERENCES ehr_billing.chargeableItems (rowid); GO -ALTER TABLE ehr_billing.invoicedItems ALTER COLUMN totalCost DECIMAL(13,2); + +EXEC core.fn_dropifexists 'chargeableItems', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_CHARGEABLE_ITEMS_LSID'; GO -ALTER TABLE ehr_billing.miscCharges ALTER COLUMN unitCost DECIMAL(13,2); +CREATE INDEX IX_EHR_BILLING_CHARGEABLE_ITEMS_LSID ON ehr_billing.chargeableItems (lsid); GO -CREATE TABLE ehr_billing.dataAccess ( - rowId int identity(1,1) NOT NULL, - userid int, - investigatorId int, - project int, - allData bit, - - container ENTITYID NOT NULL, - createdBy USERID, - created DATETIME, - modifiedBy USERID, - modified DATETIME, - - CONSTRAINT PK_dataAccess PRIMARY KEY (rowId), - CONSTRAINT FK_EHR_BILLING_DATA_ACCESS_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) +CREATE TABLE ehr_billing.chargeRateExemptions +( + rowId int IDENTITY(1,1), + project int, + chargeId int, + unitcost double precision, + startDate DATETIME, + endDate DATETIME, + remark TEXT, + LSID LSIDtype, + container ENTITYID NOT NULL, + createdBy USERID, + created DATETIME, + modifiedBy USERID, + modified DATETIME, + + CONSTRAINT PK_chargeRateExemptions PRIMARY KEY (rowId), + CONSTRAINT FK_EHR_BILLING_CHARGERATEEXEMPTIONS_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) ); -CREATE INDEX EHR_BILLING_DATA_ACCESS_CONTAINER_INDEX ON ehr_billing.dataAccess (Container); +CREATE INDEX EHR_BILLING_CHARGERATEEXEMPTIONS_CONTAINER_INDEX ON ehr_billing.chargeRateExemptions (Container); +EXEC core.fn_dropifexists 'chargeRateExemptions', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_CHARGE_RATE_EXEMPTIONS_LSID'; +GO +CREATE INDEX IX_EHR_BILLING_CHARGE_RATE_EXEMPTIONS_LSID ON ehr_billing.chargeRateExemptions (lsid); GO -/* ehr_billing-18.30-19.10.sql */ - -CREATE TABLE ehr_billing.fiscalAuthorities ( - rowid int identity(1,1) NOT NULL, - faid varchar(100), - firstName varchar(100), - lastName varchar(100), - position varchar(100), - address varchar(500), - city varchar(100), - state varchar(100), - country varchar(100), - zip varchar(100), - phoneNumber varchar(100), - active bit default 1, - objectid ENTITYID, - - container ENTITYID NOT NULL, - createdBy USERID, - created DATETIME, - modifiedBy USERID, - modified DATETIME, - - CONSTRAINT pk_fiscalAuthorities PRIMARY KEY (rowid), - CONSTRAINT FK_EHR_BILLING_FISCAL_AUTHORITIES_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) +CREATE TABLE ehr_billing.chargeUnits +( + chargetype varchar(100) NOT NULL, + shownInBlood BIT default 0, + shownInLabwork BIT default 0, + shownInMedications BIT default 0, + shownInProcedures BIT default 0, + servicecenter varchar(100), + active BIT default 1, + LSID LSIDtype, + container entityid, + createdBy int, + created DATETIME, + modifiedBy int, + modified DATETIME, + + CONSTRAINT PK_chargeUnits PRIMARY KEY (chargetype), + CONSTRAINT FK_EHR_BILLING_CHARGEUNITS_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) ); -CREATE INDEX EHR_BILLING_FISCAL_AUTHORITIES_CONTAINER_INDEX ON ehr_billing.fiscalAuthorities (container); - -ALTER TABLE ehr_billing.aliases DROP COLUMN aliasEnabled; -ALTER TABLE ehr_billing.aliases ADD isAcceptingCharges bit DEFAULT 1; - -ALTER TABLE ehr_billing.invoice ADD balanceDue DECIMAL(13,2); +CREATE INDEX EHR_BILLING_CHARGEUNITS_CONTAINER_INDEX ON ehr_billing.chargeUnits (Container); +EXEC core.fn_dropifexists 'chargeUnits', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_CHARGE_UNITS_LSID'; GO - -ALTER TABLE ehr_billing.miscCharges ADD investigator nvarchar(100); +CREATE INDEX IX_EHR_BILLING_CHARGE_UNITS_LSID ON ehr_billing.chargeUnits (lsid); GO -/* ehr_billing-19.10-19.20.sql */ - --- dropping to avoid duplicate index, EHR_BILLING_ALIASES_INDEX includes index to container -EXEC core.fn_dropifexists 'aliases', 'ehr_billing', 'INDEX', 'ehr_billing_aliases_container_index'; +ALTER TABLE ehr_billing.chargeUnits DROP CONSTRAINT PK_chargeUnits; GO --- constraint and index in chargeRates table -EXEC core.fn_dropifexists 'chargeRates', 'ehr_billing', 'CONSTRAINT', 'FK_EHR_BILLING_CHARGE_RATES_CHARGEID'; -GO -ALTER TABLE ehr_billing.chargeRates ADD CONSTRAINT FK_EHR_BILLING_CHARGE_RATES_CHARGEID FOREIGN KEY (chargeId) REFERENCES ehr_billing.chargeableItems (rowid); +--rename column chargetype to groupName +-- Note: TNPRC does not have any data in this table, but has two references to chargeUnits where column name rename needs to be updated - 1) in miscCharges.query.xml & 2) TNPRC_BillingCustomizer.java. +EXEC sp_rename 'ehr_billing.chargeUnits.chargetype', 'groupName', 'COLUMN'; GO -EXEC core.fn_dropifexists 'chargeRates', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_CHARGE_RATES_CHARGEID'; -GO -CREATE INDEX IX_EHR_BILLING_CHARGE_RATES_CHARGEID ON ehr_billing.chargeRates (chargeId); +ALTER TABLE ehr_billing.chargeUnits ADD CONSTRAINT PK_chargeUnits PRIMARY KEY (groupName); GO --- constraint and index in dataaccess table -EXEC core.fn_dropifexists 'dataaccess', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_DATA_ACCESS_PROJECT'; -GO -CREATE INDEX IX_EHR_BILLING_DATA_ACCESS_PROJECT ON ehr_billing.dataaccess (project); +CREATE TABLE ehr_billing.invoice +( + rowId int IDENTITY(1,1), + invoiceNumber varchar(20) NOT NULL, + invoiceRunId ENTITYID, + accountNumber varchar(10), + invoiceSentOn DATETIME, + invoiceAmount double precision, + invoiceSentComment varchar(10), + paymentAmountReceived double precision, + fullPaymentReceived BIT, + paymentReceivedOn DATETIME, + paymentReceivedComment varchar(10), + LSID LSIDtype, + container ENTITYID NOT NULL, + createdBy USERID, + created DATETIME, + modifiedBy USERID, + modified DATETIME, + + CONSTRAINT PK_EHR_BILLING_INVOICE_INVNUM PRIMARY KEY (invoiceNumber), + CONSTRAINT FK_EHR_BILLING_INVOICE_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) +); GO -EXEC core.fn_dropifexists 'dataaccess', 'ehr_billing', 'CONSTRAINT', 'FK_EHR_BILLING_DATA_ACCESS_USERID'; -GO -ALTER TABLE ehr_billing.dataaccess ADD CONSTRAINT FK_EHR_BILLING_DATA_ACCESS_USERID FOREIGN KEY (userid) REFERENCES core.Usersdata (UserId); +CREATE INDEX EHR_BILLING_INVOICE_CONTAINER_INDEX ON ehr_billing.invoice (Container); +ALTER TABLE ehr_billing.invoice ADD CONSTRAINT UNIQUE_INVOICE_NUM UNIQUE (invoiceNumber); GO -EXEC core.fn_dropifexists 'dataaccess', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_DATA_ACCESS_USERID'; +ALTER TABLE ehr_billing.invoice ALTER COLUMN invoiceAmount DECIMAL(13,2); GO -CREATE INDEX IX_EHR_BILLING_DATA_ACCESS_USERID ON ehr_billing.dataaccess (userid); +ALTER TABLE ehr_billing.invoice ALTER COLUMN paymentAmountReceived DECIMAL(13,2); +GO +ALTER TABLE ehr_billing.invoice ADD balanceDue DECIMAL(13,2); GO -- constraint and index in invoice table @@ -653,152 +544,156 @@ GO CREATE INDEX IX_EHR_BILLING_INVOICE_INVOICENUMBER ON ehr_billing.invoice (invoicenumber); GO --- constraint and index in invoicedItems table -EXEC core.fn_dropifexists 'invoiceditems', 'ehr_billing', 'CONSTRAINT', 'FK_EHR_BILLING_INVOICED_ITEMS_CHARGEID'; -GO -ALTER TABLE ehr_billing.invoiceditems ADD CONSTRAINT FK_EHR_BILLING_INVOICED_ITEMS_CHARGEID FOREIGN KEY (chargeid) REFERENCES ehr_billing.chargeableItems (rowid); -GO - -EXEC core.fn_dropifexists 'invoiceditems', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_INVOICED_ITEMS_CHARGEID'; -GO -CREATE INDEX IX_EHR_BILLING_INVOICED_ITEMS_CHARGEID ON ehr_billing.invoiceditems (chargeid); -GO - --- constraint and index in misccharges table -EXEC core.fn_dropifexists 'misccharges', 'ehr_billing', 'CONSTRAINT', 'FK_EHR_BILLING_MISC_CHARGES_CHARGEID'; -GO -ALTER TABLE ehr_billing.misccharges ADD CONSTRAINT FK_EHR_BILLING_MISC_CHARGES_CHARGEID FOREIGN KEY (chargeid) REFERENCES ehr_billing.chargeableItems (rowid); -GO - -EXEC core.fn_dropifexists 'misccharges', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_MISC_CHARGES_CHARGEID'; -GO -CREATE INDEX IX_EHR_BILLING_MISC_CHARGES_CHARGEID ON ehr_billing.misccharges (chargeid); -GO - -EXEC core.fn_dropifexists 'misccharges', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_MISC_CHARGES_PROJECT'; +EXEC core.fn_dropifexists 'invoice', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_INVOICE_LSID'; GO -CREATE INDEX IX_EHR_BILLING_MISC_CHARGES_PROJECT ON ehr_billing.misccharges (project); +CREATE INDEX IX_EHR_BILLING_INVOICE_LSID ON ehr_billing.invoice (lsid); GO --- index on lsid col in extensible tables -EXEC core.fn_dropifexists 'aliases', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_ALIASES_LSID'; -GO -CREATE INDEX IX_EHR_BILLING_ALIASES_LSID ON ehr_billing.aliases (lsid); +EXEC core.fn_dropifexists 'invoice', 'ehr_billing', 'CONSTRAINT', 'PK_EHR_BILLING_INVOICE_INVNUM'; GO -EXEC core.fn_dropifexists 'chargeRates', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_CHARGE_RATES_LSID'; -GO -CREATE INDEX IX_EHR_BILLING_CHARGE_RATES_LSID ON ehr_billing.chargeRates (lsid); +EXEC core.fn_dropifexists 'invoice', 'ehr_billing', 'CONSTRAINT', 'UNIQUE_INVOICE_NUM'; GO -EXEC core.fn_dropifexists 'chargeableItems', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_CHARGEABLE_ITEMS_LSID'; -GO -CREATE INDEX IX_EHR_BILLING_CHARGEABLE_ITEMS_LSID ON ehr_billing.chargeableItems (lsid); +EXEC core.fn_dropifexists 'invoice', 'ehr_billing', 'CONSTRAINT', 'UQ_EHR_BILLING_INVOICE_INVOICENUMBER'; GO -EXEC core.fn_dropifexists 'invoiceRuns', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_INVOICE_RUNS_LSID'; -GO -CREATE INDEX IX_EHR_BILLING_INVOICE_RUNS_LSID ON ehr_billing.invoiceRuns (lsid); +EXEC core.fn_dropifexists 'invoice', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_INVOICE_INVOICENUMBER'; GO -EXEC core.fn_dropifexists 'invoicedItems', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_INVOICED_ITEMS_LSID'; -GO -CREATE INDEX IX_EHR_BILLING_INVOICED_ITEMS_LSID ON ehr_billing.invoicedItems (lsid); +ALTER TABLE ehr_billing.invoice ALTER COLUMN invoiceNumber nvarchar(100) NOT NULL; GO -EXEC core.fn_dropifexists 'miscCharges', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_MISC_CHARGES_LSID'; -GO -CREATE INDEX IX_EHR_BILLING_MISC_CHARGES_LSID ON ehr_billing.miscCharges (lsid); +ALTER TABLE ehr_billing.invoice ADD CONSTRAINT PK_EHR_BILLING_INVOICE_INVNUM PRIMARY KEY (invoiceNumber); GO -EXEC core.fn_dropifexists 'chargeUnits', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_CHARGE_UNITS_LSID'; -GO -CREATE INDEX IX_EHR_BILLING_CHARGE_UNITS_LSID ON ehr_billing.chargeUnits (lsid); +ALTER TABLE ehr_billing.invoice ADD CONSTRAINT UNIQUE_INVOICE_NUM UNIQUE (invoiceNumber); GO -EXEC core.fn_dropifexists 'chargeRateExemptions', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_CHARGE_RATE_EXEMPTIONS_LSID'; -GO -CREATE INDEX IX_EHR_BILLING_CHARGE_RATE_EXEMPTIONS_LSID ON ehr_billing.chargeRateExemptions (lsid); +ALTER TABLE ehr_billing.invoice ADD CONSTRAINT UQ_EHR_BILLING_INVOICE_INVOICENUMBER UNIQUE (invoicenumber); GO -EXEC core.fn_dropifexists 'invoice', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_INVOICE_LSID'; -GO -CREATE INDEX IX_EHR_BILLING_INVOICE_LSID ON ehr_billing.invoice (lsid); +CREATE INDEX IX_EHR_BILLING_INVOICE_INVOICENUMBER ON ehr_billing.invoice (invoicenumber); GO --- drop Index and Constraints -EXEC core.fn_dropifexists 'invoicedItems', 'ehr_billing', 'INDEX', 'EHR_BILLING_INVOICEDITEMS_INVNUM_INDEX'; +ALTER TABLE ehr_billing.invoicedItems ADD CONSTRAINT FK_INVOICEDITEMS_INVOICENUM FOREIGN KEY (invoiceNumber) REFERENCES ehr_billing.invoice (invoiceNumber); GO -EXEC core.fn_dropifexists 'invoicedItems', 'ehr_billing', 'CONSTRAINT', 'FK_INVOICEDITEMS_INVOICENUM'; +ALTER TABLE ehr_billing.invoice ALTER COLUMN invoiceSentComment varchar(500); GO - -EXEC core.fn_dropifexists 'invoice', 'ehr_billing', 'CONSTRAINT', 'PK_EHR_BILLING_INVOICE_INVNUM'; +ALTER TABLE ehr_billing.invoice ALTER COLUMN paymentReceivedComment varchar(500); GO -EXEC core.fn_dropifexists 'invoice', 'ehr_billing', 'CONSTRAINT', 'UNIQUE_INVOICE_NUM'; +EXEC core.fn_dropifexists 'invoice', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_INVOICE_ACCOUNTNUMBER'; GO -EXEC core.fn_dropifexists 'invoice', 'ehr_billing', 'CONSTRAINT', 'UQ_EHR_BILLING_INVOICE_INVOICENUMBER'; +ALTER TABLE ehr_billing.invoice ALTER COLUMN accountnumber nvarchar(200); GO -EXEC core.fn_dropifexists 'invoice', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_INVOICE_INVOICENUMBER'; +CREATE INDEX IX_EHR_BILLING_INVOICE_ACCOUNTNUMBER ON ehr_billing.invoice (accountnumber); GO --- Modify invoiceNumber -ALTER TABLE ehr_billing.invoicedItems ALTER COLUMN invoiceNumber nvarchar(100); -GO +CREATE TABLE ehr_billing.chargeableItemCategories +( + rowId int identity(1,1) NOT NULL, + name varchar(100) NOT NULL, + dateDisabled datetime, -ALTER TABLE ehr_billing.invoice ALTER COLUMN invoiceNumber nvarchar(100) NOT NULL; -GO + container entityid NOT NULL, + createdBy int, + created datetime, + modifiedBy int, + modified datetime, --- Add Index and Constraints back -CREATE INDEX EHR_BILLING_INVOICEDITEMS_INVNUM_INDEX ON ehr_billing.invoicedItems (invoiceNumber); + CONSTRAINT PK_chargeableItemCategories PRIMARY KEY (rowId) +); GO -ALTER TABLE ehr_billing.invoice ADD CONSTRAINT PK_EHR_BILLING_INVOICE_INVNUM PRIMARY KEY (invoiceNumber); +ALTER TABLE ehr_billing.chargeableItems ADD CONSTRAINT fk_chargeableItems FOREIGN KEY (chargeCategoryId) REFERENCES ehr_billing.chargeableItemCategories (rowId); GO +ALTER TABLE ehr_billing.chargeableItemCategories ADD LSID LSIDtype; -ALTER TABLE ehr_billing.invoice ADD CONSTRAINT UNIQUE_INVOICE_NUM UNIQUE (invoiceNumber); -GO +CREATE TABLE ehr_billing.dataAccess +( + rowId int identity(1,1) NOT NULL, + userid int, + investigatorId int, + project int, + allData bit, + + container ENTITYID NOT NULL, + createdBy USERID, + created DATETIME, + modifiedBy USERID, + modified DATETIME, + + CONSTRAINT PK_dataAccess PRIMARY KEY (rowId), + CONSTRAINT FK_EHR_BILLING_DATA_ACCESS_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) +); -ALTER TABLE ehr_billing.invoice ADD CONSTRAINT UQ_EHR_BILLING_INVOICE_INVOICENUMBER UNIQUE (invoicenumber); +CREATE INDEX EHR_BILLING_DATA_ACCESS_CONTAINER_INDEX ON ehr_billing.dataAccess (Container); GO -CREATE INDEX IX_EHR_BILLING_INVOICE_INVOICENUMBER ON ehr_billing.invoice (invoicenumber); +-- constraint and index in dataaccess table +EXEC core.fn_dropifexists 'dataaccess', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_DATA_ACCESS_PROJECT'; GO - -ALTER TABLE ehr_billing.invoicedItems ADD CONSTRAINT FK_INVOICEDITEMS_INVOICENUM FOREIGN KEY (invoiceNumber) REFERENCES ehr_billing.invoice (invoiceNumber); +CREATE INDEX IX_EHR_BILLING_DATA_ACCESS_PROJECT ON ehr_billing.dataaccess (project); GO -ALTER TABLE ehr_billing.chargeableItemCategories ADD LSID LSIDtype; - --- ehr_billing-18.33-18.34.sql -ALTER TABLE ehr_billing.invoice ALTER COLUMN invoiceSentComment varchar(500); -GO -ALTER TABLE ehr_billing.invoice ALTER COLUMN paymentReceivedComment varchar(500); +EXEC core.fn_dropifexists 'dataaccess', 'ehr_billing', 'CONSTRAINT', 'FK_EHR_BILLING_DATA_ACCESS_USERID'; GO - --- ehr_billing-18.34-18.35.sql -ALTER TABLE ehr_billing.miscCharges ADD chargeGroup nvarchar(200); +ALTER TABLE ehr_billing.dataaccess ADD CONSTRAINT FK_EHR_BILLING_DATA_ACCESS_USERID FOREIGN KEY (userid) REFERENCES core.Usersdata (UserId); GO -ALTER TABLE ehr_billing.chargeUnits DROP CONSTRAINT PK_chargeUnits; +EXEC core.fn_dropifexists 'dataaccess', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_DATA_ACCESS_USERID'; GO - ---rename column chargetype to groupName --- Note: TNPRC does not have any data in this table, but has two references to chargeUnits where column name rename needs to be updated - 1) in miscCharges.query.xml & 2) TNPRC_BillingCustomizer.java. -EXEC sp_rename 'ehr_billing.chargeUnits.chargetype', 'groupName', 'COLUMN'; +CREATE INDEX IX_EHR_BILLING_DATA_ACCESS_USERID ON ehr_billing.dataaccess (userid); GO -ALTER TABLE ehr_billing.chargeUnits ADD CONSTRAINT PK_chargeUnits PRIMARY KEY (groupName); -GO +CREATE TABLE ehr_billing.fiscalAuthorities +( + rowid int identity(1,1) NOT NULL, + faid varchar(100), + firstName varchar(100), + lastName varchar(100), + position varchar(100), + address varchar(500), + city varchar(100), + state varchar(100), + country varchar(100), + zip varchar(100), + phoneNumber varchar(100), + active bit default 1, + objectid ENTITYID, + + container ENTITYID NOT NULL, + createdBy USERID, + created DATETIME, + modifiedBy USERID, + modified DATETIME, + + CONSTRAINT pk_fiscalAuthorities PRIMARY KEY (rowid), + CONSTRAINT FK_EHR_BILLING_FISCAL_AUTHORITIES_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) +); --- ehr_billing-18.35-18.36.sql -ALTER TABLE ehr_billing.miscCharges ADD totalCost double precision; +CREATE INDEX EHR_BILLING_FISCAL_AUTHORITIES_CONTAINER_INDEX ON ehr_billing.fiscalAuthorities (container); --- Convert from a plain index to a unique constraint -EXEC core.fn_dropifexists 'aliases', 'ehr_billing', 'INDEX', 'EHR_BILLING_ALIASES_INDEX'; -GO +CREATE TABLE ehr_billing.procedureQueryChargeIdAssoc +( + rowId INT IDENTITY(1,1) NOT NULL, + schemaName nvarchar(200) NOT NULL, + queryName nvarchar(500) NOT NULL, + description nvarchar(2000) NOT NULL, + chargeId int NOT NULL, + + container ENTITYID NOT NULL, + createdBy USERID, + created DATETIME, + modifiedBy USERID, + modified DATETIME, + + CONSTRAINT PK_procedureQueryChargeIdAssociations PRIMARY KEY (rowId), + CONSTRAINT FK_EHR_BILLING_PROCEDURE_QUERY_CHARGEID_ASSOC_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) +); -ALTER TABLE ehr_billing.aliases ADD CONSTRAINT UNIQUE_ALIAS UNIQUE (alias, Container); \ No newline at end of file +CREATE INDEX IDX_EHR_BILLING_PROCEDURE_QUERY_CHARGEID_ASSOC_CONTAINER ON ehr_billing.procedureQueryChargeIdAssoc (container); diff --git a/ehr_billing/resources/schemas/dbscripts/sqlserver/ehr_billing-23.000-23.001.sql b/ehr_billing/resources/schemas/dbscripts/sqlserver/ehr_billing-23.000-23.001.sql deleted file mode 100644 index 775120326..000000000 --- a/ehr_billing/resources/schemas/dbscripts/sqlserver/ehr_billing-23.000-23.001.sql +++ /dev/null @@ -1,20 +0,0 @@ -EXEC core.fn_dropifexists 'invoice', 'ehr_billing', 'INDEX', 'IX_EHR_BILLING_INVOICE_ACCOUNTNUMBER'; -GO - -ALTER TABLE ehr_billing.invoicedItems ALTER COLUMN creditedaccount nvarchar(200); -GO - -ALTER TABLE ehr_billing.invoicedItems ALTER COLUMN debitedaccount nvarchar(200); -GO - -ALTER TABLE ehr_billing.invoice ALTER COLUMN accountnumber nvarchar(200); -GO - -ALTER TABLE ehr_billing.miscCharges ALTER COLUMN creditedaccount nvarchar(200); -GO - -ALTER TABLE ehr_billing.miscCharges ALTER COLUMN debitedaccount nvarchar(200); -GO - -CREATE INDEX IX_EHR_BILLING_INVOICE_ACCOUNTNUMBER ON ehr_billing.invoice (accountnumber); -GO diff --git a/ehr_billing/resources/schemas/dbscripts/sqlserver/ehr_billing-23.001-23.002.sql b/ehr_billing/resources/schemas/dbscripts/sqlserver/ehr_billing-23.001-23.002.sql deleted file mode 100644 index 62ce6ecea..000000000 --- a/ehr_billing/resources/schemas/dbscripts/sqlserver/ehr_billing-23.001-23.002.sql +++ /dev/null @@ -1,19 +0,0 @@ -CREATE TABLE ehr_billing.procedureQueryChargeIdAssoc ( - - rowId INT IDENTITY(1,1) NOT NULL, - schemaName nvarchar(200) NOT NULL, - queryName nvarchar(500) NOT NULL, - description nvarchar(2000) NOT NULL, - chargeId int NOT NULL, - - container ENTITYID NOT NULL, - createdBy USERID, - created DATETIME, - modifiedBy USERID, - modified DATETIME, - - CONSTRAINT PK_procedureQueryChargeIdAssociations PRIMARY KEY (rowId), - CONSTRAINT FK_EHR_BILLING_PROCEDURE_QUERY_CHARGEID_ASSOC_CONTAINER FOREIGN KEY (Container) REFERENCES core.Containers (EntityId) -); - -CREATE INDEX IDX_EHR_BILLING_PROCEDURE_QUERY_CHARGEID_ASSOC_CONTAINER ON ehr_billing.procedureQueryChargeIdAssoc (container); \ No newline at end of file