collectionobject

Table info.

Title Collection Object
Description Collection Object

Fields

Name Type Required Index Hidden On form Title Pick list Description
CollectionObjectID int(11) PRI
TimestampCreated datetime Created The date the record was created
TimestampModified datetime Last edited The date the record was last edited
Version int(11) Version version
CollectionMemberID int(11) MUL Collection Member Id collectionMemberId
AltCatalogNumber varchar(64) MUL MEL number MEL number
Availability varchar(32) Availability availability
CatalogNumber varchar(32) MUL Catalogue no. The number that identifies an individual specimen
CatalogedDate date MUL Cataloged Date Date the object was cataloged.
CatalogedDatePrecision tinyint(4) Cataloged Date Precision catalogedDatePrecision
CatalogedDateVerbatim varchar(32) Cataloged Date Verbatim The verbatim date the specimen was collected.
CountAmt int(11) Count Amount The number of objects (specimens, slides, pieces) prepared.
Deaccessioned bit(1) Deaccessioned True if the object has been deaccessioned.
Description varchar(255) Description
FieldNumber varchar(50) MUL Field Number A unique number a collector assigns to each specimen at the time of collection. For example, botanists often keep a running count of the individual specimens they have collected (LKK1023, LKK1024, etc.).
GUID varchar(128) MUL GUID Global Unique Identifier
InventoryDate date Inventory Date inventoryDate
Modifier varchar(50) Part MEL number part
Name varchar(64) Barcode The MEL accession number including 'MEL', but not including the Part
Notifications varchar(32) Parts Number of parts in a collection. A number higher than 1 indicates a mixed collection.
Number1 float(20,10) No. of duplicate labels The number of duplicate labels that need to be printed
Number2 float(20,10) Number2 User definable.
ObjectCondition varchar(64) Mixed collection notes Information about components of mixed collections that needs to be printed in the mixed collection section of a label
ProjectNumber varchar(64) projectNumber
Remarks text Miscellaneous notes Any notes relating to the specimen or collecting event that are not provided by the collector. Notes provided by the collector should not be entered here, but should go in Collecting notes.
Restrictions varchar(32) Label code This field can be used to flag records that you want to print labels for, in order to make it easier to query for them when making record sets for label printing
Text1 text Descriptive notes A description of the specimen provided by the collector. If the primary description was provided by someone other than the collector, include their name in brackets after the description.
Text2 text Upload ref. The file that was used for the Workbench upload
TotalValue decimal(12,2) Total Value totalValue
OCR text Ocr ocr
Visibility tinyint(4) Visibility visibility
YesNo1 bit(1) Type Indicates the collection object is a type.
YesNo2 bit(1) Multisheet Indicates the collectionobject is part of a multisheet relationship.
YesNo3 bit(1) WB upload - not checked Indicates that the record was uploaded through the WorkBench and still needs to be checked by the curation officers; may be unchecked by curation officer once the record has been checked.
YesNo4 bit(1) Imaged Indicates that a high-quality image of the specimen has been generated at MEL, in accordance with the standards of the GPI project. If/when an image is available on JSTOR, the GPI box will also be ticked.
YesNo5 bit(1) GPI Indicates that an image of the specimen has been provided to JSTOR and can be found on the Global Plants site.
YesNo6 bit(1) Misc. notes checked Used to flag if records initially entered in Texpress have had the Misc. notes field checked and contents moved to other fields where appropriate
AppraisalID int(11) MUL
ModifiedByAgentID int(11) MUL
CollectionID int(11) MUL
CollectingEventID int(11) MUL
CreatedByAgentID int(11) MUL
ContainerID int(11) MUL
AccessionID int(11) MUL
CatalogerID int(11) MUL
PaleoContextID int(11) MUL
CollectionObjectAttributeID int(11) MUL
ContainerOwnerID int(11) MUL
VisibilitySetByID int(11) MUL
FieldNotebookPageID int(11) MUL
SGRStatus tinyint(4) Sgr Status sgrStatus
ReservedText varchar(128) Reserved Text reservedText
Text3 text Text3
Integer1 int(11) Unmounted specimen Indicates that a specimen was databased before being mounted (as part of the working from home arrangements during COVID-19 restrictions).
Integer2 int(11) Integer2 integer2
ReservedInteger3 int(11) Reserved Integer3 reservedInteger3
ReservedInteger4 int(11) Reserved Integer4 reservedInteger4
ReservedText2 varchar(128) Batch no. Batch no.
ReservedText3 varchar(128) Curation Filed for making temporary curation notes about work that still needs to be done when onsite.
InventorizedByID int(11) MUL
Date1 date Date1 date1
Date1Precision tinyint(4) Date1 Precision date1Precision
InventoryDatePrecision tinyint(4) Inventory Date Precision inventoryDatePrecision
Agent1ID int(11) MUL
NumberOfDuplicates int(11) Number Of Duplicates Number Of Duplicates

