Skip to content

Update Openspecimen to 6.3RC8#1

Open
ChristianMUG wants to merge 3336 commits intobibbox:masterfrom
krishagni:master
Open

Update Openspecimen to 6.3RC8#1
ChristianMUG wants to merge 3336 commits intobibbox:masterfrom
krishagni:master

Conversation

@ChristianMUG
Copy link
Copy Markdown

Getting the newest branch from openspecimen

… the picked list.

Useful for users whose specimens are not barcoded or deprived of scanners.
2) The cart association allows users to create / manage request based pick lists
…ser experience

(Refactoring / redoing of the workflow)
Eliminates full table scans when generating unique IDs such as
PPIDs, visit names, specimen labels, container names etc
…le limit (default 100)

specimens, the add/edit UI no longer displays the specimen list.

Instead, users can download the shipment as a CSV, make updates, and re-import the file.
Added the missing i18n translation for order and shipment specimens limit.
…based on the screen sizes.

For bigger screens (>= 1200px): Use 80% of the viewport width and 10% margin on either side
For small and medium screens (< 1200px): Use 90% of the viewport width and 5% margin on either side
…g off-peak hours.

1. Added a configuration parameter - Online Import Records Limit, which defines
   the maximum number of records that can be imported instantly by online jobs.
   Any job exceeding this limit will be queued for off-peak execution.

2. Implemented a scheduled job that runs during off-peak hours to process and
   execute queued jobs.
…utton

This allows the host view to place the refresh button where it fits best and
invoke the component method directly.
Truncating with ellipsis and showing a tooltip on hover works on desktops,
but fails on handheld devices that lack a mouse. Wrapping ensures the text
remains accessible across all devices.
…nual pages instead of via help.openspecimen.org

Earlier users were navigated to help.openspecimen.org, which redirected them
further to the relevant confluence pages
…r optimisations...

(Optimisations will be enabled later... For now getting the platform ready to jump to ...)
which URL placeholders map to the function arguments/parameters.
Replaced row-based field alignment with a column-based layout.

Fields populate the first column, then move to the second and
third, ensuring better organisation for dense data sets.

(A.k.a - newspaper layout for improved readability)
inserts after Hibernate 7 migration.

Positions are persisted via the container side of the relationship.
…lity

Updated permitAll() endpoints to use explicit, absolute paths.

Spring 7.x has removed support for lenient path matching
(That is, suffix matching and certain Ant-style wildcards).

Updated
- /forgot-password to /users/forgot-password
- /reset-password to /users/reset-password
- /sign-up to /users/sign-up
… management

Problem: AbstractDao.saveOrUpdate is restricted to Identifiable types.
The Lock entity (used by Audit Service) lacks this interface, causing a type
mismatch error inspite of being a valid persistent entity.

Solution:
- Added save and update methods in Dao/AbstractDao to allow persistence of
  non-Identifiable entities.

- Updated AuditService to use save() to acquire locks and update() for releasing
  locks after retrieval.

This helps resolve the audit API crash while maintaining the legacy saveOrUpdate
logic for other existing service flows.
Binding between URL placeholders and method parameters is now explicit.

This addresses issues where Spring no longer discovers parameter names
via reflection/debug symbols, a common requirement in Spring 7.x and
Java 17+ envs.
…in Raise Query dialog

Problem: The fields dropdown was appearing empty because the collection & received
events are removed. This resulted in breaking of the data source for rendering the
UI dropdown component.

Solution: Updated the plugin hook properties to pass the collection & received event
dictionaries. This allows the Raise Query dialog to correctly resolve and render the
available fields.
…tion of

positions and enforced slot uniqueness

1) Reduced memory footprint by avoiding eager materialisation of occupiedPositions
   using cached ordinals.

2) Switched add/remove position ops to direct DB writes and also keeping ordinals
   cache in sync.

3) Added queries for occupied ordinals, specific position lookup, reservation lookup,
   and capacity checks.

4) Reworked block/unblock APIs to operate on in‑memory positions for correct bulk
   location updates.

5) Updated empty‑positions report to use cached ordinals instead of full position
   entities.

6) Enforced unique slot occupancy with DB constraints.

7) Refined assignPositions API to use two‑pass vacate/assign with flush, while
   ensuring a single transfer event per specimen by reusing SpecimenTransferEvent.
…session

to ensure the database does not see multiple entries for the same position.
…re insert to

avoid unique constraint conflicts

checkout -> vacate the container from its current position and then add a
position blocked for the container.

checkin -> vacate the blocked position and then add a position that the
container occupies.
…imaging.

The following config properties are disabled:
1) query / default_result_view
2) biospecimen / imaging
3) biospecimen / image_url_tmpl
…imaging.

The following config properties are disabled:
1) query / default_result_view
2) biospecimen / imaging
3) biospecimen / image_url_tmpl
Scenarios handled:

1) For unauthenticated users opening a copy-pasted deep UI link,
   redirect to login first, then back to the requested view after
   successful login (including SAML flows).

2) For unauthenticated users opening the app root/regular login page,
   redirect to Home after successful login.

3) For users logged out due to session timeout, always redirect to
   Home page after successful login (do not restore the previous route).

Previously, users were often redirected to the view they had before
logout, which caused confusion and appeared inconsistent.
Scenarios handled:

1) For unauthenticated users opening a copy-pasted deep UI link,
   redirect to login first, then back to the requested view after
   successful login (including SAML flows).

2) For unauthenticated users opening the app root/regular login page,
   redirect to Home after successful login.

3) For users logged out due to session timeout, always redirect to
   Home page after successful login (do not restore the previous route).

Previously, users were often redirected to the view they had before
logout, which caused confusion and appeared inconsistent.
Convert the current date selected via the Today link to yyyy-MM-dd when the dateOnly flag is enabled.

Normalise both regular date selection and Today selection to use the same conversion path.
Binding between URL placeholders and method parameters is now explicit.
…s in bulk import

Problem: The bulk import form (in context of all CPs) was not rendering the record type
dropdown for regular users. This was because the UI failed to construct the accessible
entityTypes parameter to the forms API, causing the request to fail.

Solution: Updated the bulk import UI to correctly construct the accessible entityTypes
list and include it in the backend API call.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants