ICIS 5.5

From ICISWiki

Jump to: navigation, search

Contents

ICIS 5.5 New Features

Database change

DMS

  • STUDY table: addition of a status field (SSTATUS) to tell whether the record in the STUDY table is a study or folder
0001 - study
0000 - folder
0011 - hidden study
0010 - hidden folder
0101 - locked study
0100 - locked folder
1000 - finalized folder
1001 - finalized study
Any user can hide/unhide a hidden list/folder
A locked list/folder can only be unlock by the user who owns it
The user who owns the study or who creates a folder is the only who can finalize the list/folder
The status of a finalized list/folder can not be changed by a user through the ICIS Applications.
  • STUDY table: addition of a hierarchy field (SHIERARCHY) to store the parent folder

Additional Tables

The following tables are added to store the unique IDs for levels, representations, observation units and effects. Most of the tables in the ICIS 5.4.2 and lower versions have these IDs stored in the relation tables. FOr example, OINDEX contains the relations of the observation unit with the levels and the representation. EFFECT table has the relation of the representation with effect and factors. There are no tables in the previous versions where those IDs are the primary keys.

These additional tables are also added for the issue about multiple loading in the DMS at the same time. The absence of these tables will make it difficult to assign IDs or primary keys that are not assigned through other loading process.

LEVELS Table

Stores the distinct level numbers of the factor.

Field name Description Type Length
LEVELNO The level no of the factor (Primary key) Number (long) 4
FACTORID The factor wherein the level is one of its classifications Number (long) 4
REPRESTN Table

Stores the distinct representation numbers of effect.

Field name Description Type Length
REPRESNO The representation number of a dataset of an effect. (Primary Key) Number (long) 4
EFFECTID The associated effectid Number (long) 4
REPRESNAME The name of the representation or dataset name. Char 150
OBSUNIT Table

Stores the distinct observation units of effect.

Field name Description Type Length
OUNITID The observation unit. (Primary Key) Number (long) 4
EFFECTID The effectid where the observation unit belongs. Number (long) 4
STEFFECT Table

Stores the effects of study

Field name Description Type Length
EFFECTID The effect id Number (long) 4
STUDYID The study where that effect belongs Number (Long) 4
EFFECTNAME The name of the effect Char 150

GMS

INSTLN table
  • new column ULRECID (of type Long which will store the latest LRECID used in GMS database after upload)
LISTNMS table
  • LISTDESC - length increased to 255
LISTDATA table
  • SOURCE - length increased to 255

IMS

GEMS

ICIS.INI

  • Debug option for the DLL should be in the DEBUG key of the [DLL Settings] INI section. DEBUG=NO to turn off the debug mode
  • Session ID key is added to run a specific stored procedure named Set_ICIS_Sec_Info with the key's value as its input parameter. This stored procedure is meant to set up the necessary grants to user on tables and other resources.
 [DLL Settings]
 DEBUG=NO
 SESSION_ID=ADMIN
  • New INI section [GMSSRCH] with the following INI keys:
1. DEF_TAB - which sets the active tabpage at startup
2. DEF_CASE_FOR_NAME_SEARCH - which sets the default case of name searched.
3. LOCAL_DB_SEARCH - Sets the default sign of the GID searched (i.e. YES for negative)
4. ALPHASORT_NAME - sets the default sorting order of the searchname result (i.e. YES - sorted, NO - not sorted)
5. STUDYSQL - sql statement to use for retrieving DMS data
 [GMSSRCH] 
 #**************************************************************
 # LOCAL_DB_SEARCH - Sets the default sign of the
 #                   GID searched (i.e. YES for negative)      
 # 
 # DEF_CASE_FOR_NAME_SEARCH - indicates the default case for Name
 #                            Search (e.g. UPPER,LOWER,ANY)
 # DEF_TAB - indicates the default tabpage at start-up
 #
 # ALPHASORT_NAME - sets the default sorting order of the searchname result
 #                  (i.e. YES - sorted, NO - not sorted)  
 # STUDYSQL - sql statement to use for retrieving DMS data
 #**************************************************************
 LOCAL_DB_SEARCH=
 DEF_CASE_FOR_NAME_SEARCH=
 DEF_TAB=
 ALPHASORT_NAME=
 STUDYSQL=
  • Improved INI for In-Track: Before v5.5, all INI keys used by In-Track were under one section [IMS]. In-Track INI keys are now divided into 2 sections:
