Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
ALTER TABLE ehr_compliancedb.RequirementsPerCategory add COLUMN trackingflag varchar(100);

ALTER TABLE ehr_compliancedb.RequirementsPerCategory add COLUMN objectid ENTITYID;

ALTER TABLE ehr_compliancedb.RequirementsPerCategory add COLUMN taskid ENTITYID;

CREATE TABLE ehr_compliancedb.EmployeePerUnit
(
RowId SERIAL NOT NULL,
EmployeeId varchar(255) not null,
unit varchar(255) null,
category varchar(255) null,
Container ENTITYID NOT NULL,
CreatedBy USERID,
Created timestamp,
ModifiedBy USERID,
Modified timestamp,
taskid entityid,
objectid entityid,

CONSTRAINT PK_EmployeePerUnits PRIMARY KEY (RowId)
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@

ALTER TABLE ehr_compliancedb.RequirementsPerCategory add trackingflag nvarchar(100);

ALTER TABLE ehr_compliancedb.RequirementsPerCategory add objectid ENTITYID;

ALTER TABLE ehr_compliancedb.RequirementsPerCategory add taskid ENTITYID;


CREATE TABLE ehr_compliancedb.EmployeePerUnit
(
RowId INT IDENTITY(1,1) NOT NULL,
EmployeeId nvarchar(255) not null,
unit nvarchar(255) null,
category nvarchar(255) null,
Container ENTITYID NOT NULL,
CreatedBy USERID,
Created datetime,
ModifiedBy USERID,
Modified datetime,
taskid entityid,
objectid entityid

CONSTRAINT PK_EmployeePerUnits PRIMARY KEY (RowId)
);
91 changes: 91 additions & 0 deletions EHR_ComplianceDB/resources/schemas/ehr_compliancedb.xml
Original file line number Diff line number Diff line change
Expand Up @@ -420,6 +420,21 @@
<nullable>true</nullable>
<isHidden>true</isHidden>
</column>
<column columnName="trackingflag">
<isUserEditable>true</isUserEditable>
<nullable>true</nullable>
<isHidden>false</isHidden>
</column>
<column columnName="taskid">
<isUserEditable>false</isUserEditable>
<nullable>true</nullable>
<isHidden>true</isHidden>
</column>
<column columnName="objectid">
<isUserEditable>false</isUserEditable>
<nullable>true</nullable>
<isHidden>true</isHidden>
</column>
</columns>
</table>
<table tableName="requirementsperemployee" tableDbType="TABLE">
Expand Down Expand Up @@ -804,4 +819,80 @@
</column>
</columns>
</table>
<table tableName="employeePerUnit" tableDbType="TABLE">
<auditLogging>DETAILED</auditLogging>
<javaCustomizer class="org.labkey.ldk.query.DefaultTableCustomizer" />
<tableTitle>Requirements Per Employee</tableTitle>
<pkColumnName>rowid</pkColumnName>
<columns>
<column columnName="rowid">
<isAutoInc>true</isAutoInc>
<isKeyField>true</isKeyField>
<columnTitle>Key</columnTitle>
</column>
<column columnName="employeeid">
<columnTitle>Employee Id</columnTitle>
<fk>
<fkDbSchema>ehr_compliancedb</fkDbSchema>
<fkTable>employees</fkTable>
<fkColumnName>employeeid</fkColumnName>
</fk>
</column>
<column columnName="unit">
<columnTitle>Unit</columnTitle>
<fk>
<fkDbSchema>ehr_compliancedb</fkDbSchema>
<fkTable>unit_names</fkTable>
<fkColumnName>unit</fkColumnName>
</fk>
</column>
<column columnName="category">
<columnTitle>Unit</columnTitle>
<fk>
<fkDbSchema>ehr_compliancedb</fkDbSchema>
<fkTable>employeecategory</fkTable>
<fkColumnName>categoryname</fkColumnName>
</fk>
</column>
<column columnName="container">
<isUserEditable>false</isUserEditable>
<isHidden>true</isHidden>
<fk>
<fkDbSchema>core</fkDbSchema>
<fkTable>containers</fkTable>
<fkColumnName>entityid</fkColumnName>
</fk>
</column>
<column columnName="taskid">
<isUserEditable>false</isUserEditable>
<nullable>true</nullable>
<isHidden>true</isHidden>
</column>
<column columnName="objectid">
<isUserEditable>false</isUserEditable>
<nullable>true</nullable>
<isHidden>true</isHidden>
</column>
<column columnName="createdby">
<isUserEditable>false</isUserEditable>
<nullable>true</nullable>
<isHidden>true</isHidden>
</column>
<column columnName="created">
<isUserEditable>false</isUserEditable>
<nullable>true</nullable>
<isHidden>true</isHidden>
</column>
<column columnName="modifiedby">
<isUserEditable>false</isUserEditable>
<nullable>true</nullable>
<isHidden>true</isHidden>
</column>
<column columnName="modified">
<isUserEditable>false</isUserEditable>
<nullable>true</nullable>
<isHidden>true</isHidden>
</column>
</columns>
</table>
</tables>
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ public String getName()
@Override
public @Nullable Double getSchemaVersion()
{
return 12.40;
return 12.41;
}

@Override
Expand Down
3 changes: 1 addition & 2 deletions ehr/resources/queries/study/Demographics.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,10 @@ function onInit(event, helper){
});
}

function onUpsert(helper, scriptErrors, row, oldRow){
function onUpsert(helper, scriptErrors, row, oldRow) {
//NOTE: this should be getting set by the birth, death, arrival & departure tables
//ALSO: it should be rare to insert directly into this table. usually this record will be created by inserting into either birth or arrival
if (!row.calculated_status && !helper.isETL()){
row.calculated_status = helper.getJavaHelper().getCalculatedStatusValue(row.Id);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -218,7 +218,7 @@ else if (existing.getProps().isEmpty() && record.getProps().isEmpty())
_cache.put(key, record);
}

private void recacheRecords(Container c, List<String> ids)
public void recacheRecords(Container c, List<String> ids)
{
for (String id : ids)
{
Expand Down
6 changes: 5 additions & 1 deletion ehr/src/org/labkey/ehr/utils/TriggerScriptHelper.java
Original file line number Diff line number Diff line change
Expand Up @@ -826,7 +826,11 @@ public void createDemographicsRecord(String id, Map<String, Object> props) throw
if (errors.hasErrors())
throw errors;

EHRDemographicsServiceImpl.get().getAnimal(getContainer(), id);
// The normal (re)caching of demographics providers runs before the study module has done its bookkeeping and
// inserted a row into study.participant, which means that calculated lookup values like the animal's current
// age won't resolve until AFTER the call to insertRows() has completed. Thus, refresh the cache for this new
// animal an extra time. See ticket 44283.
EHRDemographicsServiceImpl.get().recacheRecords(getContainer(), Collections.singletonList(id));
}

public void updateDemographicsRecord(List<Map<String, Object>> updatedRows) throws QueryUpdateServiceException, SQLException, BatchValidationException, InvalidKeyException
Expand Down