Indexes

Name Fields Unique Nullable
AltCatalogNumber AltCatalogNumber
AltCatalogNumberIDX AltCatalogNumber
CatalogedDateIDX CatalogedDate
CatalogNumberIDX CatalogNumber
COColMemIDX CollectionMemberID
CollectionID CollectionID, CatalogNumber
ColObjGuidIDX GUID
FieldNumberIDX FieldNumber
FKC1D4635D3925EE20 AccessionID
FKC1D4635D3B87E163 CatalogerID
FKC1D4635D5327F942 ModifiedByAgentID
FKC1D4635D73BF3AE0 FieldNotebookPageID
FKC1D4635D7699B003 CreatedByAgentID
FKC1D4635D7BF1F70B VisibilitySetByID
FKC1D4635D8C2288BA CollectionID
FKC1D4635D97ECD2B2 PaleoContextID
FKC1D4635D9F4EE41 InventorizedByID
FKC1D4635DA141B896 CollectionObjectAttributeID
FKC1D4635DA40125AB ContainerOwnerID
FKC1D4635DB15CB762 AppraisalID
FKC1D4635DB237E2BC CollectingEventID
FKC1D4635DCF197B29 Agent1ID
FKC1D4635DE816739A ContainerID
PRIMARY CollectionObjectID

One-to-many relationships

Name Field Related table Related field
FK9C00EC4075E37458 CollectionObjectID collectionobjectattachment CollectionObjectID
FK303746CE75E37458 CollectionObjectID collectionobjectattr CollectionObjectID
FKAB9FC14475E37458 CollectionObjectID collectionobjectcitation CollectionObjectID
FKC66B943275E37458 CollectionObjectID collectionobjectproperty CollectionObjectID
FK246327D678903837 CollectionObjectID collectionrelationship LeftSideCollectionID
FK246327D68240904C CollectionObjectID collectionrelationship RightSideCollectionID
FKC040F46475E37458 CollectionObjectID conservdescription CollectionObjectID
FKC1E98FE375E37458 CollectionObjectID determination CollectionObjectID
FK9F42F5D875E37458 CollectionObjectID dnasequence CollectionObjectID
FK23150E1875E37458 CollectionObjectID exsiccataitem CollectionObjectID
FK2A5397B975E37458 CollectionObjectID otheridentifier CollectionObjectID
FKB198269775E37458 CollectionObjectID preparation CollectionObjectID
FK1E416F5D75E37458 CollectionObjectID project_colobj CollectionObjectID
FK577D852275E37458 CollectionObjectID treatmentevent CollectionObjectID
FKE5366FE675E37458 CollectionObjectID voucherrelationship CollectionObjectID

Many-to-one relationships