1. [IMS] - contains all database-related information
2. [INTRACK] – contains all application-related information

Image: Inifilenew.jpg

ICIS32 DLL

Modifications

  • All functions that get the next available primary key are modified. The next ID is now always retrieved from the database.
  • For SQLSTATE = 23000 (Unique Constraint Violation when a record is being added), no error message is shown. The add functions will continually call the getNextID and execute the INSERT statement until it succeeds or the 100 attempts are reached. It is assumed that only the primary keys (GID, NID etc) has the unique constraint or else the statements that trap the error is not anymore applicable.
  • The ICIS.INI should have AUTOCOMMIT=YES in [SETGEN] section for multiple accesses of the lists.
  • Additional tables for DMS to handle the multi-access issue.
  • The above changes are done for multi-access of the database.

[DLL SETTINGS] section of the ICIS.INI

  • SHOW_PREFID - not mandatory; set to YES if the prefered ID (NSTAT=8) needs to be shown with the Preferred Name;

SHOW_PREFID=YES

New Return Value by DLL function

GMS_UNIQUE_CONSTRAINT = -12 //unique constraint violation
GMS_INVALID_DATA=-11,

New Functions

GMS_hasCIDSID

GMS_hasCIDSID will determine if there are SID and CID fields in the GERMPLSM table. It will return GMS_SUCCESS (1) if those fields are present, otherwise it will return GMS_NO_DATA (0)
Syntax
long GMS_hasCIDSID No arguments, No returns
Returns

GMS_SUCCESS, GMS_NO_DATA

GMS_addUDField

GMS_addUDField adds one record to the local UDFLDS table.

Syntax

long GMS_addUDField (data,szDesc, nszDesc)

Arguments
Argument Type Use Description
data GMS_UDField * Input/output Address of a GMS_UDField structure
szDesc char * Input Description of the user defined field
nszDesc long * Input length of the description string
Returns

GMS_SUCCESS, GMS_ERROR


SUP_addPerson

SUP_addPerson adds record of a person, collaborator or scientist to the local PERSONS table.

Syntax

long SUP_addPerson (data)

Arguments
Argument Type Use Description
data SUP_PERSONS * Input Address of a SUP_PERSONS structure
Returns

GMS_SUCCESS, GMS_ERROR


SUP_addInstitute

SUP_addInstitute adds record of an institute to the local INSTITUT table.

Syntax

long SUP_addInstitute (data)

Arguments
Argument Type Use Description
data SUP_INSTITUTE * Input Address of a SUP_INSTITUTE structure
Returns

GMS_SUCCESS, GMS_ERROR


SUP_getPerson

SUP_getPerson retrieves details of a person from the PERSONS table. The first argument of SUP_getPerson is a pointer to a SUP_PERSONS structure. If the PERSONID element is not zero when the function is called then the details for the corresponding PERSONID are retrieved. If it is zero then the function returns details for the first record if fOpt = FIND_FIRST or for the next available record if fOpt = FIND_NEXT. Any call which fails to find a person information returns DMS_NO_DATA.

Syntax

long SUP_getPerson(data, fOpt)

Arguments
Argument Type Use Description
data SUP_PERSONS* input/
output
Address of a SUP_PERSONS structure to contain persons details
fOpt Long input Either FIND_FIRST or FIND_NEXT
Returns

DMS_SUCCESS, DMS_ERROR, DMS_NO_DATA

Comments

If the function is called and there was a problem accessing the database, the function will return DMS_ERROR.

SUP_getInstittutePrnt

SUP_getInstitutePrnt retrieves details of an institute from the INSTITUT table. It can retrieve institutes under a specific parent institute (PINSID) or all institutes in the table. The first argument of SUP_getInstitutePrnt is a pointer to a SUP_INSTITUTE structure. If the PINSID element is not zero when the function is called then, it retrieves details of the institutes under that parent institute. If PINSID = 0, it retrieves all institutes. If fOpt = FIND_FIRST (0), the function returns details for the first record. If fOpt = FIND_NEXT, the next available record is returned . Any call which fails to find a institute information returns DMS_NO_DATA.

Syntax

long SUP_getInstitutePrnt(data, fOpt)

