diff --git a/EHR_ComplianceDB/resources/schemas/dbscripts/postgresql/EHR_ComplianceDB-25.000-25.001.sql b/EHR_ComplianceDB/resources/schemas/dbscripts/postgresql/EHR_ComplianceDB-25.000-25.001.sql
new file mode 100644
index 000000000..52811f63a
--- /dev/null
+++ b/EHR_ComplianceDB/resources/schemas/dbscripts/postgresql/EHR_ComplianceDB-25.000-25.001.sql
@@ -0,0 +1 @@
+ALTER TABLE ehr_compliancedb.requirementsperemployee ADD COLUMN LSID LSIDtype;
\ No newline at end of file
diff --git a/EHR_ComplianceDB/resources/schemas/dbscripts/sqlserver/EHR_ComplianceDB-25.000-25.001.sql b/EHR_ComplianceDB/resources/schemas/dbscripts/sqlserver/EHR_ComplianceDB-25.000-25.001.sql
new file mode 100644
index 000000000..df2cbf19e
--- /dev/null
+++ b/EHR_ComplianceDB/resources/schemas/dbscripts/sqlserver/EHR_ComplianceDB-25.000-25.001.sql
@@ -0,0 +1 @@
+ALTER TABLE ehr_compliancedb.requirementsperemployee ADD Lsid LsidType null;
\ No newline at end of file
diff --git a/EHR_ComplianceDB/resources/schemas/ehr_compliancedb.xml b/EHR_ComplianceDB/resources/schemas/ehr_compliancedb.xml
index 824de80e8..7ea7baa14 100644
--- a/EHR_ComplianceDB/resources/schemas/ehr_compliancedb.xml
+++ b/EHR_ComplianceDB/resources/schemas/ehr_compliancedb.xml
@@ -453,6 +453,17 @@
true
Key
+
+ lsidtype
+ true
+ true
+ false
+
+ ObjectUri
+ Object
+ exp
+
+
Employee Id
diff --git a/EHR_ComplianceDB/src/org/labkey/ehr_compliancedb/EHR_ComplianceDBModule.java b/EHR_ComplianceDB/src/org/labkey/ehr_compliancedb/EHR_ComplianceDBModule.java
index b4616010b..c17ff3540 100644
--- a/EHR_ComplianceDB/src/org/labkey/ehr_compliancedb/EHR_ComplianceDBModule.java
+++ b/EHR_ComplianceDB/src/org/labkey/ehr_compliancedb/EHR_ComplianceDBModule.java
@@ -19,9 +19,11 @@
import org.jetbrains.annotations.Nullable;
import org.labkey.api.data.DbSchema;
import org.labkey.api.data.DbSchemaType;
+import org.labkey.api.exp.property.PropertyService;
import org.labkey.api.ldk.ExtendedSimpleModule;
import org.labkey.api.ldk.LDKService;
import org.labkey.api.ldk.notification.NotificationService;
+import org.labkey.ehr_compliancedb.model.EHRComplianceDBDomainKind;
import org.labkey.ehr_compliancedb.notification.EmployeeComplianceNotification;
import org.labkey.api.module.ModuleContext;
import org.labkey.ehr_compliancedb.api.EHR_ComplianceService;
@@ -49,7 +51,7 @@ public String getName()
@Override
public @Nullable Double getSchemaVersion()
{
- return 12.44;
+ return 25.001;
}
@Override
@@ -64,6 +66,7 @@ protected void init()
addController(CONTROLLER_NAME, EHR_ComplianceDBController.class);
EHR_ComplianceService.setInstance(new EHR_ComplianceServiceImpl());
+ PropertyService.get().registerDomainKind(new EHRComplianceDBDomainKind());
}
@Override
diff --git a/EHR_ComplianceDB/src/org/labkey/ehr_compliancedb/EHR_ComplianceDBUserSchema.java b/EHR_ComplianceDB/src/org/labkey/ehr_compliancedb/EHR_ComplianceDBUserSchema.java
index 82af20161..370843787 100644
--- a/EHR_ComplianceDB/src/org/labkey/ehr_compliancedb/EHR_ComplianceDBUserSchema.java
+++ b/EHR_ComplianceDB/src/org/labkey/ehr_compliancedb/EHR_ComplianceDBUserSchema.java
@@ -25,8 +25,10 @@
import org.labkey.api.module.Module;
import org.labkey.api.query.DefaultSchema;
import org.labkey.api.query.QuerySchema;
+import org.labkey.api.query.SimpleTableDomainKind;
import org.labkey.api.query.SimpleUserSchema;
import org.labkey.api.security.User;
+import org.labkey.ehr_compliancedb.model.EHRComplianceDBDomainKind;
/**
* User: bimber
@@ -36,6 +38,7 @@
public class EHR_ComplianceDBUserSchema extends SimpleUserSchema
{
public static final String TABLE_REQUIREMENTS = "requirements";
+ private static final String TABLE_REQUIREMENTSPEREMPLOYEE = "requirementsperemployee";
public EHR_ComplianceDBUserSchema(User user, Container container, DbSchema dbschema)
{
@@ -50,6 +53,23 @@ public TableInfo createTable(String name, ContainerFilter cf)
SchemaTableInfo table = _dbSchema.getTable(name);
return new ContainerScopedTable<>(this, table, cf, "requirementname").init();
}
+ else if (TABLE_REQUIREMENTSPEREMPLOYEE.equalsIgnoreCase(name))
+ {
+ SchemaTableInfo table = _dbSchema.getTable(name);
+ return new SimpleTable<>(this, table, cf)
+ {
+ // There are issues with the '_' in the name of this module and creating template domains. This addresses
+ // the domain URI by normalizing with the domain kind.
+ @Override
+ public String getDomainURI()
+ {
+ if (_objectUriCol == null)
+ return null;
+
+ return SimpleTableDomainKind.getDomainURI(EHRComplianceDBDomainKind.KIND_NAME, getName(), getDomainContainer(), _userSchema.getUser());
+ }
+ }.init();
+ }
return super.createTable(name, cf);
}
diff --git a/EHR_ComplianceDB/src/org/labkey/ehr_compliancedb/model/EHRComplianceDBDomainKind.java b/EHR_ComplianceDB/src/org/labkey/ehr_compliancedb/model/EHRComplianceDBDomainKind.java
new file mode 100644
index 000000000..e99f4860c
--- /dev/null
+++ b/EHR_ComplianceDB/src/org/labkey/ehr_compliancedb/model/EHRComplianceDBDomainKind.java
@@ -0,0 +1,57 @@
+package org.labkey.ehr_compliancedb.model;
+
+import org.labkey.api.data.Container;
+import org.labkey.api.exp.property.Domain;
+import org.labkey.api.gwt.client.model.GWTPropertyDescriptor;
+import org.labkey.api.query.ExtendedTableDomainKind;
+import org.labkey.api.security.User;
+import org.labkey.api.security.permissions.AdminPermission;
+import org.labkey.data.xml.domainTemplate.DomainTemplateType;
+import org.labkey.data.xml.domainTemplate.EHRComplianceDBTemplateType;
+
+
+import java.util.List;
+import java.util.Set;
+
+public class EHRComplianceDBDomainKind extends ExtendedTableDomainKind
+{
+ public static final String KIND_NAME = "EHRComplianceDB";
+
+ @Override
+ public boolean canCreateDefinition(User user, Container container)
+ {
+ return container.hasPermission("EHRComplianceDBDomainKind.canCreateDefinition", user, AdminPermission.class);
+ }
+
+ @Override
+ protected String getSchemaName()
+ {
+ return KIND_NAME.toLowerCase();
+ }
+
+ @Override
+ protected String getNamespacePrefix()
+ {
+ return KIND_NAME.toLowerCase();
+ }
+
+ @Override
+ public String getKindName()
+ {
+ return KIND_NAME;
+ }
+
+ @Override
+ public Set getReservedPropertyNames(Domain domain, User user)
+ {
+ return super.getReservedPropertyNames(domain, user);
+ }
+
+ @Override
+ public boolean matchesTemplateXML(String templateName, DomainTemplateType template, List properties)
+ {
+ return template instanceof EHRComplianceDBTemplateType;
+ }
+}
+
+
diff --git a/ehr/resources/views/ehrTemplates.html b/ehr/resources/views/ehrTemplates.html
index a759d4d35..85e8be151 100644
--- a/ehr/resources/views/ehrTemplates.html
+++ b/ehr/resources/views/ehrTemplates.html
@@ -54,19 +54,52 @@
});
}
+ createEHRComplianceDomainHandler = function () {
+ var ctx = EHR.Utils.getEHRContext();
+ var container = document.getElementById("ehrcompliance_container").value;
+ if (!container) {
+ LABKEY.Utils.alert("Error", "Must enter the container path of the compliance folder.");
+ }
+ else {
+ LABKEY.Domain.create({
+ module: ctx ? ctx['EHRCustomModule'] : null,
+ domainKind: "EHRComplianceDB",
+ domainGroup: "ehrcompliancedb",
+ importData: false,
+ containerPath: container,
+ success: function () {
+ LABKEY.Utils.alert("Success", "EHR_ComplianceDB tables updated successfully.");
+ },
+ failure: function (e) {
+ LABKEY.Utils.alert("Error", e.exception);
+ }
+ });
+ }
+ }
+
LABKEY.Utils.onReady(function(){
document.getElementById('createEHRDomainHandler')['onclick'] = function(){ createEHRDomainHandler(); return false; }
document.getElementById('createEHRLookupsDomainHandler')['onclick'] = function(){ createEHRLookupsDomainHandler(); return false; }
document.getElementById('createEHRBillingDomainHandler')['onclick'] = function(){ createEHRBillingDomainHandler(); return false; }
+ document.getElementById('createEHRComplianceDomainHandler')['onclick'] = function(){ createEHRComplianceDomainHandler(); return false; }
});
\ No newline at end of file