Name Field Related table Related field
FKC1D4635D3925EE20 AccessionID accession AccessionID
FKC1D4635D3B87E163 CatalogerID agent AgentID
FKC1D4635D5327F942 ModifiedByAgentID agent AgentID
FKC1D4635D73BF3AE0 FieldNotebookPageID fieldnotebookpage FieldNotebookPageID
FKC1D4635D7699B003 CreatedByAgentID agent AgentID
FKC1D4635D7BF1F70B VisibilitySetByID specifyuser SpecifyUserID
FKC1D4635D8C2288BA CollectionID collection UserGroupScopeId
FKC1D4635D97ECD2B2 PaleoContextID paleocontext PaleoContextID
FKC1D4635D9F4EE41 InventorizedByID agent AgentID
FKC1D4635DA141B896 CollectionObjectAttributeID collectionobjectattribute CollectionObjectAttributeID
FKC1D4635DA40125AB ContainerOwnerID container ContainerID
FKC1D4635DB15CB762 AppraisalID appraisal AppraisalID
FKC1D4635DB237E2BC CollectingEventID collectingevent CollectingEventID
FKC1D4635DCF197B29 Agent1ID agent AgentID
FKC1D4635DE816739A ContainerID container ContainerID

collectionobject_before_insert

EventINSERT
TimingBEFORE
Statement:
DROP TRIGGER IF EXISTS collectionobject_before_insert;
 
DELIMITER $$
 
CREATE TRIGGER collectionobject_before_insert BEFORE INSERT ON collectionobject
FOR EACH ROW
  BEGIN
  IF isnull(@DISABLE_TRIGGER) THEN
    IF NEW.CatalogedDate IS NULL THEN
      SET NEW.CatalogedDate=DATE(NEW.TimestampCreated);
      SET NEW.CatalogedDatePrecision=1;
    END IF;
    IF NEW.CollectionID=4 THEN
      SET NEW.CatalogNumber=CONCAT(SUBSTRING(NEW.CatalogNumber, 1, 7), UPPER(SUBSTRING(NEW.CatalogNumber, 8)));
      SET NEW.AltCatalogNumber=CAST(SUBSTRING(NEW.CatalogNumber, 1, 7) AS UNSIGNED);
      SET NEW.Name=CONCAT('MEL ', CAST(SUBSTRING(NEW.CatalogNumber, 1, 7) AS UNSIGNED));
      SET NEW.Modifier=UPPER(SUBSTRING(NEW.CatalogNumber, 8));
    ELSE
      IF NEW.CollectionID=65536 THEN
          SET NEW.AltCatalogNumber=CAST(NEW.CatalogNumber AS UNSIGNED);
          SET NEW.Name=CONCAT('VRS ', NEW.CatalogNumber);
      END IF;
    END IF;
    IF NEW.CreatedByAgentID!=NEW.CatalogerID THEN
      SET NEW.CreatedByAgentID=NEW.CatalogerID;
    END IF;
  END IF;
  END
 
DELIMITER ;

collectionobject_before_update

EventUPDATE
TimingBEFORE
Statement:
DROP TRIGGER IF EXISTS collectionobject_before_update;
 
DELIMITER $$
 
CREATE TRIGGER collectionobject_before_update BEFORE UPDATE ON collectionobject
FOR EACH ROW
  BEGIN
    IF isnull(@DISABLE_TRIGGER) THEN
        IF DATE(NEW.TimestampCreated)<DATE(NOW()) AND NEW.CatalogNumber!=OLD.CatalogNumber THEN
            INSERT INTO mel_recataloguenumbered (TimestampCreated, CollectionObjectID, PreviousCatalogNumber, CreatedByAgentID)
            VALUES (NOW(), NEW.CollectionObjectID, OLD.CatalogNumber, NEW.ModifiedByAgentID);
        END IF;
 
        IF NEW.CollectionID=4 THEN
          SET NEW.CatalogNumber=CONCAT(SUBSTRING(NEW.CatalogNumber, 1, 7), UPPER(SUBSTRING(NEW.CatalogNumber, 8)));
          SET NEW.AltCatalogNumber=CAST(SUBSTRING(NEW.CatalogNumber, 1, 7) AS UNSIGNED);
          SET NEW.Name=CONCAT('MEL ', CAST(SUBSTRING(NEW.CatalogNumber, 1, 7) AS UNSIGNED));
          SET NEW.Modifier=UPPER(SUBSTRING(NEW.CatalogNumber, 8));
 
        ELSE
          IF NEW.CollectionID=65536 THEN
              SET NEW.AltCatalogNumber=CAST(NEW.CatalogNumber AS UNSIGNED);
              SET NEW.Name=CONCAT('VRS ', CAST(NEW.CatalogNumber AS UNSIGNED));
          END IF;
        END IF;
    END IF;
  END
 