Arguments
Argument Type Use Description
data SUP_INSTITTUTE* input/
output
Address of a SUP_INSTITUTE structure to contain institute details
fOpt Long input Either FIND_FIRST or FIND_NEXT
Returns

DMS_SUCCESS, DMS_ERROR, DMS_NO_DATA

Comments

If the function is called and there was a problem accessing the database, the function will return DMS_ERROR.


DMS_deleteDataset

DMS_deleteDataset deletes a dataset of a study. The dataset corresponds to a representation of observations. The records in the OINDEX, EFFECT, VEFFECT, DATA_C and DATA_N of the specified representation are deleted. But the information about the factors, levels and variates are not affected.

Syntax

long GMS_deleteDataset(represno)

Arguments
Argument Type Use Description
represno Long input the representation number of the dataset
Returns

GMS_SUCCESS, GMS_ERROR

DMS_setRepresName

DMS_setRepresName changes the name of a dataset or representation in a study stored in the local database

Syntax

long DMS_setRepresName(represNo,szName)

Arguments
Argument Type Use Description
represNo long input the representation number of the dataset.
szName Char * input Address of NULL terminated string to place the name. It's size should not exceed 150.
Returns

GMS_SUCCESS, GMS_ERROR


DMS_getRepresName

DMS_getRepresName retrieves the name of a dataset or representation

Syntax

long DMS_getRepresName(represNo,szName)

Arguments
Argument Type Use Description
represNo long input the representation number of the dataset.
szName Char * input Address of NULL terminated string to place the name. It's size should not exceed 150.
Returns

GMS_SUCCESS, GMS_ERROR

DMS_setEffectName

DMS_setEffectName changes the name of an effect of a study stored in the local database

Syntax

long DMS_setEffectName(effectID,szName)

Arguments
Argument Type Use Description
effectID long input the id of an effect to which the name should be set
szName Char * input Address of NULL terminated string to place the name. It's size should not exceed 150.
Returns

DMS_SUCCESS, DMS_ERROR

GMS_deleteProgenitorID

GMS_deleteProgenitorID deletes the progenitors of a germplasm in the PROGENITORS table of the local GMS database.

Syntax

long GMS_deleteProgenitorID(gid)

Arguments
Argument Type Use Description
gid long input GID of germplasm for which progenitors have to be deleted
Returns

GMS_SUCCESS, GMS_ERROR

Comments

This function deletes all progenitors of a germplasm from the local database. If gid is positive the function returns GMS_ERROR. Only user with access right greater than 30 is allowed to delete the progenitors.


GMS_deleteOneProgenitor

GMS_deleteOneProgenitor deletes a progenitor of a germplasm in the PROGENITORS table of the local GMS database.

Syntax

long GMS_deleteOneProgenitor(gid, pid)

Arguments
Argument Type Use Description
gid long input GID of germplasm for which progenitors have to be deleted
pid long input the progenitor's GID
Returns

GMS_SUCCESS, GMS_ERROR

Comments

This function deletes only one progenitor of a germplasm from the local database. If gid is positive the function returns GMS_ERROR. The function only allows user with access right greater than 30 to delete a progenitor.


GMS_getNextSequence

GMS_getNextSequence function gets the next sequence number of name type with the specified prefix.

Syntax

long GMS_getNextSequence(ntype, szPrefix, nextSequence)

Arguments
Argument Type Use Description
ntype long input the name type (which is the corresponding FLDNO from the UDFLDS table)
szPrefix char * input Addess of null terminated string which contains the prefix term
nextSequence long output the next number in the sequence
Returns

GMS_SUCCESS, GMS_NO_DATA, GMS_ERROR

GMS_getNextName

GMS_getNextName function provides the next name of a name type having the specified prefix.

Syntax

long GMS_getNextName(ntype, szPrefix, szNextName)

Arguments
Argument Type Use Description
ntype long input the name type (which is the corresponding FLDNO from the UDFLDS table)
szPrefix char * input Addess of null terminated string which contains the prefix term
szNextName char * output Address of NULL terminated string to place the next name.
Returns

GMS_SUCCESS, GMS_NO_DATA, GMS_ERROR

Modified Functions

GMS_findAttribute

- recognizes wild card characters

GMS_listName

- It looks for PreferredID (NSTAT=8) if there is no Preferred Name (NSTAT=1).

