/
CHANGES
908 lines (564 loc) · 32.7 KB
/
CHANGES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
Version 2.7.5
Date: 10/10/2023
Description: Bug Fixing Patch and Improvements
+ Item Measurements and Item Measurement Group related endpoints added
+ Crossing Measurement and Crossing Measurement Group related endpoints added
+ Virtual Column validation added for all Core module objects that support virtual columns. They are: organisation, contact, site, trial, genotype, specimen, item, trial event, trial group, survey, device register, trial unit, general type, genotype alias, project and breeding method.
Database Update
+ Drop any constraints in itemmeasurement and crossingmeasurement.
Instance Testing
+ A number of new whitebox tests have been added. This takes the number of tests that can be run at the start of deployment to 482. VCol related tests will be 47.
Version 2.7.4
Date: 07/08/2023
Description: Bug Fixing Patch and Improvements
+ Support for Trial Unit Factors/Virtual Columns added, allowing it to be included in add, update, bulk add, bulk update and filtering in lists.
+ Update Trial Unit Bulk revamped to no longer remove trial units to be updated
+ Permissions in Inventory Module overhauled. Admin access no longer required for storage, item parent, item and item group operations
+ Deleting trial units will now delete relevant trial unit location entries in the PostgreSQL database
Database Update
+ FactorName changed to VARCHAR(255) data type.
Instance Testing
+ A number of new whitebox tests have been added. This takes the number of tests that can be run at the start of deployment to 466. VCol related tests will be 19.
Version 2.7.3
Date: 30/06/2023
Description: Bug Fixing Patch and Improvements
+ SOLR dependencies upgraded to use the latest version of SOLR
+ New Endpoint added to display taxonomy ancestors.
+ Bug related to Add Genotype that mistakenly assigned Taxonomy to be compulsory fixed.
+ Bug that showed TagName for Get Taxonomy incorrectly fixed.
+ Delete Trial Unit now deletes linked Trial Unit Treatments.
+ Get and List Genotype now shows Taxonomy Names.
+ Docker Deployment of DAL now available.
+ Ansible Scripts' dates have been updated to reflect the last meaningful work on them was done.
Version 2.7.2
Date: 12/04/2023
Description: New Features and Improvements
+ Survey related endpoints added
+ Sample Measurement endpoints ammended to include Survey as a relation
+ Extract Data related enpoints added
+ Specimen, Storage Location, Survey update geography added.
+ Trial Unit, Trial and Site updage geography updated to conform to new model.
Databse Update
+ Survey Location spelling mistake corrected
Instance Testing
+ A number of new whitebox tests have been added. This takes the number of tests that can be run at the start of deployment to 465.
Version 2.7.1
Date: 16/03/2023
Description: New Features and Improvements
+ Taxonomy related endpoints added and Genotype related endpoints updated to include TaxonomyId as a field where relavent.
+ Pedgiree endpoints updated to include new field ParentTrialUnitSpecimenId.
+ Specimen endpoints updated to include new field SourceCrossingId
+ New endpoints user/:username/request/passwordreset and user/:username/execute/passwordreset to support password reset feature
Database update
+ Taxonomy's TaxonomyName field has been corrected. Please ensure to use ansible upgrade scripts to update the table.
Instance Testing
+ A number of new whitebox tests have been added. This takes the number of tests that can be run at the start of deployment to 421.
Version 2.7.0
Date: 11/01/2023
Description: Major Database Upgrade
Database Changes:
+ Survey entity added that involves new relations and updates to Sample Measurements, Trial Units and Traits. This creates an opportunity to link multiple Trial Units across different Trials.
+ Trial Unit Treatment entity added that involves new relations and updates to Treatment and Trial Units. This effective allows for multiple treatments to be added to a single Trial Unit.
+ GPS Locations of Sites, Trials, Trial Units, Contacts all now have Datetime fields to allow multiple locations to be stored. Furthermore, Specimens, Surveys and Storage can now have GPS Locations added to them.
+ Tileset entity added to support the use of custom tiles for mapping purposes.
+ Extract Data and Extract Data File entities created to support expanded Marker Data Import.
+ Item Measurement entity added that involves new relation and updates to Item. This allows for measurements to be attached to Item entities.
+ Crossing Measurement entity added that involves new relations and updates to Crossing. This allows for measurements to be attached to Crossing entities.
+ Trial Unit Type added for General Types.
+ Taxonomy entity added that invovles new relations and updates to Genotype
+ Pedigree allows relation to Trial Unit Specimen in addition to Specimen
+ Specimen allows relation to a Crossing to identify potential source Crossing.
Major:
+ Trial Treatment endpoints updated to reflect new database structure change. This allows for multiple treatments to be added to a single Trial Unit and the return of multiple Treatments from a single Trial Unit. TreatmentId removed from Trial Unit calls and replaced with a Treatment field that is now an array.
+ End points for Tile Data added.
Minor:
+ Fixed issue #9522 relating to Genpedigree Filtering on GenParentType
Version 2.6.3
Date: 01/08/2022
Description: Bug fixing version and minor improvements
Minor:
+ Fixed issue #9025 relating to PlateName filtering being case senesitive
+ Fixed issue #9136 relating to "DateAdded" being overwritten in item bulk update
+ Fixed issue #7410 allowing TraitName to be included in genotype/_id/list/trait
+ Fixed issue #8089 allowing "Public" to be returned in list/factors
+ Fixed issue #8743 allowing SpecimenNote to be included in import/specimen
+ Fixed issue #8851 allowing ItemFactors to be included in item bulk update
+ Fixed issue #9008 allowing existing items to be added in Item Groups
+ Fixed issue #9039 allowed Trial Unit Specimens to be filtered by Specimen Name and Trial Id
+ Fixed issue #6650 that includes Trial Id in list/trialunitspecimen
+ Added feature #8681 that deletes Specimen Keywords when deleting Specimen
+ Added feature #3025 to allow children storage to be listed in list/storage
+ Added feature #5168 to allow new extracts to be added to existing Analysis Groups.
+ Added feature #5540 to list all trait aliases in trial/_trialid/list/trait
+ delete/trialunitspecimen/:id has been added with the intention to replace remove/trialunitspecimen/:id in future versions.
Version 2.6.2
Date: 08/11/2021
Description: Bug fixing version and minor improvements
Minor:
+ Filtering Genotype by Factors is now enabled through a config option
+ Improved error handling for importing sample measurements. Entire error list from CSV is returned rather than first error encountered.
+ Fixed issue #8346 relating to permissions to delete Specimens
+ Fixed issue #8430 relating to updating trial unit locations
+ Fixed issue #8527 relating to Item "DateAdded" being mistakenly overwritten
+ Fixed issue #8559 relating to Specimen pagination count being affected by various Genotype-Specimen relationships
+ Fixed issue #8369 relating to Filtering with special characters
+ Updates to returned data for Genotypes in Specimens, Trial Traits and Crossings.
Version 2.6.1
Date: 22/01/2021
Description: Bug fixing version
Minor:
+ Fixed issue #7008 regarding the issue that dal cannot update a trial that has multiple while trial name is not unique in the database.
+ Fixed issue #7652 regarding updating SiteStartDate and SiteEndDate in Sites
+ Fixed issue #7612 regarding deleting Items with Item Logs
+ Fixed issue #7595 regarding deleting Genotypes that are children in GenPedigree
+ Fixed issue $6885 regarding duplicate Extracts being returned from Analysis Groups
+ Delete crossing interface is available.
+ Delete genotype alias interface is available.
+ List Genpedigree includes Names of Genotype and ParentGenotype
Version 2.6.0
Date: 27/02/2020
Description: Ease the integration with Online Ordering
Major:
+ Include a new field AnalysisGroupMetaData in analysisgroup table.
+ Include a new field PlateMetaData in plate table.
Minor:
+ Include TraitLevel in list trial trait.
+ Allow managers to list all users in the system.
+ Fix the order of fields in export samplemeasurement.
+ Correct the matching expression that is used to replace = with == in BOOLEX.
+ Remove trial name uniqueness checking in update trial.
+ Fix list multimedia for extract record.
Version 2.5.3
Date: 23/04/2018
Description: Fix SQL upgrade script.
Minor:
+ Fix bug in SQL upgrade script that clean up duplicate genotypealias.
Version 2.5.2
Date: 27/03/2018
Description: Fix update device register to update device id and device type id.
Minor:
+ Fix bug #4395 regarding update device register cannot update device id and device type id.
+ Expose JSON schema in Help for interfaces that takes input data in JSON format.
Version 2.5.1
Date: 21/03/2018
Description: Fix list layer attribute
Minor:
+ Fix bug #4367 for list layer attribute interface to return all fields in layerattrib table.
Version 2.5.0
Date: 16/03/2018
Description: Improved version with unique genotype alias name checking with genotype name.
Major:
+ Enforce the uniqueness of genotype name and genotype alias name within the same genus.
+ Add support for trial and trial group ayout.
+ Support having multiple instances of the same specimen in a trial unit.
+ Able to configure who can create new genotypes from the DAL configuration.
Minor:
+ Support season as general type and in trial.
+ Add count filtering to count groupby interface.
+ By default, add trial unit and add trial unit in bulk will check x, y, z uniqueness. If x, y, z uniqueness checking is not needed, force parameter can be used.
+ Support bulk update of trial units.
+ Trait and traitgroup have extra alternative optional unique identifier.
+ Make sitelocation optional when adding a new site.
+ Provide interfaces to add and retrieve the list of trial types that are defined as nursery trial types.
Version 2.4.5
Date: 10/11/2017
Description: Fix single quote bug in trait value for samplemeasurement importation
Minor:
+ Fix bug #4127 regarding single quote in trait value in samplemeasurement importation returning an error.
Version 2.4.4
Date: 30/10/2017
Description: Add interfaces to list marker data for data set
Minor:
+ Add interface to list markermeta fields from a dataset.
+ Add interface to list markers from a dataset.
+ Add interface to get a marker from a dataset.
+ Add interface to list marker data from a dataset.
+ Add interface to export marker map position in a csv format.
+ Add interface to import marker map position from map data in a marker dataset.
+ Fix bug 4077 regarding export trial data in 2D format.
+ Marker name must be unique within a single dataset.
Version 2.4.3
Date: 06/10/2017
Description: this version is a purely bug fix version to version 2.4.0.
Minor:
+ Fix bug 4003 - get project does not return VCol.
Version 2.4.2
Date: 18/07/2017
Description: this version is a purely bug fix version to version 2.4.0.
Minor:
+ Fix upgrade script so that it works in setup where mysql root password is different from kddart_dal password.
+ Fix upgrade script so that it copies all DTD files from vhosts directory.
Minor:
+ Fix help for listing specimen group which no longer returns the specimens in the group.
Version 2.4.1
Date: 26/06/2017
Description: this version is a purely bug fix version to version 2.4.0.
Minor:
* Help for add/analysisgroup has been updated to include a reference to DTD file for XML file that must contain extract ids.
* A bug regarding import trial data from a csv template (internal bug number 3739) is fixed.
* Upgrade from version 2.3.2 to version 2.4.0 is available.
Version 2.4.0
Date: 12/05/2017
Major:
* DAL cookies have domain value that the server extracts from the url.
* It supports token as well as cookies. For a session token to work, the login URL will return the session id and the verification random number directly in the output text in addition to cookie headers. The parameter names for the session token are KDDArT_DAL_SESSID for session id and KDDArT_RANDOM_NUMBER for the verification random number.
* One trait can be a memeber of many groups and a trait group can have many traits.
* It supports importing samplemeasurement in groups.
* It supports compulsary optimistic update on item.
* Its spports bulk update of items with compulsary optimic update feature.
Minor:
* List samplemeasurement with pagination, field list, filtering and sorting.
* DAL can generate a multi-user unique number from MySQL autonumber for naming.
* It supports DATE_RANGE validation rule which requires a valid date string in yyyy-dd-mm format.
* It supports creating a new session from an existing active login session.
Detailed lists of changes from version 2.3.2 to 2.4.0
Trait group is now an independent table with new calls
* 'add/traitgroup'
* 'delete/traitgroup/_id'
* 'get/traitgroup/_id'
* 'list/traitgroup/_nperpage/page/_num'
* 'traitgroup/_id/add/trait'
* 'traitgroup/_id/remove/trait/_tid'
* 'update/traitgroup/_id'
Samplemeasure records can now be imported in a group which can be removed and reimported later. New calls
* 'delete/smgroup/_id'
* 'get/smgroup/_id'
* 'trial/_id/import/smgroupdata/csv'
* 'trial/_id/list/smgroup'
* 'update/smgroup/_id'
New call to list samplemeasurement
* 'list/samplemeasurement/_nperpage/page/_num'
New call to get a unique number from DAL
* 'get/uniquenumber'
New call to update analysis group
* 'update/analysisgroup/_id'
New call to update item in bulk
* 'update/itembulk/json'
New call to create a new session from an existing active login session
* 'clone/session'
Version 2.3.2
Date: 23/09/2016
Major:
* Cookie authentication has been fixed with Apahce2_4::AuthCookie and mod_perl 2.0.9 which is available in openSUSE Leap 42.1 and CentOS 7.
* Permission fields are added to specimen table and the values of these fields are copied from genotype by DAL when a new specimen is created. When any of the permission fields in the genotype table is updated, all values in all the permission fields in the genotype are replicated to their corresponding fields in the specimen table via SQL after update trigger on genotype table. To help with specimens with multiple genotypes, genotypespecimen table has a new field named InheritanceFlag. This field is used by the trigger script for the permission value replication. This improves the speed of the list specimen with pagination.
* Table for multiloctrial has been renamed to trialgroup and its fields' name are renamed as well.
* Search interface via Solr enterprise search engine has been improved with proper error handling. There are 2 new interfaces to list all available Solr cores and list entities in each Solr core.
* Every DAL interface will return the time the server takes to execute the DAL code at the server side. This time excludes client processing, network traffic, and the web server handling. However, this information will help isolate performance problems and help future performance optimisation work.
* New interface to list marker data for specific extract across all datasets in the system with a defined dataset type.
Minor:
* The performance of add/update specimen interfaces has been improved.
* The performance of list genotype interface for a specific specimen has been improved.
* The performance of list aliases interface for a specific genotype has been improved.
* The performance of import item interface has been improved.
* List specimen keyword interface supports pagination and filtering.
* There is a new interface to append marker data to an existing dataset to help loading 2GB+ marker data set.
* Bug regarding missing DateAdded and Active fields in import itemgroup has been fixed.
* DAL supports a point for a site or a trial as well as polygon and multi polygon as the shape for its geometry object.
Detailed list of changes from version 2.3.0 to 2.3.2:
User and group related calls:
* 'user/_username/reset/password' - has been depreciated
* New calls were added:
** 'get/userpreference'
** 'update/userpreference'
** 'update/group/_id'
Search functionality
* New calls were added
** 'list/solrcore'
** 'solrcore/_core/list/entity'
** 'search/_core/_nperpage/page/_num'
Item units are now replaced by generalunits - depreciated calls:
* 'add/itemunit'
* 'delete/itemunit/_id'
* 'update/itemunit/_id'
* 'get/itemunit/_id'
* 'list/itemunit'
Whole new set of calls related to keywords:
* 'add/keyword'
* 'update/keyword/_id'
* 'list/keyword/_nperpage/page/_num'
* 'get/keyword/_id'
* 'delete/keyword/_id'
* 'add/keywordgroup'
* 'update/keywordgroup/_id'
* 'list/keywordgroup/_nperpage/page/_num'
* 'get/keywordgroup/_id'
* 'keywordgroup/_id/add/keyword/bulk'
* 'keywordgroup/_id/list/keyword'
* 'keywordgroup/_id/remove/keyword/_kwdid'
* 'delete/keywordgroup/_id'
Attaching keywords to specimens:
* 'specimen/_id/add/keyword'
* 'specimen/_id/list/keyword/_nperpage/page/_num'
* 'specimen/_id/list/keyword'
* 'list/specimenkeyword/_nperpage/page/_num'
* 'remove/specimenkeyword/_id'
Attaching keywords to trial units
* 'import/trialunitkeyword/csv'
* 'trialunit/_id/list/keyword/_nperpage/page/_num'
* 'trialunit/_id/list/keyword'
* 'list/trialunitkeyword/_nperpage/page/_num'
* 'trialunit/_id/add/keyword'
* 'remove/trialunitkeyword/_id'
New calls to support more options in genotype pedeigree
* 'import/genpedigree/csv'
* 'export/genpedigree'
* 'update/genpedigree/_id'
* 'delete/genpedigree/_id'
New calls for crossing design in trial (nursery):
* 'import/crossing/csv'
* 'trial/_trialid/list/crossing'
Unit positions has been re-factored, are related calls depreciated:
* 'add/unitposition'
* 'list/unitposition'
* 'get/unitposition/_id'
* 'update/unitposition/_id'
* 'list/unitpositionfield'
* 'delete/unitposition/_id'
Multiloc trials has been renamed to more generic trialgroup
* Depreciated list of calls:
** 'add/multiloctrial'
** 'update/multiloctrial/_id'
** 'list/multiloctrial/_nperpage/page/_num'
** 'get/multiloctrial/_id'
** 'delete/multiloctrial/_id'
** 'multiloctrial/_id/add/trial'
** 'multiloctrial/_id/remove/trial/_tid'
* Replacement calls:
** 'add/trialgroup'
** 'update/trialgroup/_id'
** 'list/trialgroup/_nperpage/page/_num'
** 'get/trialgroup/_id'
** 'delete/trialgroup/_id'
** 'trialgroup/_id/add/trial'
** 'trialgroup/_id/remove/trial/_tid'
New call to bulk import extracts for a plate:
* 'import/plate/n/extract/xml'
New way to list extracts with pagination:
* Depreciated call: 'list/extract'
* Replacement call: 'list/extract/_nperpage/page/_num'
More new ways to list extracts:
* 'plate/_plateid/list/extract'
* 'dataset/_dsid/list/extract'
More flexible way to list marker data (removing one marker limit):
* Depreciated call: 'analysisgroup/_analid/marker/_mrkid/list/data/_nperblock/block/_num'
* Replacement call: 'list/extractmarkerdata/_nperpage/page/_num/n/_nperblock/block/_bnum'
Depreciated calls from environment module related to valuetype (now use generalunit):
* 'list/layerattrib/valuetype'
* 'add/layerattrib/valuetype'
* 'update/layerattrib/valuetype/_id'
* 'get/layerattrib/valuetype/_id'
* 'delete/layerattrib/valuetype/_id'
Error info has been depreciated:
* 'get/errorinfo/_id'
Version 2.3.1-1
Date: 16/05/2016
Major:
* Listing extract marker data across all accessible datasets on the same dataset type with full marker and extract filtering.
* Optimisation for large (100k+ extract) marker dataset importation.
* Search prototype based on Solr search solution.
Minor:
* Listing and exporting marker data from an analysis group or dataset supports filtering on an individual extract score, for example, E_6107=1&CallRate>0.95, which lists all markers that have scored 1 for extract 6107 and have CallRate above 0.95.
* Exporting marker data supports extract filtering in addition to the existing marker filtering and extract field list.
* Level attribute in ancestor and descendant records is correctly reported.
Version 2.3.1
Date: 18/12/2015
Major:
* Cookie expiry when logging out is reverted to -1d. In version 2.2.7 and 2.3, when DAL session is logged out, DAL keep the expiry of the cookies the same but set the cookie values to empty strings. Before these versions, the logout will set the cookie expiry to -1d. However, there were some issues with multimedia file download. Once easy solution to the multimedia file download issue at the time was not chnage the cookie expiry setting. However, this change caused a problem for the new KDSen online which relies on the logout setting cookie expiry to -1d. In terms of downloading multimedia files, a proper solution was in place. So both issues should be fixed.
* Support keyword management, trial unit keyword and specimen keyword.
* Support sub-plot scoring by having TrialUnitSpecimenId as an optional field in samplemeasurement table.
Minor:
* import/itemgroup/xml is faster by using SQL bulk record insert.
* add/plate/n/extract is more up-to-date with the schema and faster. It now uses SQL bulk insert to create extract records.
List of CHANGES from version 2.2.5 to 2.3
Feature changes:
- There are 61 new interfaces introduced in the new version. See details below.
- 9 interfaces has been removed. Carefully review information below.
- 6 interfaces has been renamed. All details and explanations below.
- Marker module has been re-implemented into a new database back-end. It uses now MonetDB for large table storage. It means vast improvements in speed and efficiency.
- Marker module now supports more than one dataset per analysis. Associated interface changes:
* analysisgroup/_id/list/dataset
* dataset/_datasetid/export/markerdata/csv
- Additionally to csv export there is now an option to list marker data in pages and column blocks. Added interfaces are:
* analysisgroup/_analid/list/marker/_nperpage/page/_num
* analysisgroup/_analid/get/marker/_id
* analysisgroup/_analid/list/markerdata/_nperpage/page/_num/n/_nperblock/block/_bnum
- Now there is a full support for marker maps storage. New interfaces added:
* add/markermap
* update/markermap/_id
* list/markermap
* get/markermap/_id
* markermap/_mrkmapid/import/mapposition/csv
* markermap/_mrkmapid/list/mapposition/_nperpage/page/_num
- Concept of measurement units vocabulary has been re-worked. Now it is generic and centralized across the entire system. See renamed interfaces:
* add/generalunit (from previous URL: add/itemunit)
* delete/generalunit/_id (from previous URL: delete/itemunit/_id)
* update/generalunit/_id (from previous URL: update/itemunit/_id)
* get/generalunit/_id (from previous URL: get/itemunit/_id)
* list/generalunit/_nperpage/page/_num (from previous URL: list/itemunit)
- Following the change in measurement units vocabulary concept, layerattrib table in Environmental GIS module has been removed and now uses generalunit table. Thus number of interfaces has been removed:
* list/layerattrib/valuetype
* add/layerattrib/valuetype
* update/layerattrib/valuetype/_id
* get/layerattrib/valuetype/_id
* delete/layerattrib/valuetype/_id
- Units vocabulary now also support unit conversion rules. New interfaces are:
* generalunit/_id/add/conversionrule
* delete/conversionrule/_id
* update/conversionrule/_id
* list/conversionrule
* get/conversionrule/_id
- Breeding method support has been extended. Now supports acronyms and better pedigree strings definitions.
- Specimen lists support has been extended. System user has a better control of ownership and sharing germplasm resources.
- Trial unit positions concept has been re-worked. trialunitpostion table and it's factor is no longer present in the database. trialdimension table has been introduced and relevant changes has been done to the trialunit table instead. Please, see database schema for model changes details.
REMOVED INTERFACES:
* list/unitposition
* get/unitposition/_id
* update/unitposition/_id
* delete/unitposition/_id
NEW INTERFACES:
* trial/_id/add/dimension
* trial/_id/list/dimension
* get/trialdimension/_id
* update/trialdimension/_id
* delete/trialdimension/_id
- Support for workflows definition and workflow data for trials has been completed.
* add/workflow
* update/workflow/_id
* delete/workflow/_id
* list/workflow
* get/workflow/_id
* workflow/_id/add/definition
* update/workflowdef/_id
* workflow/_id/list/definition
* get/workflowdef/_id
* delete/workflowdef/_id
* trial/_id/add/workflow
* update/trialworkflow/_id
* trial/_id/list/workflow
* get/trialworkflow/_id
* delete/trialworkflow/_id
- Trials can now be assembled into multi-location groups. New interfaces:
* add/multiloctrial
* update/multiloctrial/_id
* list/multiloctrial/_nperpage/page/_num
* get/multiloctrial/_id
* delete/multiloctrial/_id
* multiloctrial/_id/add/trial
* multiloctrial/_id/remove/trial/_tid
- Better (broader) support of trait validation rules - now includes CHOICE and RANGE.
- Better GeoJSON support in Environmental GIS module.
- Extended support for layer and layer data management. Layer2d is now fully supported too. New interfaces:
* delete/layer/_id
* update/layerattrib/_id
* delete/layerattrib/_id
* layer/_id/list/data/_nperpage/page/_num
* layer/_id/add/data
* layer/_id/update/data
* layer/_id/delete/data
* layer2d/_id/add/data
* layer2d/_layerid/update/data/_recid
* layer2d/_layerid/list/data/_nperpage/page/_num
* layer2d/_layerid/get/data/_recid
* layer2d/_layerid/delete/data/_recid
- DAL can now be configured to authenticate against Google OAuth2 protocol. New interface:
* oauth2google
- Extra interfaces added to manage multimedia:
* get/multimedia/_id
* update/multimedia/_id
* delete/multimedia/_id
- New interface to import inventory data in bulk:
* import/item/csv
- Count group by interface added. Useful to count records per values in tables:
* _tname/countgroupby/_nperpage/page/_num
- System group management interfaces has been renamed:
* group/_id/add/member/_username (from previous URL: group/_id/add/member/_username/_random)
- All configuration settings are now moved to a configuration file.
- DAL now checks the maximum length of all text fields. If the input is longer than the maximum number of characters specified in the database, DAL will return a DAL error with an HTTP status error code of 420.
- Number of bug fixes and a lot of new test cases added.
Version 2.3
Date: 19/10/2015
Major:
+ Marker data is stored in MonetDB.
+ Config is moved from Common.pm to kddart_dal.cfg.
+ Workflow is supported.
+ Unit position is replaced with trial dimension.
Minor:
+ List user will return all users if the login group is the admin group with an ID of zero; otherwise the interface will return only the users in the current login group.
+ Support geojson for list and get trial.
+ Support filtering on null value.
Version 2.2.7
Minor:
+ Check max len for all varchar fields.
+ Change empty string to undef as the default value for datetime.
+ Change the temporary directory from '/tmp/kddart' to '/srv/www/tmp/kddart'. Apache2.4 on openSuSe 13.2 cannot write to '/tmp/kddart'.
+ Fix bug 886 which prevents '3>2.3,4' which is valid in Perl from being a valid boolean expression.
+ RANGE, BERANGE, LERANGE and RERANGE supports floating point numbers and negative values.
+ Google OAuth2 callback is supported. With Google OAuth2 support, DAL returns the username when the login or google oauth2 callback is successful in addition to the user id and the write token.
+ Support BOOLEX((x>0 and x<10) or x eq 'NA').
+ Admin user password is changed to 'kddartadmin'.
Version 2.2.6
Major:
+ Add, update, get and list and import markermap are available.
+ Count group by interface is available.
+ Cookie authetication is upgraded to check and protect files under storage directory which stores marker data and multimedia files.
+ Instance number is based on both TraitId and TrialId. In previous versions of DAL, instance number is like a auto number. From this version onward, instance number is incremented based on the specific trial.
+ GIS/Environment module: 2D layer type is supported.
Minor:
+ New interfaces to list marker in an analysisgroup.
+ Update layer supports changing layertype and geometry type if the layer does not any data yet.
+ Filtering parameter is available for update item.
+ Fix GenotypeSpecimenType perl variable declaration bug (#1735).
+ Fix update trial unit specimen bug (#1434).
+ Apache configuration changes for storage directory.
+ Fix instance number column which does not have data in export KDSmart data.
+ Export samplemeasurement csv can take TrialIdCSV as its additional filtering parameter. If TrialUnitIdCSV is provided as well, the export will only return the intersected records that match both TrialId and TrialUnitId filtering criteria (feature #1511).
+ Fix bug #1481 when the number of trait replicates for all the traits in the selected trial is all zero, DAL will return an error 'No trait selected'.
+ Fix bug #1776 regarding missing field in list layer and get layer interfaces.
Version 2.2.5
Major:
+ DAL HTTP error is changed from 401 to 420 for all errors, except for login required error, group selection required error, group administration required error and the errors in login/_username/_rememberme.
Minor:
+ Enable adding an empty plate without any extract.
+ List/field now returns field descriptions as well.
+ First release of online help for every interface.
+ login/_username/_rememberme is put back in the list of operations.
Version 2.2.4
Major:
+ Online help is available for some operations.
+ update/layer/:id is available.
+ Add SpecimenNote to specimengroupentry affecting list/specimengroup/:nperpage/page/:num, get/specimengroup/:id, add/specimengroup, specimengroup/:specgrpid/add/specimen.
+ Prior to version 2.2.4, add/specimengroup and specimengroup/:specgrpid/add/specimen used to take duplicate SpecimenId. Duplicate checking is in place in DAL v2.2.4.
Minor:
+ Fix download datakapture template link when the trial has no trial unit.
+ list/layer provides lastrecorddate for all the layer attributes which has data.
Version 2.2.3
Major:
+ Fix slowness in list small tables like list/breedingmethod. list/breedingmethod was slow in version 2.2.2 because for every breedingmethod DAL checks if this breeding method is used in specimen table or not. If it is not used, DAL will give a delete link. The fix for all list interface is that DAL checks if the record is used in other tables for the delete link in bulk. This improveslist/breedingmethod from 25 seconds to 400 milliseconds. Bulk checking for delete link and other related database record lookup is introduced in this version.
+ Add the filtering feature to list/sepcimengroup and list/itemgroup. This means that list/specimengroup and list/itemgroup are replaced with list/specimengroup/:nperpage/page/:num and list/itemgroup/:nperpage/page/:num.
+ Introduce list/pedigree/:nperpage/page/:num and list/genpedigree/:nperpage/page/:num.
Minor:
+ Make add/specimengroup to accept the situation when specimen is not provided. This is done by modifying specimengroup.dtd.
Version 2.2.2
Major:
+ Genotype alias has type, status and language fields.
+ Introduction of genotype pedigree in addition to specimen pedigree. Genotype pedigree or gen pedigree is seen as the breeding history (pedigree) while specimen pedigress is seen as selection history.
+ Add/list multimedia files for genotype, specimen and site.
+ Being able to filter on factor columns in organisation, contact, site, trial and project.
Minor:
+ Listing genotype alias supports advanced features including filtering.
+ List genotype ancestor and descendant are available.
+ List specimen ancestor and descendant are available.
+ Add, list and get barcodeconf are available.
+ list/factor returns all fields in the factor table.
+ 'factor/table/:tname/add/vcolumn' becomes 'factortable/:tname/add/vcolumn'.
----------------------------------------------------------------------------------------
Version 2.2.1
This is a minor release to enable uploading large marker data files of more than several hundreds megabytes.
Major:
+ Changes in marker module schema in order to store marker data in the csv file
+ Import marker data is now based on a csv file storage system.
+ Export marker data is also based on the csv file storage system.
+ Export marker data supports filtering and field selection. Field selection is controlled by two optional parameters (MarkerMetaFieldList and MarkerDataFieldList).
Minor:
+ Analysisgroup has an interface to list the meta data fields.
+ Due to circular foreign key references between item and trialunitspecimen and other tables and time constraint, the foreign key references are not available in the database schemas embedded with this release.