DELIMITER ;

collectionobject_before_delete

EventDELETE
TimingBEFORE
Statement:
DROP TRIGGER IF EXISTS collectionobject_before_delete;
 
DELIMITER $$
 
CREATE TRIGGER collectionobject_before_delete BEFORE DELETE ON collectionobject
FOR EACH ROW
  BEGIN
    IF isnull(@DISABLE_TRIGGER) THEN
      IF DATE(NOW())>DATE(OLD.TimestampCreated) THEN
        INSERT INTO mel_deleted (TimestampCreated, CollectionObjectID, CatalogNumber, GUID)
        VALUES (NOW(), OLD.CollectionObjectID, OLD.CatalogNumber, OLD.GUID);
      END IF;
    END IF;
  END
 
DELIMITER ;

View: AccessionItems (Common)

<view name="AccessionItems"
      class="edu.ku.brc.specify.datamodel.CollectionObject"
      usedefbusrule="false">
      <desc><![CDATA[The Collection Object Subform for Accessions.]]></desc>
      <altviews>
          <altview name="COS View" viewdef="AccessionItems" mode="view"/>
          <altview name="COS Edit" viewdef="AccessionItems" mode="edit" default="true"/>
          <altview name="COS Table Edit" viewdef="AccessionItems Table" mode="edit"/>
          <altview name="COS Table View" viewdef="AccessionItems Table" mode="view"/>
      </altviews>      
 </view>

View def.: AccessionItems

<viewdef type="form"
      name="AccessionItems"
      class="edu.ku.brc.specify.datamodel.CollectionObject"
      gettable="edu.ku.brc.af.ui.forms.DataGetterForObj"
      settable="edu.ku.brc.af.ui.forms.DataSetterForObj">
 
      <desc><![CDATA[The Collection Object Subform for Accessions.]]></desc>
      <enableRules/>
 
      <columnDef>105px,2px,120px,5px,100px,2px,95px,5px,102px,2px,95px,5px,97px,2px,95px,p:g</columnDef>
      <columnDef os="lnx">135px,2px,113px,5px,110px,2px,105px,5px,116px,2px,105px,5px,110px,2px,100px,p:g</columnDef>
      <columnDef os="mac">130px,2px,130px,5px,120px,2px,126px,5px,126px,2px,126px,5px,125px,2px,126px,p:g</columnDef>
      <columnDef os="exp">p,2px,min(p;175px),5px:g,p,2px,p:g(2),5px:g,p,2px,p:g(2),5px:g,p,2px,p:g(2)</columnDef>
      <rowDef auto="true" cell="p" sep="2px"/>
 
        <rows>
        <row>
            <cell type="label" labelfor="1"/>
            <cell type="field" id="1" name="catalogNumber" uitype="formattedtext"/>
            <cell type="label" labelfor="2"/>
            <cell type="field" id="2" name="altCatalogNumber" uitype="text"/>
            <cell type="label" labelfor="3"/>
            <cell type="field" id="3" name="collection.collectionName" uitype="dsptextfield"/>
            <cell type="label" labelfor="4"/>
            <cell type="field" id="4" name="projectNumber" uitype="text"/>
        </row>
     </rows>
</viewdef>
 

View: CollectionObjectSub (Common)

<view name="CollectionObjectSub"
      class="edu.ku.brc.specify.datamodel.CollectionObject"
      usedefbusrule="false">
      <desc><![CDATA[The Collection Object Subform for Accessions.]]></desc>
      <altviews>
          <altview name="COS View" viewdef="CollectionObjectSub" mode="view"/>
          <altview name="COS Edit" viewdef="CollectionObjectSub" mode="edit" default="true"/>
          <!-- <altview name="COS Table Edit" viewdef="CollectionObjectSub Table" mode="edit"/>
          <altview name="COS Table View" viewdef="CollectionObjectSub Table" mode="view"/>  -->
      </altviews>      
 </view>

