Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for Multiple component analysis #2120

Draft
wants to merge 112 commits into
base: 2.x
Choose a base branch
from
Draft

Support for Multiple component analysis #2120

wants to merge 112 commits into from

Conversation

xispa
Copy link
Member

@xispa xispa commented Sep 4, 2022

Description of the issue/feature this PR addresses

This Pull Request adds the Multiple Component analysis. Spectroscopic methods are common analytical methods for which multiple component analysis is used, like are Atomic Absorption Spectroscopy (AAS), Inductively Coupled Plasma Spectroscopy (ICP) or Ultraviolet and Visible (UV). Basically, the concentration of individual components/analytes is detected simultaneously, with a single analyzer.

Creation of an Multicomponent Analysis Service:

Captura de 2022-09-04 12-36-32

Selection of analytes on Sample creation:

Captura de 2022-09-04 21-46-15

Multicomponent analyses in worksheet:

Captura de 2022-09-04 12-36-47

Multicomponent analyses in sample:

Captura de 2022-09-04 12-37-38

Current behavior before PR

SENAITE does not support multi-component analysis. Lab is forced to create an individual Analysis Service for every analyte/component

Desired behavior after PR is merged

SENAITE does support multi-component analysis. Analytes can be defined as components of a single Analysis Service

--
I confirm I have tested this PR thoroughly and coded it according to PEP8
and Plone's Python styleguide standards.

xispa and others added 26 commits January 4, 2023 16:28
```
Traceback (innermost last):
  Module ZPublisher.WSGIPublisher, line 176, in transaction_pubevents
  Module ZPublisher.WSGIPublisher, line 385, in publish_module
  Module ZPublisher.WSGIPublisher, line 288, in publish
  Module ZPublisher.mapply, line 85, in mapply
  Module ZPublisher.WSGIPublisher, line 63, in call_object
  Module senaite.app.listing.view, line 236, in __call__
  Module senaite.app.listing.ajax, line 112, in handle_subpath
  Module senaite.core.decorators, line 22, in decorator
  Module senaite.app.listing.decorators, line 63, in wrapper
  Module senaite.app.listing.decorators, line 50, in wrapper
  Module senaite.app.listing.decorators, line 100, in wrapper
  Module senaite.app.listing.ajax, line 533, in ajax_transitions
  Module senaite.app.listing.ajax, line 225, in get_allowed_transitions_for
  Module senaite.app.listing.ajax, line 186, in get_transitions_for
  Module bika.lims.api, line 1076, in get_transitions_for
  Module Products.CMFPlone.WorkflowTool, line 107, in getTransitionsFor
  Module Products.DCWorkflow.DCWorkflow, line 395, in _checkTransitionGuard
  Module Products.DCWorkflow.Guard, line 93, in check
  Module Products.CMFCore.Expression, line 53, in __call__
  Module Products.PageTemplates.ZRPythonExpr, line 49, in __call__
   - __traceback_info__: here.guard_handler("verify")
  Module PythonExpr, line 1, in <module>
  Module Products.CMFCore.FSPythonScript, line 134, in __call__
  Module Shared.DC.Scripts.Bindings, line 335, in __call__
  Module Shared.DC.Scripts.Bindings, line 372, in _bindAndExec
  Module Products.PythonScripts.PythonScript, line 349, in _exec
  Module script, line 2, in guard_handler
   - <FSPythonScript at /senaite/guard_handler used for /senaite/clients/client-19/23AA047/ICP>
   - Line 2
  Module bika.lims.workflow, line 370, in guard_handler
  Module bika.lims.workflow.analysis.guards, line 83, in decorator
  Module bika.lims.workflow.analysis.guards, line 292, in guard_verify
  Module bika.lims.workflow.analysis.guards, line 547, in is_verified_or_verifiable
  Module bika.lims.workflow.analysis.guards, line 494, in is_transition_allowed
  Module bika.lims.workflow.analysis.guards, line 496, in is_transition_allowed
  Module plone.memoize.volatile, line 74, in replacement
  Module bika.lims.workflow.analysis.guards, line 527, in cached_is_transition_allowed
  Module bika.lims.workflow, line 233, in isTransitionAllowed
  Module Products.DCWorkflow.DCWorkflow, line 256, in isActionSupported
  Module Products.DCWorkflow.DCWorkflow, line 395, in _checkTransitionGuard
  ...
  Module Products.DCWorkflow.Guard, line 93, in check
  Module Products.CMFCore.Expression, line 53, in __call__
  Module Products.PageTemplates.ZRPythonExpr, line 49, in __call__
   - __traceback_info__: here.guard_handler("verify")
RuntimeError: maximum recursion depth exceeded in cmp
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging this pull request may close these issues.

2 participants