GMS_getGermplasm2

- It looks for PreferredID (NSTAT=8) if there is no Preferred Name (NSTAT=1). - It includes the PreferredID with the Preferred Name if SHOW_PREFID=YES in the INI Key

All GMS_add functions

- Reiterates adding the record until there is no Unique Constraint Error or it reaches 100 iteration.

getConsData

-SQL for mySQL/PostGres was corrected

getOunitData

-SQL for mySQL/PostGres was corrected

getPFLevel

-SQL for mySQL/PostGres was corrected

Launcher

  • For additional customized items in the Launcher, store it in another text file of the same format as the Launcher.txt. Then, specify the path and name of the text file that contains the items in this INI key
 [LAUNCHER]
 EXTRA_MODULE=D:\ICIS5\EXES\LAUNCHER2.TXT

GMS Search

  • Stabilize actual functions and solve bugs
  • Add “Find Crosses function”
  • Neighborhood, include level/step number and “Exclude DH’s”
  • Change Layout to make it more user friendly/"fancy"
  • Tabs for names/relatives/neighborhood/inventory/dms data
  • Multiple select and copy of items in tabpages
  • Add icons for items in Ancestor Tree
  • Include important links on wiki and cropforge in About WIndow
  • Display number of hits
  • Change settings facility (GMS Search-related settings only)
  • Passing a parameter with the executable file when Running application
  • Searched GID to be defaulted to negative if set in the INI
  • Auto-completion of recently typed text for Name Search and GID fields.
  • Store used search strings.
  • Sorting by Name/Location/Unique ID of the retrieved records

SetGen

  • Entering other attributes about a list. The additional attributes should be declared in the UDFLDS table
 FTABLE = LISTNMS
 FTYPE = LISTINFO
 FCODE = <the abbreviation of the attribute>
 FNAME = <attribute term or name>

Click the the button beside Other List Info to show the screen for entering the additional information

  • Edit status is assigned to list on edit. A pen icon is shown when a list is on edit status. The list status is
 <User ID>0001
  • To allow other user to change status of a list, the following INI key should be defined under [SETGEN] section
 LIST_STATUS_OWNER_ACCESS=NO
  • SetGen section (key-value pair) in HELP.INI. Values like http links are examples only.
 [SETGEN]
 AddBatchForm = http://cropwiki.irri.org/icis/help/index.html?batch_mode_processing.htm
 CrossBatchForm= D:\ICIS5\EXES\Help\batch_mode_processing.htm
 DerivativeBatchForm=http://cropwiki.irri.org/icis/help/index.html?batch_mode_processing.htm
 GIDBatchForm=http://cropwiki.irri.org/icis/index.php/TDM_SET_GENERATION_5.4#Batch_Mode_Processing
  • For getting the next sequence for a particular name type, combination of 2 INI keys are used. For example:
 NEXT_SEQUENCE_NAMETYPE=1
 NEXT_SEQUENCE_PREFIX=PI

Changes

  • List should be created first in the Edit Window before activating any import, interactive or batch tools
  • Stabilize actual functions and solve bugs
  • Allowing underscore in the germplasm name through INI key (UNDERSCORE_IN_NAMES=YES)
  • Importing extra columns from Excel using the Import tool and saving those extra columns as names/attributes/date/location of germplasms
  • Update SUFFIX possibilities also for RANGE option in “-“ form. Check if this needs to be only for ‘-‘ window or also for ‘B-‘ screens (NOT YET in B- !) and if it should work for Designation, Entry Code and Source.
  • Enhancement of the Add Germplasm Form to make it more user-friendly and similar with the Edit Germplasm form
  • Fill With Extra Information (dynamic menu items)
INI key FILL_WITH_CUSTOMIZED_DATA=<path and filename of the text file with the menu items and SQL>
  • merging of the new GMS Search with SetGen
  • calling of the Help files of the batch forms via F1 key. The ff. INI keys in HELP.INI file correspond to Help files for the diff. batch forms. Values can be a URL or file path (like in the example below).
  [SETGEN]
  AddBatchForm=E:\ICIS5\EXES\Help\B_PLUS.swf
  CrossBatchForm=E:\ICIS5\EXES\Help\Batch_Cross.swf
  DerivativeBatchForm=E:\ICIS5\EXES\Help\B_Minus.swf
  GIDBatchForm=C:\ICIS5\documents\help\batch_mode_processing.htm
 
  • “DMS VARIABLE SELECTION” should be changed to “STUDY VARIABLE SELECTION”
  • automatic generation of the next sequence of a name type
