Skip to content

Comments

Update Openspecimen to 6.3RC8#1

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

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

Conversation

@ChristianMUG
Copy link

Getting the newest branch from openspecimen

Removed the extra "\n" that is added when both the comments and reason fields are empty.
Added support for export user profile form records as well.
order, container, shipment related specimens tab.
… API interaction object.

These variables can be used to specify the field on which the list should be sorted
and sort direction - asc or desc
… selected or not,

display CP custom fields when the "Collection Protocol" form is selected for adding filter.
Used when one or more specimens are used to create a pooled specimen.
Users can ...

1) configure the list of services offered by the biobank/lab for the
collection protocol/study.

2) Configure the rates (service charges) for each offered service
along with the period of its applicability. This means a service can have
different rates at different times.

3) Configure a list of services offered, by default, for each anticipated
specimen.

4) Add/edit/remove/list (a.k.a track) the services performed on individual
specimens.

5) Query and generate the CSV for services offered in a given time period
and charges.
It appears Oracle doesn't like it. MySQL has no problems with it.
…ion session...

This ensures the auth token is refreshed and the app is re-initialised...
Convenience function to navigate to the required view and reload the UI app.
…cify

the floating-point based range for all number filters...
…lts view

to navigate to the relevant CP overview page.
The problem was - the form designer was a separate standalone VueJS based
UI module. It had its own set of reusable components like toasts among
others. When it was merged with the new VueJS based OpenSpecimen UI,
the toasts hook was not removed. As a result, the same error message
appeared twice.
…dating

forms via JSON based input payment or XML based file import.

This ensures the same access control rules are applied in both the cases.
until a deletion confirmation is received from the backend / API.
1) When no files are selected or validation fails and
2) the file is uploaded asynchronously to the server
when the message is processed successfully.
listing of containers based on the restrictions on the leaf node containers.

Used virtual columns to auto compute free spaces in the container.
500 storage container objects in-memory irrespective of the depth and width
of the container tree/hierarchy.
…m both

container and specimen perspective.

Earlier the API was clearing the position only from the container perspective.
This was causing the position to be resaved by the specimen resulting in
stale update error.
Supports 2 OAuth workflows:

1. Client Credentials Flow: The client obtains JWT by authenticating itself
with the OAuth provider (without involving OpenSpecimen) and then uses
the JWT as a Bearer token for subsequent communication with OpenSpecimen
(invoking APIs).

2. Authorization Code Flow using PKCE: In this case, OpenSpecimen
redirects (human) users to the respective OAuth providers in order to
get consents for sharing their account details (openid) for accessing
OpenSpecimen resources and APIs.

3. JWT Validation: OpenSpecimen validates and resolves the JWT to
a valid user.

The validation involves ensuring the token is:
  3.1: Issued by an OAuth provider registered with OpenSpecimen
  3.2: Not expired
  3.3: Intended for accessing OpenSpecimen

The public keys required for verification of the JWT signature are
fetched from the respective OAuth providers at periodic intervals
and cached in-memory.

The resolution includes mapping the received subject claims to the
user record in OpenSpecimen database by performing lookup on the
login_name attribute.

Tested the implementations using Auth0 and Google OAuth providers.

TODO: Okta and Azure AD.
commit 88a6881
Author: Vinayak Pawar <vinayakapawar@gmail.com>
Date:   Sat Jan 24 17:12:10 2026 +0530

    Invalidate any active (servlet) session and delete all cookies on user logout or session timeout/expiry.
to facilitate faster cancellation of the reservations.

A side effect of this is only the required positions are locked, which helps
in performing concurrent actions on other positions.
to facilitate faster cancellation of the reservations.

A side effect of this is only the required positions are locked, which helps
in performing concurrent actions on other positions.
of CPR visits instead of using the session cached CPR object's visits list.

The visits list is required to find the relevant visit to use for updating
and creating specimens underneath it.
…r a given session) in cache.

This ensures last API call time is used to determine whether the session is active or not.
… not

appear in the dropdown of other rows of the sub-form.

DP add/edit UI fixes
1. Institute is made mandatory
2. Selected institute does not appear in institute dropdown of
   other distributing sites row
3. Filter the distributing sites by the selected institute.

Participant add/edit UI fixes
1. Selected MRN site does not appear in site dropdown of other
   MRNs

To use this filtering capability, the field configuration should
include the following attribute

 "unique": "cpr.participant.pmis.siteName"
update the token access time without a token will result in NPE.

Fixed the API filter to by pass updating the token access time when
no token is present.
1) Participant, Visit, and Specimen overview/detail, edit page header - left and right titles
2) Specimen description
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