Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
522 commits
Select commit Hold shift + click to select a range
325c1f5
Workaround for unresponsive checkbox
labkey-tchad Nov 9, 2017
1584b28
Ensure radio button is selected before saving
labkey-tchad Dec 19, 2017
b5489fe
Wait for study export
labkey-tchad Dec 19, 2017
93492d8
Prefer TextSearcher(File) constructor
labkey-tchad Feb 2, 2018
f2fdef7
Fix test
labkey-dave Mar 16, 2018
eb90aa3
add/update timeout annotations for test classes
labkey-chrisj May 13, 2018
c79ee51
update to timeout annotations
labkey-chrisj May 14, 2018
0dbd892
dailyA class timeout annotation updates
labkey-chrisj May 16, 2018
45fd4ca
Time out added for Daily B suit.
labkey-sweta May 17, 2018
da7a76b
Time out added for Daily B suit.
labkey-sweta May 17, 2018
8fbf848
Fail faster if checkbox is not set
labkey-chrisj Jul 17, 2018
c1f0929
use EmailRecordTable to click message with project name (instead of c…
labkey-chrisj Oct 17, 2018
6f4fd06
Copyright and license updates
labkey-eyounske Nov 13, 2018
544a8d9
Copyright and license updates
labkey-eyounske Nov 13, 2018
b042da8
Merge /branches/selenium3 to /trunk through 61402
labkey-tchad Dec 11, 2018
48d2829
Remove test dependency on server API: ColumnHeaderType
labkey-tchad Jan 4, 2019
a18598f
Upload Specimen Ids button should not be a submit button
labkey-matthewb Jan 22, 2019
f542b25
Replacing clickAndWait with WaitAndClickAndWait. Making sure element …
labkey-danield Jan 30, 2019
21b4131
Making sure we are on the Manage tab.
labkey-danield Feb 18, 2019
9ef1a7e
Backing out earlier change, issue with flow should be exposed.
labkey-danield Feb 21, 2019
d8f8bcf
Addressing issues with Specimen Import test.
labkey-danield Feb 21, 2019
2857d31
Adding WebDriverWrapper.assertAlertIgnoreCaseAndSpaces, can be used i…
labkey-danield Feb 22, 2019
ce6f3d7
A few other checks assert text checks needed to ignore casing and spa…
labkey-danield Feb 26, 2019
df1ccad
Adding a check to the SpecimenImportTest to validate that specimens a…
labkey-danield Mar 5, 2019
59ec3c5
Fix race conditions in AliquotTest
labkey-tchad May 2, 2019
de4cd75
Use helper to select all rows in data region
labkey-tchad May 17, 2019
d53f28d
Use shared code path for creating API Connections
labkey-tchad May 17, 2019
8861a04
Normalizing line endings to .gitattributes file
Sigmonia May 28, 2019
6b740e2
fix AliquotTest
labkey-kevink Jun 13, 2019
0e41e03
fix AliquotTest and SampleSetTest
labkey-kevink Jun 13, 2019
cd1747b
Item 5760: update copyrights to 2019
labkey-ankurj Jun 17, 2019
28cd3c7
Item 5760: update copyrights to 2019
labkey-ankurj Jun 26, 2019
75c1e56
Make FieldPropertyDock more amenable to polymorphism
labkey-tchad Jul 24, 2019
ef098ae
Item 6654: Specimen designer migration
labkey-ankurj Jan 24, 2020
83a5595
Use helper to get sample data
labkey-tchad Feb 10, 2020
7136eff
Use helper to get sample data
labkey-tchad Feb 10, 2020
6c33604
Item 7353: Remove PropertiesEditor test class and move related enums …
cnathe May 23, 2020
afcd461
appendNavTrail() to addNavTrail() migration
labkey-adam May 27, 2020
dd97b48
appendNavTrail() to addNavTrail() migration
labkey-adam May 27, 2020
35b3089
Refactor SpecimenImportTest to use Study folder type
labkey-tchad May 27, 2020
fd1c3a6
Update references to sample study
labkey-tchad Jun 24, 2020
3dea58a
Fb 7140 sample set to sample type
labkey-adam Jun 29, 2020
f5bf55f
Fb fix specimen import test
labkey-chrisj Sep 3, 2020
159b9e1
Fix intermittent error in 'SpecimenTest'
labkey-tchad Oct 23, 2020
655277f
Fb specimen aliases 39672
labkey-adam Oct 26, 2020
457ae19
Update expected notification to match updated study schema
labkey-tchad Oct 29, 2020
0f71415
Specimen module - Part 2
labkey-adam Jan 14, 2021
f205313
Adjust for specimen refactor
labkey-adam Jan 14, 2021
9d34dc2
Fix specimen tests
labkey-adam Jan 18, 2021
a4e9ebe
Specimen module - Part 3
labkey-adam Jan 20, 2021
e80e35f
Update SpecimenTest based on new package name
labkey-adam Jan 20, 2021
cf0afdf
Move importers and reports to study-api
labkey-adam Feb 1, 2021
45c2844
Rename "study-samples" controller to "specimen", while keeping old na…
labkey-adam Feb 2, 2021
cd0b312
Move pipelines, importers, and some JSPs
labkey-adam Feb 5, 2021
af6037e
Investigate intermittent failures with SpecimenTest
labkey-adam Feb 5, 2021
06c6c72
Restore creation of specimen custom columns during publish study
labkey-adam Feb 10, 2021
899f3ca
Move pipeline jobs and tasks to specimen module
labkey-adam Feb 12, 2021
62038f9
Run sans specimen module
labkey-adam Feb 17, 2021
c510a30
Run sans specimen module
labkey-adam Feb 17, 2021
b0f1a06
Conditionalize specimen setup & verification in tests
labkey-adam Feb 20, 2021
07dab0b
Add controller alias to match @labkey/api expectations
labkey-adam Feb 20, 2021
24b2dfc
FormSchema, Updated Filewatcher UI
labkey-alan May 11, 2021
17f4da6
Move more specimen code to specimen module
labkey-adam Jun 1, 2021
b1cdfd2
AuditTypeProvider.getDomainKind() perf
labkey-matthewb Jun 3, 2021
ba04c3e
Move more code to specimen module
labkey-adam Jun 3, 2021
8426476
Issue 43290: Need to alias location of SpecimenRequester and Specimen…
labkey-adam Jun 4, 2021
b4342ee
Merge 21.3.6 to 21.6
labkey-teamcity Jun 9, 2021
0d4a5c0
Move more specimen code
labkey-adam Jun 15, 2021
473a912
Rename primary specimen controller
labkey-adam Jun 15, 2021
4e695db
Merge 21.6.0 to develop
labkey-tchad Jun 16, 2021
785f124
Fix specimen navtrail NPE
labkey-adam Jun 21, 2021
6dbd918
CachedResultSet: implement getBigDecimal() methods
labkey-adam Jun 21, 2021
3eeaabe
Double -> BigDecimal
labkey-adam Jun 28, 2021
d1d21c2
Move all remaining specimen actions (i.e., specimen comments) to spec…
labkey-adam Jul 8, 2021
efebf82
Finish double -> BigDecimal sequence num migration
labkey-adam Jul 21, 2021
69f9d18
Changing the Category from DailyA, DailyB and DailyC to Daily to be i…
labkey-sweta Jul 26, 2021
98585d7
Changing the test class category.
labkey-sweta Jul 26, 2021
57f9cbc
Enable import for Folder/Study archives when paired with the cloud mo…
Sep 8, 2021
5ae66a0
Simplify HelpTopic declarations
labkey-adam Oct 18, 2021
a4dfe90
remove Dataset.canInsert()/canUpdate()/canDelete()
labkey-matthewb Nov 19, 2021
f1eb00f
Import javax.mail.* exceptions
labkey-adam Nov 29, 2021
2ac423e
Compile with Java 16 source & target
labkey-adam Dec 8, 2021
20262bf
Issue 44437: Permissions panel is taking minutes to render due to get…
labkey-jeckels Dec 9, 2021
852d98f
Merge 21.11.2 to 21.12
labkey-teamcity Dec 13, 2021
c2bbb68
Merge 21.12.0 to develop
labkey-danield Dec 16, 2021
7d8f359
Issue 44015: Migrate remaining log4j 1.2 usages to 2.x
labkey-adam Dec 29, 2021
fc2bc63
Issue 44564: Clean up folder import
labkey-adam Jan 9, 2022
f230b3b
ExcelLoader perf
labkey-matthewb Jan 24, 2022
8942c38
Stop respecting the "Create Specimen Study" experimental feature flag
labkey-adam Jan 27, 2022
0506e9e
Convert /testAutomation/data/study into a folder archive
labkey-adam Jan 31, 2022
d58eed2
Convert /testAutomation/data/study into a folder archive
labkey-adam Jan 31, 2022
e285de5
A few cleanups and fixes in study & specimen
labkey-adam Feb 20, 2022
13b0d54
Move more specimen code into specimen module
labkey-adam Feb 23, 2022
5c47083
45034: CIML's BSIImport module failing due to S3 bug from 21.11
labkey-klum Mar 15, 2022
7fd8096
Close open stream that was causing IOExceptions
Mar 15, 2022
1a697b6
Miscellaneous cleanups
labkey-adam Mar 16, 2022
72c631e
Merge 22.3.0 to develop
labkey-chrisj Mar 17, 2022
e707b53
Modernize and optimize missing value indicator cache
labkey-adam Mar 18, 2022
ec7084e
Refactor import/export context and writer hierarchies
labkey-adam Apr 7, 2022
13ccdbf
Remove inline script event handlers
labkey-matthewb Apr 18, 2022
42d87f3
Update tests for event handler changes
labkey-matthewb Apr 18, 2022
a075d38
Export multi-tabbed grids to excel
May 4, 2022
4f9ee46
Fix intermittent test failures
labkey-tchad May 12, 2022
7f1faf6
Limit active users
labkey-adam May 19, 2022
c9b3c50
Use `ImportDataPage` instead of hard coded Locators and `ListHelper`
labkey-tchad Jun 2, 2022
1928c4d
45463: Update UI on manage study properties
labkey-klum Jun 3, 2022
87f01eb
Issue 46060: Excel exports are leaving permanent 'temporary poifiles'
labkey-adam Aug 12, 2022
0796feb
Upgrade to Spring Framework 5.3.22
labkey-jeckels Aug 26, 2022
29bf3e9
Improve API test helpers
labkey-tchad Sep 13, 2022
f228404
Migrate HttpStatus references to HttpClient 5.1.x
labkey-adam Sep 20, 2022
09749d5
Repackage JSONObject and JSONArray
labkey-adam Sep 21, 2022
b9e353e
Issue 46282: View vs download options for file and attachment fields
labkey-jeckels Oct 3, 2022
9ceec14
Create new JSON helpers to replace org.json.old.* helpers. Migrate.
labkey-adam Nov 11, 2022
1e8946b
Remove unnecessary spring reference that prevents JSP recompilation
labkey-adam Nov 15, 2022
1e9ae49
Migrate to new JSONObject/JSONArray library
labkey-adam Dec 28, 2022
2451a1e
Move all "Internal" java files and libs elsewhere
labkey-adam Jan 12, 2023
6ba17c3
SqlFragment.appendValue()
labkey-matthewb Mar 29, 2023
db3089e
Update use of deprecated methods
labkey-matthewb Apr 8, 2023
93397ce
TableInfo.getSQLName()
labkey-matthewb Apr 20, 2023
efba8e3
class ReentrantLockWithName
labkey-matthewb Jun 6, 2023
43ccd4b
Automation Test for Export Does Not Include Failed Lookup Values
labkey-sweta Jun 16, 2023
d4826dd
use PageConfig.addDocumentLoadHandler()
labkey-matthewb Aug 2, 2023
324b3d2
SpecimenTest fix
labkey-matthewb Aug 4, 2023
2f55ca4
Misc code cleanup
labkey-jeckels Aug 9, 2023
4b769e6
Remove a lot of inline event handlers
labkey-matthewb Aug 22, 2023
6481a2e
DatabaseCache replay of put operations into shared cache
labkey-adam Sep 14, 2023
0bc8318
Import Excel datetimes with seconds
labkey-adam Oct 27, 2023
880495c
Issue 48564: update create folder util
XingY Oct 29, 2023
75e17af
Merge 23.7 to develop
labkey-teamcity Oct 31, 2023
4441f04
Move specimen metrics from study to specimen
labkey-adam Nov 3, 2023
9bdbbae
Add nonce to miscellaneous pages
labkey-adam Nov 6, 2023
2859ec5
Migrate off deprecated methods
labkey-adam Nov 7, 2023
aa0ce0c
Eliminate old helpPopup() method and fix specimen actions
labkey-adam Nov 10, 2023
b39800c
fix inline event
labkey-matthewb Nov 10, 2023
4bf4498
Address specimen/study inline
labkey-adam Nov 13, 2023
2689bd2
Migrate Ext3 -> Ext4 to eliminate inline handlers
labkey-adam Nov 16, 2023
246146a
Use Ext4 locators
labkey-adam Nov 16, 2023
b8856e4
replace new HtmlView(String) with HtmlView.of()/unsafe()/err()
labkey-matthewb Dec 8, 2023
8a13385
HtmlStringBuilder
labkey-matthewb Dec 13, 2023
4bd6f11
remove usages of HtmlView(String,String)
labkey-matthewb Dec 18, 2023
5747b06
Allow studies to prevent new timepoint creation on data import.
labkey-klum Dec 29, 2023
0de8a30
Use correct file root when testing against embedded distribution
labkey-tchad Jan 18, 2024
6bee6f1
JavaScriptFragment.asJson()
labkey-matthewb Jan 27, 2024
ad7ec23
Tomcat 10 - Update namespace of Jakarta EE packages
labkey-tchad Feb 1, 2024
15af49f
replace deprecated text() with unsafe()
labkey-matthewb Feb 8, 2024
f9bace4
Add nonce and onMouseOver() option
labkey-adam Mar 9, 2024
cdea3dc
Add support for comments during edit actions
labkey-susanh Mar 11, 2024
0ae1499
AbDisc: Plate Set Worklist & Instrument Instructions
RosalineP Apr 30, 2024
2870757
Move unused pivot.jsp
labkey-matthewb May 3, 2024
4bd7e45
Migrate DbCache use to DatabaseCache
labkey-adam May 20, 2024
01d3800
Fix some DbCache-related test failures
labkey-adam May 24, 2024
2f706b4
Move more specimen code from study into specimen
labkey-adam May 24, 2024
1c528c4
Eliminate DbCache
labkey-adam May 28, 2024
557b2da
Move protein services to Protein module
labkey-adam Jun 4, 2024
290554e
class IteratorOfMapsDataIterator
labkey-matthewb Jun 27, 2024
e97102a
Clean up StudyCache and QueryHelper
labkey-adam Jul 10, 2024
4395aa2
excludeGuests() and excludeUsers() consistency
labkey-adam Jul 29, 2024
307a07c
Remove some obsolete embedded references
labkey-adam Sep 21, 2024
263702c
Use WritablePropertyMap
labkey-adam Oct 2, 2024
a64a22d
Escape the space in the study name.
labkey-danield Nov 5, 2024
4174e21
Mark modules that support both databases
labkey-adam Nov 18, 2024
7755eb1
Add ManageVersion property to all module.properties files
labkey-adam Jan 9, 2025
f598fa4
Ignore blank PrimaryTsvColumnName
labkey-matthewb Jan 15, 2025
5580dfd
Remove support for SampleMinded import
labkey-adam Mar 2, 2025
6ec6c82
Complete migration from srcURL and returnURL to returnUrl
labkey-jeckels Mar 5, 2025
cbf98a4
Update row index for notification email
labkey-tchad Mar 10, 2025
be15196
Introduce HtmlWriter and rewrite DataRegion to use it instead of Writer
labkey-adam Mar 12, 2025
4179976
DisplayColumn refactor
labkey-adam Mar 18, 2025
c6652ed
More File constructor conversions
labkey-klum Mar 21, 2025
bca70cb
Issue 52614: AssertionError deleting site group from its details page
labkey-jeckels Mar 25, 2025
432b0d7
Remove unused bulk properties classes
labkey-adam Mar 25, 2025
eb01665
Implement TransactionCache.getKeys()
labkey-adam Apr 2, 2025
08a81d8
Migrate more classes and methods to specimen module
labkey-adam Apr 2, 2025
705aa99
Remove unnecessary HttpView.currentView() casts in JSPs
labkey-adam Apr 7, 2025
9bda4eb
Remove support for ancillary studies
labkey-adam Apr 11, 2025
e987adc
Improve display element builders
labkey-adam Apr 13, 2025
3447183
Simplify and expand use of LinkBuilder factory methods
labkey-adam Apr 14, 2025
d44d264
Issue 52728: LKSM: Update from file with duplicate rows is only updat…
XingY Apr 22, 2025
6bcdfac
DatabaseIdentifier
labkey-matthewb May 1, 2025
154dbc9
Migrate to HtmlWriter
labkey-adam Jun 2, 2025
18110fe
Issue 52824: Don't mutate domains from the cache
labkey-susanh Jun 4, 2025
d60f971
Minor auto-refactor code cleanup on a massive scale
labkey-jeckels Jun 11, 2025
8a68fd6
Minor auto-refactor code cleanup on a massive scale
labkey-jeckels Jun 11, 2025
18287b2
Option to expose read-only specimen data without the module
labkey-adam Jun 25, 2025
4e7cc1c
Support BIGINT Primary Keys
labkey-matthewb Aug 14, 2025
b1c64d9
IntegerUtils class
labkey-matthewb Aug 19, 2025
9e5cedf
Consolidate XML parsing initialization, remove some casts
labkey-jeckels Aug 29, 2025
55a63b8
Backport: Consolidate XML parsing initialization, remove some casts
labkey-jeckels Aug 31, 2025
ec65fbd
Merge 25.7 to 25.9
labkey-teamcity Sep 1, 2025
404a002
Backport: Consolidate XML parsing initialization, remove some casts
labkey-jeckels Sep 1, 2025
59b5a21
Backport: Consolidate XML parsing initialization, remove some casts
labkey-jeckels Sep 1, 2025
29e7141
Merge 25.8 to develop
labkey-teamcity Sep 3, 2025
ad74641
Merge 25.9 to develop
labkey-teamcity Sep 3, 2025
e991211
Merge 25.3 to 25.7
cnathe Sep 4, 2025
d22df1e
Attempt to improve code analysis w/ Pair->record
labkey-jeckels Sep 5, 2025
d92e63a
Merge 25.7 to 25.9
labkey-teamcity Sep 9, 2025
d836b83
Merge 25.9 to develop
labkey-teamcity Sep 10, 2025
4f87cd0
Update tests to stop using controller-first URLs
labkey-tchad Sep 11, 2025
b677f6b
Fix the specimen controller name in SpecimenGridExportTest
labkey-tchad Sep 12, 2025
59659a4
Update Amounts and Units for better sorting and filtering behavior
labkey-susanh Sep 15, 2025
a59c9f0
Test updates to escape special characters in form field names
labkey-nicka Sep 16, 2025
a479eab
Remove deprecated methods from SQLFragment
labkey-jeckels Sep 29, 2025
e5628dd
Return Set<Class<?>> from Module "get test" methods
labkey-adam Oct 3, 2025
2a22521
Add explicit permissions to GitHub workflows
labkey-tchad Oct 6, 2025
b23a858
Replace AbstractContainerListener with ContainerListener default
labkey-nicka Oct 29, 2025
0e9ba9a
Adopt FileLike for more pipeline APIs
labkey-jeckels Nov 5, 2025
70d1699
Rework attachment handling during database migrations
labkey-adam Nov 12, 2025
eec3439
Merge 25.11 to develop
labkey-teamcity Nov 12, 2025
f6ecabc
Remove all support for legacy audit union table
labkey-adam Dec 1, 2025
f3f36cc
Continue adopting FileLike instead of File or Path
labkey-jeckels Dec 3, 2025
24ee19e
Add and populate core.Documents.ParentType column
labkey-adam Dec 4, 2025
3641128
Write file paths, etc.
labkey-adam Dec 10, 2025
dc74f9b
Merge 25.11 to 25.12
labkey-teamcity Dec 16, 2025
32730db
Merge 25.12 to develop
labkey-teamcity Dec 17, 2025
0111424
Join core.Documents rows to parent details
labkey-adam Jan 16, 2026
2721a1d
Stop passing SecurityPolicy parameter to Role.isApplicable()
labkey-adam Mar 23, 2026
ff02bb4
Move query-based specimen import to Specimen module
labkey-adam Mar 23, 2026
04db319
Triggers: support managing columns for data iteration
labkey-nicka Apr 17, 2026
f86bc45
Auto-refactor assorted Java lint
labkey-jeckels May 12, 2026
38fc59c
Auto-refactor assorted Java lint
labkey-jeckels May 12, 2026
207a80a
Update copyrights and licenses
labkey-adam May 27, 2026
8814729
GitHub Issue 1188: Stop JDBC caching by default in QueryService
labkey-jeckels Jun 1, 2026
328799c
Update copyrights and licenses
labkey-adam Jun 2, 2026
c4c3979
Specimen module cleanup
labkey-jeckels Jun 9, 2026
4530b79
Improve scoping checks for objects
labkey-jeckels Jun 11, 2026
324e3ab
Merge 25.7 to 25.11
labkey-tchad Jun 12, 2026
65e4fbb
Merge 25.11 to 26.3
labkey-tchad Jun 15, 2026
3313ffc
Merge 26.3 to 26.6
labkey-tchad Jun 16, 2026
3dc5ac9
Modernize specimen, report, and messages rendering
labkey-adam Jun 16, 2026
d36f7be
Improve scoping checks for objects, round 2
labkey-jeckels Jun 16, 2026
9b8d964
Merge 26.6 to develop
labkey-tchad Jun 17, 2026
bd1683c
Container scoping for miscellaneous server objects
labkey-klum Jun 18, 2026
a292ada
Container scoping test automation
labkey-klum Jun 18, 2026
5956fd9
Merge 25.7 to 25.11
labkey-tchad Jun 19, 2026
1ba5301
Merge 25.7 to 25.11
labkey-tchad Jun 19, 2026
f9c830e
Merge 25.11 to 26.3
labkey-tchad Jun 20, 2026
bb0429d
Merge 26.3 to 26.6
labkey-teamcity Jun 21, 2026
6dc8b22
Merge 26.3 to 26.6
labkey-tchad Jun 21, 2026
915c411
Merge 26.6 to develop
labkey-tchad Jun 22, 2026
7e38e87
Add some specimen API tests
labkey-adam Jun 23, 2026
df4fff8
Add some specimen API tests
labkey-adam Jun 23, 2026
16205a3
Minor clean ups
labkey-adam Jul 29, 2026
e3b01ca
Move specimen permissions into specimen module
labkey-adam Jul 30, 2026
ee4f3f6
Remove SQL Server upgrade scripts and code
labkey-jeckels Aug 23, 2026
e9df4fb
Pass containers into ExperimentService methods
labkey-adam Sep 25, 2026
41e2629
Move specimen tests to module test tree
labkey-tchad Sep 25, 2026
37062c0
Move specimen tests to specimen module
labkey-tchad Sep 25, 2026
f3261f3
Move specimen module to customModules repository
labkey-tchad Sep 25, 2026
0b24de4
Move specimen tests to customModules repository
labkey-tchad Sep 25, 2026
8983de7
Fix line endings
labkey-tchad Sep 29, 2026
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
27 changes: 27 additions & 0 deletions specimen/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
/*
* Copyright (c) 2021-2026 LabKey Corporation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import org.labkey.gradle.util.BuildUtils

plugins {
id 'org.labkey.build.module'
}

dependencies {
BuildUtils.addLabKeyDependency(project: project, config: "implementation", depProjectPath: BuildUtils.getPlatformModuleProjectPath(project.gradle, "study"), depProjectConfig: "apiJarFile")
BuildUtils.addLabKeyDependency(project: project, config: "jspImplementation", depProjectPath: BuildUtils.getPlatformModuleProjectPath(project.gradle, "study"), depProjectConfig: "apiJarFile")

BuildUtils.addLabKeyDependency(project: project, config: "modules", depProjectPath: BuildUtils.getPlatformModuleProjectPath(project.gradle, "study"), depProjectConfig: "published", depExtension: "module")
}
8 changes: 8 additions & 0 deletions specimen/module.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
ModuleClass: org.labkey.specimen.SpecimenModule
Label: Legacy specimen tracking system
Description: A system for tracking specimens as part of a study. \
This system has been deprecated, replaced by LabKey Sample Manager.
URL: https://www.labkey.com/products-services/sample-management-software/
License: Apache 2.0
LicenseURL: http://www.apache.org/licenses/LICENSE-2.0
ManageVersion: true
201 changes: 201 additions & 0 deletions specimen/schemas/specimens.xsd
Original file line number Diff line number Diff line change
@@ -0,0 +1,201 @@
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:sec="http://labkey.org/security/xml"
xmlns="http://labkey.org/study/xml"
targetNamespace="http://labkey.org/study/xml"
attributeFormDefault="unqualified"
elementFormDefault="qualified">

<xs:import namespace="http://labkey.org/study/xml" schemaLocation="../../api/schemas/study.xsd"/>
<xs:import namespace="http://labkey.org/security/xml" schemaLocation="../../api/schemas/security.xsd"/>

<xs:element name="specimens" type="specimenSettingsType">
<xs:annotation>
<xs:documentation>
Provides information on the files that describe the specimens in the study.
</xs:documentation>
</xs:annotation>
</xs:element>

<xs:complexType name="specimenSettingsType">
<xs:sequence>
<xs:element name="webPartGroupings" minOccurs="0">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="grouping">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="groupBy" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="locationTypes" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="repository" type="locationTypeType" minOccurs="0" maxOccurs="1"/>
<xs:element name="clinic" type="locationTypeType" minOccurs="0" maxOccurs="1"/>
<xs:element name="siteAffiliatedLab" type="locationTypeType" minOccurs="0" maxOccurs="1"/>
<xs:element name="endpointLab" type="locationTypeType" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="requestStatuses" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="status" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="label" type="xs:string"/>
<xs:attribute name="finalState" type="xs:boolean"/>
<xs:attribute name="lockSpecimens" type="xs:boolean"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="multipleSearch" type="xs:boolean" />
</xs:complexType>
</xs:element>
<xs:element name="requestActors" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="actor" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="groups" type="sec:groupsType" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="label" type="xs:string"/>
<xs:attribute name="type">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="study"/>
<xs:enumeration value="location"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="defaultRequirements" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="originatingLab" type="defaultRequirementsType" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="providingLab" type="defaultRequirementsType" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="receivingLab" type="defaultRequirementsType" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="general" type="defaultRequirementsType" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="displaySettings" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="commentsAndQC" minOccurs="0">
<xs:complexType>
<xs:attribute name="defaultToCommentsMode" type="xs:boolean"/>
<xs:attribute name="enableManualQCFlagging" type="xs:boolean"/>
</xs:complexType>
</xs:element>
<xs:element name="lowSpecimenWarnings" minOccurs="0">
<xs:complexType>
<xs:attribute name="lastVial" type="xs:string"/>
<xs:attribute name="zeroVials" type="xs:string"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="requestForms" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="form" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="title" type="xs:string" minOccurs="0"/>
<xs:element name="helpText" type="xs:string" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="multiLine" type="xs:boolean"/>
<xs:attribute name="required" type="xs:boolean"/>
<xs:attribute name="rememberSiteValue" type="xs:boolean"/>
<xs:attribute name="displayOrder" type="xs:int"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="notifications" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="replyTo" type="xs:string" minOccurs="0"/>
<xs:element name="cc" type="xs:string" minOccurs="0"/>
<xs:element name="subjectSuffix" type="xs:string" minOccurs="0"/>
<xs:element name="newRequestNotify" type="xs:string" minOccurs="0"/>
<xs:element name="defaultEmailNotify" type="xs:string" minOccurs="0"/>
<xs:element name="specimensAttachment" type="xs:string" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="ccCheckbox" type="xs:boolean"/>
<xs:attribute name="newRequestNotifyCheckbox" type="xs:boolean"/>
</xs:complexType>
</xs:element>
<xs:element name="requestabilityRules" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="rule" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="type" type="xs:string"/>
<xs:attribute name="ruleData" type="xs:string"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="repositoryType" type="specimenRepositoryType">
<xs:annotation>
<xs:documentation xmlns="http://www.w3.org/1999/xhtml">
Indicates the type of repository.
See <a href="https://www.labkey.org/Documentation/wiki-page.view?name=manageSpecimens" target="_top">Manage Specimens</a>.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="enableRequests" type="xs:boolean">
<xs:annotation>
<xs:documentation>True if specimens can be requested in this repository.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="editableRepository" type="xs:boolean">
<xs:annotation>
<xs:documentation>True if specimens can be edited directly.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>

<xs:complexType name="locationTypeType">
<xs:attribute name="allowRequests" type="xs:boolean">
<xs:annotation>
<xs:documentation>True if specimen requests are allowed from this location type.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>

<xs:complexType name="defaultRequirementsType">
<xs:sequence>
<xs:element name="requirement" type="defaultRequirementType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>

<xs:complexType name="defaultRequirementType">
<xs:sequence>
<xs:element name="description" type="xs:string"/>
</xs:sequence>
<xs:attribute name="actor" type="xs:string"/>
</xs:complexType>

<xs:simpleType name="specimenRepositoryType">
<xs:restriction base="xs:string">
<xs:enumeration value="STANDARD"/>
<xs:enumeration value="ADVANCED"/>
</xs:restriction>
</xs:simpleType>

</xs:schema>
54 changes: 54 additions & 0 deletions specimen/src/org/labkey/specimen/AmbiguousLocationException.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
/*
* Copyright (c) 2021-2026 LabKey Corporation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.labkey.specimen;

import org.labkey.api.data.Container;
import org.labkey.api.specimen.location.LocationImpl;
import org.labkey.api.specimen.location.LocationManager;

import java.util.Collection;

public class AmbiguousLocationException extends Exception
{
private final Container _container;
private final Collection<Integer> _possibleLocationIds;

private LocationImpl[] _possibleLocations = null;

public AmbiguousLocationException(Container container, Collection<Integer> possibleLocationIds)
{
_container = container;
_possibleLocationIds = possibleLocationIds;
}

public Collection<Integer> getPossibleLocationIds()
{
return _possibleLocationIds;
}

public LocationImpl[] getPossibleLocations()
{
if (_possibleLocations == null)
{
_possibleLocations = new LocationImpl[_possibleLocationIds.size()];
int idx = 0;

for (Integer id : _possibleLocationIds)
_possibleLocations[idx++] = LocationManager.get().getLocation(_container, id.intValue());
}
return _possibleLocations;
}
}
43 changes: 43 additions & 0 deletions specimen/src/org/labkey/specimen/RequestEventType.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
/*
* Copyright (c) 2021-2026 LabKey Corporation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.labkey.specimen;

public enum RequestEventType
{
REQUEST_CREATED("Request Created"),
REQUEST_STATUS_CHANGED("Request Status Changed"),
REQUIREMENT_ADDED("Requirement Created"),
REQUIREMENT_REMOVED("Requirement Removed"),
REQUIREMENT_UPDATED("Requirement Updated"),
REQUEST_UPDATED("Request Updated"),
SPECIMEN_ADDED("Specimen Added"),
SPECIMEN_REMOVED("Specimen Removed"),
SPECIMEN_LIST_GENERATED("Specimen List Generated"),
COMMENT_ADDED("Comment/Attachment(s) Added"),
NOTIFICATION_SENT("Notification Sent");

private final String _displayText;

RequestEventType(String displayText)
{
_displayText = displayText;
}

public String getDisplayText()
{
return _displayText;
}
}
Loading
Loading