Пример #1
0
from zope.interface import implements
from Products.Archetypes import atapi
from Products.Archetypes.public import BaseContent
from bika.lims.interfaces import IMultifile
from bika.lims.content.bikaschema import BikaSchema
from bika.lims import bikaMessageFactory as _
from bika.lims import config


schema = BikaSchema.copy() + atapi.Schema(
    (
        atapi.StringField(
            "DocumentID",
            required=1,
            validators=("uniquefieldvalidator",),
            widget=atapi.StringWidget(label=_("Document ID")),
        ),
        atapi.FileField(
            "File", required=1, widget=atapi.FileWidget(label=_("Document"), description=_("File upload "))
        ),
        atapi.StringField("DocumentVersion", widget=atapi.StringWidget(label=_("Document Version"))),
        atapi.StringField(
            "DocumentLocation",
            widget=atapi.StringWidget(
                label=_("Document Location"), description=_("Location where the document set is shelved")
            ),
        ),
        atapi.StringField(
            "DocumentType",
            required=1,
            widget=atapi.StringWidget(
Пример #2
0
                 ),
             ),
         ),
         ComputedField(
             "SampleTypeTitle",
             expression="context.getSampleType() and context.getSampleType().Title() or ''",
             widget=ComputedWidget(visible=False),
         ),
         ComputedField(
             "SampleTypeUID",
             expression="context.getSampleType() and context.getSampleType().UID() or ''",
             widget=ComputedWidget(visible=False),
         ),
     )
 )
 + BikaSchema.copy()
 + Schema(
     (
         RecordsField(
             "ResultsRange",
             schemata=PMF("Reference Results"),
             required=1,
             type="analysisspec",
             subfields=("keyword", "min", "max", "error"),
             required_subfields=("keyword", "min", "max", "error"),
             subfield_labels={
                 "keyword": _("Analysis Service"),
                 "min": _("Min"),
                 "max": _("Max"),
                 "error": _("% Error"),
             },
Пример #3
0
from Products.Archetypes.public import FileWidget
from Products.Archetypes.public import LinesField
from Products.Archetypes.public import MultiSelectionWidget
from Products.Archetypes.public import Schema
from Products.Archetypes.public import SelectionWidget
from Products.Archetypes.public import StringField
from Products.Archetypes.public import StringWidget
from Products.Archetypes.public import TextAreaWidget
from Products.Archetypes.public import TextField
from Products.Archetypes.public import registerType
from Products.Archetypes.utils import DisplayList
from Products.CMFCore.utils import getToolByName
from zope.interface import implements


schema = BikaSchema.copy() + Schema((

    # Method ID should be unique, specified on MethodSchemaModifier
    StringField(
        "MethodID",
        searchable=1,
        required=0,
        validators=("uniquefieldvalidator",),
        widget=StringWidget(
            visible={"view": "visible", "edit": "visible"},
            label=_("Method ID"),
            description=_("Define an identifier code for the method. "
                          "It must be unique."),
        ),
    ),
Пример #4
0
    ComputedField(
        'SampleTypeTitle',
        expression="context.getSampleType().Title() if context.getSampleType() else ''",
        widget=ComputedWidget(
            visible=False,
        ),
    ),

    ComputedField(
        'SampleTypeUID',
        expression="context.getSampleType().UID() if context.getSampleType() else ''",
        widget=ComputedWidget(
            visible=False,
        ),
    ),
)) + BikaSchema.copy() + Schema((

    RecordsField(
        'ResultsRange',
        # schemata = 'Specifications',
        required=1,
        type='resultsrange',
        subfields=(
            'keyword',
            'min',
            'max',
            'error',
            'hidemin',
            'hidemax',
            'rangecomment'
        ),
Пример #5
0
# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Copyright 2018-2020 by it's authors.
# Some rights reserved, see README and LICENSE.

from AccessControl import ClassSecurityInfo
from bika.lims import bikaMessageFactory as _b
from bika.health import bikaMessageFactory as _
from bika.lims.browser.widgets import RecordsWidget
from bika.lims.content.bikaschema import BikaSchema
from bika.health.config import PROJECTNAME
from Products.Archetypes.public import *
from Products.ATExtensions.ateapi import RecordsField
from zope.interface import implements

schema = BikaSchema.copy() + Schema((RecordsField(
    'AetiologicAgentSubtypes',
    type='aetiologicagentsubtypes',
    subfields=('Subtype', 'SubtypeRemarks'),
    subfield_labels={
        'Subtype': _('Subtype'),
        'SubtypeRemarks': _('Remarks')
    },
    subfield_sizes={
        'Subtype': 10,
        'SubtypeRemarks': 25
    },
    widget=RecordsWidget(
        label='Subtypes',
        description=_("A list of aetiologic agent subtypes."),
        visible=True,
Пример #6
0
from AccessControl import ClassSecurityInfo
from Products.Archetypes.public import *
from Products.CMFCore.permissions import View, ModifyPortalContent
from bika.lims import bikaMessageFactory as _
from bika.lims.utils import t
from bika.lims.config import PROJECTNAME
from bika.lims.content.bikaschema import BikaSchema
from bika.lims.interfaces import IManufacturer
from zope.interface import implements

schema = BikaSchema.copy()

schema['description'].schemata = 'default'
schema['description'].widget.visible = True

class Manufacturer(BaseContent):
    implements(IManufacturer)
    security = ClassSecurityInfo()
    displayContentsTab = False
    schema = schema

    _at_rename_after_creation = True
    def _renameAfterCreation(self, check_auto_id=False):
        from bika.lims.idserver import renameAfterCreation
        renameAfterCreation(self)

registerType(Manufacturer, PROJECTNAME)
Пример #7
0
from bika.lims.browser.widgets import RecordsWidget

# bika.lims imports
from bika.lims import api
from bika.lims import logger
from bika.lims.utils import t
from bika.lims.utils import to_utf8
from bika.lims.config import PROJECTNAME
from bika.lims.exportimport import instruments
from bika.lims.interfaces import IInstrument, IDeactivable
from bika.lims.config import QCANALYSIS_TYPES
from bika.lims.content.bikaschema import BikaSchema
from bika.lims.content.bikaschema import BikaFolderSchema
from bika.lims import bikaMessageFactory as _

schema = BikaFolderSchema.copy() + BikaSchema.copy() + Schema((
    ReferenceField(
        'InstrumentType',
        vocabulary='getInstrumentTypes',
        allowed_types=('InstrumentType', ),
        relationship='InstrumentInstrumentType',
        required=1,
        widget=SelectionWidget(format='select',
                               label=_("Instrument type"),
                               visible={
                                   'view': 'invisible',
                                   'edit': 'visible'
                               }),
    ),
    ReferenceField(
        'Manufacturer',
Пример #8
0
from bika.lims import bikaMessageFactory as _
from bika.lims.utils import t
from bika.lims.browser.fields import HistoryAwareReferenceField
from bika.lims.browser.widgets import DateTimeWidget
from bika.lims.browser.widgets import RecordsWidget
from bika.lims.config import PROJECTNAME
from bika.lims.content.bikaschema import BikaSchema, BikaFolderSchema
from bika.lims.interfaces import IInstrument
from bika.lims.utils import to_utf8
from plone.app.folder.folder import ATFolder
from zope.interface import implements
from datetime import date
from DateTime import DateTime
from bika.lims.config import QCANALYSIS_TYPES

schema = BikaFolderSchema.copy() + BikaSchema.copy() + Schema((

    ReferenceField('InstrumentType',
        vocabulary='getInstrumentTypes',
        allowed_types=('InstrumentType',),
        relationship='InstrumentInstrumentType',
        required=1,
        widget=SelectionWidget(
            format='select',
            label=_("Instrument type"),
        ),
    ),

    ReferenceField('Manufacturer',
        vocabulary='getManufacturers',
        allowed_types=('Manufacturer',),
Пример #9
0
# This file is part of Bika LIMS
#
# Copyright 2011-2017 by it's authors.
# Some rights reserved. See LICENSE.txt, AUTHORS.txt.

from AccessControl import ClassSecurityInfo
from bika.lims import bikaMessageFactory as _
from bika.lims.utils import t
from bika.lims.config import PROJECTNAME
from bika.lims.interfaces import ISubGroup
from bika.lims.content.bikaschema import BikaSchema
from bika.lims.fields import *
from Products.Archetypes.public import *
from zope.interface import implements

schema = BikaSchema.copy() + Schema((ExtStringField(
    'SortKey',
    widget=StringWidget(
        label=_("Sort Key"),
        description=_("Subgroups are sorted with this key in group views"))),
                                     ))
schema['description'].widget.visible = True
schema['description'].schemata = 'default'


class SubGroup(BaseContent):
    implements(ISubGroup)
    security = ClassSecurityInfo()
    displayContentsTab = False
    schema = schema
Пример #10
0
from AccessControl import ClassSecurityInfo
from bika.lims.content.bikaschema import BikaSchema
from bika.lims.fields import *
from bika.wine.config import PROJECTNAME
from bika.wine.interfaces import IRegion
from Products.Archetypes.public import *
from zope.interface import implements

schema = BikaSchema.copy() + Schema((ComputedField(
    'Name',
    expression="context.aq_parent.Title() + ' - ' + context.Title()",
    widget=ComputedWidget(visible=False),
), ))
schema['description'].widget.visible = True
schema['description'].schemata = 'default'


class Region(BaseContent):
    implements(IRegion)
    security = ClassSecurityInfo()
    displayContentsTab = False
    schema = schema

    _at_rename_after_creation = True

    def _renameAfterCreation(self, check_auto_id=False):
        from bika.lims.idserver import renameAfterCreation
        renameAfterCreation(self)

    def sortable_title(self):
        return self.getName()
Пример #11
0
            label=_("Sample Type"),
        ),
    ),
    ComputedField(
        'SampleTypeTitle',
        expression=
        "context.getSampleType().Title() if context.getSampleType() else ''",
        widget=ComputedWidget(visible=False, ),
    ),
    ComputedField(
        'SampleTypeUID',
        expression=
        "context.getSampleType().UID() if context.getSampleType() else ''",
        widget=ComputedWidget(visible=False, ),
    ),
)) + BikaSchema.copy() + Schema((
    RecordsField(
        'ResultsRange',
        # schemata = 'Specifications',
        required=1,
        type='resultsrange',
        subfields=('keyword', 'min', 'max', 'warn_min', 'warn_max', 'hidemin',
                   'hidemax', 'rangecomment'),
        required_subfields=('keyword', 'min', 'max'),
        subfield_validators={
            'min': 'analysisspecs_validator',
            'max': 'analysisspecs_validator',
        },
        subfield_labels={
            'keyword': _('Analysis Service'),
            'min': _('Min'),
Пример #12
0
from AccessControl import ClassSecurityInfo
from Products.Archetypes.public import *
from Products.CMFCore.utils import getToolByName
from Products.CMFPlone.utils import safe_unicode
from zope.interface import implements

from bika.lims.content.bikaschema import BikaSchema

from baobab.lims.browser.storage import getStorageTypes
from baobab.lims.interfaces import IStoragePosition
from baobab.lims.config import PROJECTNAME
from baobab.lims import bikaMessageFactory as _

Hierarchy = ComputedField('Hierarchy', expression="here.getHierarchy()")

schema = BikaSchema.copy() + Schema((Hierarchy, ))
schema['title'].widget.label = _('Address')
schema['description'].widget.visible = True


class StoragePosition(BaseContent):
    implements(IStoragePosition)
    security = ClassSecurityInfo()
    displayContentsTab = False
    schema = schema

    def Title(self):
        return safe_unicode(self.getField('title').get(self)).encode('utf-8')

    def getHierarchy(self, structure=False, separator='.', fieldname='id'):
        hierarchy = []
Пример #13
0
        ),
    ),
    ComputedField('SampleTypeTitle',
        expression = "context.getSampleType().Title() if context.getSampleType() else ''",
        widget = ComputedWidget(
            visible = False,
        ),
    ),
    ComputedField('SampleTypeUID',
        expression = "context.getSampleType().UID() if context.getSampleType() else ''",
        widget = ComputedWidget(
            visible = False,
        ),
    ),
)) + \
BikaSchema.copy() + \
Schema((
    RecordsField('ResultsRange',
        # schemata = 'Specifications',
        required = 1,
        type = 'resultsrange',
        subfields = ('keyword', 'min', 'max', 'error', 'hidemin', 'hidemax',
                     'rangecomment'),
        required_subfields = ('keyword', 'error'),
        subfield_validators = {'min':'analysisspecs_validator',
                               'max':'analysisspecs_validator',
                               'error':'analysisspecs_validator',},
        subfield_labels = {'keyword': _('Analysis Service'),
                           'min': _('Min'),
                           'max': _('Max'),
                           'error': _('% Error'),
Пример #14
0
from AccessControl import ClassSecurityInfo
from Products.ATExtensions.ateapi import RecordWidget
from Products.Archetypes.public import *
from bika.lims.config import PROJECTNAME
from Products.CMFCore import permissions as CMFCorePermissions
from Products.CMFCore.utils import getToolByName
from Products.CMFPlone.utils import safe_unicode
from bika.lims.content.bikaschema import BikaSchema, BikaFolderSchema
from archetypes.referencebrowserwidget import ReferenceBrowserWidget
from plone.app.folder.folder import ATFolder
from bika.lims.browser.fields import AddressField
from bika.lims.browser.widgets import AddressWidget
from bika.lims import PMF, bikaMessageFactory as _

schema = BikaFolderSchema.copy() + BikaSchema.copy() + ManagedSchema((
    StringField('Name',
        required = 1,
        searchable = True,
        validators = ('uniquefieldvalidator',),
        widget = StringWidget(
            label=_("Name"),
        ),
    ),
    StringField('TaxNumber',
        widget = StringWidget(
            label=_("VAT number"),
        ),
    ),
    StringField('Phone',
        widget = StringWidget(
Пример #15
0
# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Copyright 2018-2020 by it's authors.
# Some rights reserved, see README and LICENSE.

from zope.interface import implements
from Products.Archetypes import atapi
from Products.Archetypes.public import BaseContent
from bika.lims.content.bikaschema import BikaSchema
from Products.Archetypes.references import HoldingReference
from bika.lims import bikaMessageFactory as _
from bika.lims import config
from DateTime import DateTime
from Products.CMFCore.utils import getToolByName

schema = BikaSchema.copy() + atapi.Schema((
    # Results File that system wanted to import
    atapi.StringField('ImportedFile', default=''),
    atapi.ReferenceField(
        'Instrument',
        allowed_types=('Instrument', ),
        referenceClass=HoldingReference,
        relationship='InstrumentImportLogs',
    ),
    atapi.StringField('Interface', default=''),
    atapi.StringField('Results', default=''),
    atapi.DateTimeField('LogTime', default=DateTime()),
))

schema['title'].widget.visible = False
Пример #16
0
from AccessControl import ClassSecurityInfo
from Products.Archetypes.public import *
from Products.CMFCore.permissions import View, ModifyPortalContent
from bika.lims.content.bikaschema import BikaSchema
from bika.lims.config import I18N_DOMAIN, PROJECTNAME
from bika.lims import bikaMessageFactory as _

schema = BikaSchema.copy()

schema['description'].schemata = 'default'
schema['description'].widget.visible = True

class ReferenceManufacturer(BaseContent):
    security = ClassSecurityInfo()
    schema = schema

registerType(ReferenceManufacturer, PROJECTNAME)
Пример #17
0
from AccessControl import ClassSecurityInfo
from Products.ATExtensions.ateapi import RecordWidget
from Products.Archetypes.public import *
from bika.lims.config import PROJECTNAME
from Products.CMFCore import permissions as CMFCorePermissions
from Products.CMFCore.utils import getToolByName
from Products.CMFPlone.utils import safe_unicode
from bika.lims.content.bikaschema import BikaSchema, BikaFolderSchema
from archetypes.referencebrowserwidget import ReferenceBrowserWidget
from plone.app.folder.folder import ATFolder
from bika.lims.browser.fields import AddressField
from bika.lims.browser.widgets import AddressWidget
from bika.lims import PMF, bikaMessageFactory as _

schema = BikaFolderSchema.copy() + BikaSchema.copy() + ManagedSchema((
    StringField(
        'Name',
        required=1,
        searchable=True,
        validators=('uniquefieldvalidator', ),
        widget=StringWidget(label=_("Name"), ),
    ),
    StringField(
        'TaxNumber',
        widget=StringWidget(label=_("VAT number"), ),
    ),
    StringField(
        'Phone',
        widget=StringWidget(label=_("Phone"), ),
    ),
Пример #18
0
from Products.CMFCore.utils import getToolByName
from Products.CMFPlone.utils import safe_unicode
from bika.lims.browser import BrowserView
from bika.lims.content.bikaschema import BikaSchema
from bika.lims.config import PROJECTNAME
from bika.lims.browser.fields import CoordinateField
from bika.lims.browser.widgets import CoordinateWidget
from bika.lims.browser.fields import DurationField
from bika.lims.browser.widgets import DurationWidget
from bika.lims import PMF, bikaMessageFactory as _
from zope.interface import implements
import json
import plone
import sys

schema = BikaSchema.copy() + Schema((
    StringField('SiteTitle',
        widget=StringWidget(
            label =  _("Site Title"),
            description = _("Title of the site"),
        ),
    ),
    StringField('SiteCode',
        widget=StringWidget(
            label =  _("Site Code"),
            description = _("Code for the site"),
        ),
    ),
    StringField('SiteDescription',
        widget=StringWidget(
            label =  _("Site Description"),
Пример #19
0
        },
    ))

remarks = StringField(
    'FreeText',
    widget=TextAreaWidget(
        label=_("Remarks"),
        description=
        _("Explanation about disease or symptom in case of unknown disease or insufficient information"
          ),
        cols=30,
        rows=20,
    ),
)

schema = BikaSchema.copy() + Schema((version, code, remarks))
schema['title'].widget.visible = {'view': 'visible', 'edit': 'visible'}
schema['title'].widget.label = "Disease Ontology"
schema[
    'title'].widget.description = "Name of ontology used fro disease. Can be several values e.g. ICD, SNOMED"
schema['description'].widget.visible = {'view': 'visible', 'edit': 'visible'}
schema['description'].widget.description = "Description from the selected Disease Ontology Code " \
                                           "e.g. Malignant neoplasm of prostate"


class DiseaseOntology(BaseContent):
    security = ClassSecurityInfo()
    implements(IDiseaseOntology, IConstrainTypes)
    displayContentsTab = False
    schema = schema
    _at_rename_after_creation = True