View def.: CollectionObjectSub

<viewdef type="form"
      name="CollectionObjectSub"
      class="edu.ku.brc.specify.datamodel.CollectionObject"
      gettable="edu.ku.brc.af.ui.forms.DataGetterForObj"
      settable="edu.ku.brc.af.ui.forms.DataSetterForObj">
      <desc><![CDATA[The Collection Object Subform for appraisal and project forms.]]></desc>
      <enableRules/>
 
      <columnDef>100px,2px,120px,5px,100px,2px,95px,5px,102px,2px,95px,5px,97px,2px,95px,p:g</columnDef>
      <columnDef os="lnx">115px,2px,117px,5px,110px,2px,105px,5px,121px,2px,105px,5px,115px,2px,105px,p:g</columnDef>
      <columnDef os="mac">130px,2px,140px,5px,120px,2px,126px,5px,121px,2px,126px,5px,120px,2px,126px,p:g</columnDef>
      <columnDef os="exp">p,2px,min(p;200px),5px:g,p,2px,p:g(2),5px:g,p,2px,p:g(2),5px:g,p,2px,p:g(2)</columnDef>
      <rowDef auto="true" cell="p" sep="2px"/>
 
        <rows>
        <row>
            <cell type="label" labelfor="1"/>
            <cell type="field" id="1" name="catalogNumber" uitype="formattedtext"/>
            <cell type="label" labelfor="2"/>
            <cell type="field" id="2" name="altCatalogNumber" uitype="text"/>
            <cell type="label" labelfor="3"/>
            <cell type="field" id="3" name="collection.collectionName" uitype="dsptextfield"/>
            <cell type="label" labelfor="4"/>
            <cell type="field" id="4" name="projectNumber" uitype="text"/>
        </row>
     </rows>
</viewdef>
 

View: InfoRequestColObj (Common)

<view name="InfoRequestColObj"
      class="edu.ku.brc.specify.datamodel.CollectionObject"
      busrules="edu.ku.brc.specify.datamodel.busrules.CollectionObjectBusRules">
    <desc><![CDATA[Subform within the InfoRequestColObj Object form.]]></desc>
    <altviews>
        <altview name="InfoRequestColObj View" viewdef="InfoRequestColObj" mode="view"/>
        <altview name="InfoRequestColObj Edit" viewdef="InfoRequestColObj" mode="edit" default="true"/>
    </altviews>
</view>

View def.: InfoRequestColObj

<viewdef type="rstable"
      name="InfoRequestColObj"
      class="edu.ku.brc.specify.datamodel.CollectionObject"
      gettable="edu.ku.brc.af.ui.forms.DataGetterForObj"
      settable="edu.ku.brc.af.ui.forms.DataSetterForObj">
    <desc><![CDATA[The Info Request Collection Object form.]]></desc>
    <enableRules/>
 
    <columnDef/>
    <rowDef>p</rowDef>
 
    <rows>
        <row>
            <cell type="label" labelfor="1"/>
            <cell type="field" id="1" name="catalogedDate" uitype="formattedtext" uifieldformatter="Date"/>
            <cell type="label" labelfor="2" uitype="text"/>
            <cell type="field" id="2" name="catalogNumber" uitype="formattedtext"/>
            <cell type="label" labelfor="3"/>
            <cell type="field" id="3" name="fieldNumber" uitype="text"/>
            <cell type="label" labelfor="5"/>
            <cell type="field" id="5" name="determinations" uitype="text"/>
            <cell type="label" labelfor="6"/>
            <cell type="field" id="6" name="collectingEvent.locality.localityName" uitype="text"/>
            <cell type="label" labelfor="7"/>
            <cell type="field" id="7" name="collectingEvent.locality.latitude1" uitype="text"/>
            <cell type="label" labelfor="8"/>
            <cell type="field" id="8" name="collectingEvent.locality.longitude1" uitype="text"/> 
            <cell type="label" labelfor="9"/>
            <cell type="field" id="9" name="preparations" uitype="text"/>
        </row>
    </rows>
</viewdef>