-The Prefix and the name type should be declared in the INI file
  • label of Final list (to be stored in a resource file)
- this will be stored in the ICIS\Exes\ResourceSetGen.rsc
  • checking of existence of a particular NSTAT (similar to the NYTPE where it is checked when list is saved or closed)
  • calling the Workbook to be one of the options of the right-click menu when list is highlighted (LISTID is the parameter)
- SetGen will write in the ICIS.INI the listID and the List Type of the selected list
- Under the [Workbook] section of the INI are
OpenListId - to contain the listid
OpenListType - to contain the list type
- The corresponding template of the list should be named after the list type. The template folder should be specified in the TmplPath key of the [Workbook] section of the INI file
  • When method is import and the name of the imported seed is the same as the source, the NDATA and NLOCN should be the same as the source
- A message asking the user whether to assign the same name date and location as the source when the method is one of the maintenance methods and the name is the same as the source. This will appear when the Start Number=0 in the Naming Convention of the interactive derivative (-) form.

Adding/Deleting other progenitors

  • Add progenitor
Add the new progenitor in the local database
If the GID is positive
   create change record for the number of progenitors
   {CTABLE=GERMPLSM, CFIELD=GNPGS, CRECORD=<GID> , CTO=<new GNPGS>, CFROM=<old GNPGS>}
  • Edit progenitor
If GID and old PID are positive 
   create change record for the updated progenitor
   {CTABLE=PROGNTRS, CFIELD=PID, CRECORD=<GID> , CTO=<new PID>, CFROM=< old PID>}
   add the new progenitor in the local database
else
  set or update the records in the local database

Note: What if the record is in the local database even the GID and PID are positive?

  • Delete progenitor
If GID is negative
   delete the progenitor
else
   create change record to delete the progenitor 
   {CTABLE=PROGNTRS, CFIELD=PID, CRECORD=<GID> , CTO=0, CFROM=<PID>}

InTrack

  • Improve interface to make it more user-friendly
  • Improve INI file sections
  • Searching Data using Barcode
  • Checking of Admin rights when logging as Administrator
  • Reserve and Deposit functions in Administrator form
  • Menu items and toolbar visible when accessing InTrack thru SetGen
  • Refreshing of List Selector
  • Transaction type of Import to be defaulted to deposit for the Administrator
  • Import function at user level
  • Selecting a worksheet in Excel while Importing data
  • Additional field 'Date' in Import function

Workbook

  • Study-status options, same as for lists ! Including the option=9 for deleted Studies (without physical deleting the data from the database)
  • Simultaneous loading of study
  • Foldering and its manipulation
  • Deleting dataset
  • selecting variates of dataset to retrieve
  • Look up list for location/name type/persons/institutes/methods


  • enhance of the data validation
  • label of Allele and Marker to be stored in a resource file
-the label names will be stored in ICIS\Exes\Resource\Workbook.rsc
  • When called by SetGen, automatically fills up a Workbook template with the LISTID passed by SetGen
-the LISTID will be stored in the OpenListID key of the ICIS.INI
-if that ini key is set, it will open a template named after the listtype and fill it with the list
-it will reset the OpenListID after the process
  • Redesign of the Fieldbook form in Workbook
  • Storing the representation and effect name in the new tables

ICIS Retriever

  • Foldering of Studies similar or the same interface as Workbook
  • Folder structure of the lists
  • Local studies to be included in the query of the Retrieve by List/Study/Property form
  • Selecting variates to retrieve from a study
  • Selecting records of study based on the specified values of factor/variate
  • In the MAIN SEARCH form, automatically show Germplasm Lists or Studies if the filters or criteria are LIST or STUDY and the operator of the filter is LIST.
  • Redesign of the MAIN SEARCH form

Data Comparison

GEMS Catalog

  • will be officially released as part of the ICIS 5.5.1
  • separate tool from the database
  • automatically link the the database using the info in the INI and registry

Installation Diagnostic Tool

Go to: What's NEW in Version 5.5.1

Data Validation Tool

Go to: What's NEW in Version 5.5.1

GMS Input

Browse

Personal tools