source: trunk/grails-app/conf/BootStrapTemplates.groovy @ 635

Last change on this file since 635 was 626, checked in by keesvb, 12 years ago

removed example templates and studies from BootStrap? to separate files

File size: 22.2 KB
Line 
1/**
2 * @Author kees
3 * @Since Jun 25, 2010
4 *
5 * Revision information:
6 * $Rev: $
7 * $Author: $
8 * $Date: $
9 */
10
11import dbnp.studycapturing.*
12import dbnp.data.Ontology
13
14class BootStrapTemplates {
15
16        public static void initTemplates() {
17
18                // Create templates
19                println ".adding example templates"
20
21                def genderField = new TemplateField(
22                        name: 'Gender',type: TemplateFieldType.STRINGLIST, entity: Subject,
23                        listEntries: [new TemplateFieldListItem(name:'Male'),new TemplateFieldListItem(name: 'Female'),new TemplateFieldListItem(name: 'Unknown')])
24                .with { if (!validate()) { errors.each { println it} } else save()}
25
26                def ageField = new TemplateField(
27                        name: 'Age',type: TemplateFieldType.INTEGER,entity: Subject,unit: 'years',comment: 'Either include age at the start of the study or date of birth (if known)')
28                .with { if (!validate()) { errors.each { println it} } else save()}
29
30                def genotypeField = new TemplateField(
31                        name: 'Genotype', type: TemplateFieldType.STRING,entity: Subject,
32                        comment: 'If present, indicate the genetic variance of the subject (e.g., mutagenized populations,knock-out/in,transgene etc)')
33                .with { if (!validate()) { errors.each { println it} } else save()}
34
35                 def genotypeTypeField = new TemplateField(
36                        name: 'Genotype type',type: TemplateFieldType.STRINGLIST,entity: Subject,
37                        listEntries: [new TemplateFieldListItem(name:'wildtype'),
38                                new TemplateFieldListItem(name:'transgenic'),
39                                new TemplateFieldListItem(name:'knock-out'),
40                                new TemplateFieldListItem(name:'knock-in')],
41                        comment: 'If a genotype was specified, please indicate here the type of the genotype')
42                .with { if (!validate()) { errors.each { println it} } else save()}
43
44                def varietyField = new TemplateField(
45                        name: 'Variety', type: TemplateFieldType.STRING,entity: Subject,
46                        comment: 'taxonomic category consisting of members of a species that differ from others of the same species in minor but heritable characteristics')
47                .with { if (!validate()) { errors.each { println it} } else save()}
48
49                def ecotypeField = new TemplateField(
50                        name: 'Ecotype', type: TemplateFieldType.STRING,entity: Subject,
51                         comment: 'a type or subspecies of life that is especially well adapted to a certain environment'
52                )
53                 .with { if (!validate()) { errors.each { println it} } else save()}
54
55
56                // Nutritional study template
57                println ".adding academic study template..."
58                def studyTemplate = new Template(
59                        name: 'Academic study',
60                        entity: dbnp.studycapturing.Study
61                )
62                .addToFields(new TemplateField(name: 'Description',type: TemplateFieldType.TEXT, entity: Study,comment:'Describe here the type of subjects and the treatment, challenges and sampling.'))
63                .addToFields(new TemplateField(name: 'Objectives',type: TemplateFieldType.TEXT,entity: Study,comment:'Fill out the aim or questions of the study'))
64                .addToFields(new TemplateField(name: 'Consortium',type: TemplateFieldType.STRING,entity: Study,comment:'If the study was performed within a consortium (e.g. NMC, NuGO), you can indicate this here'))
65                .addToFields(new TemplateField(name: 'Cohort name',type: TemplateFieldType.STRING,entity: Study,comment:'If a cohort was used the name or code of the cohort can be define here (define a cohort template)'))
66                .addToFields(new TemplateField(name: 'Lab id',type: TemplateFieldType.STRING,entity: Study,comment:'In which lab was the study performed; indicate the roomnumber.'))
67                .addToFields(new TemplateField(name: 'Institute',type: TemplateFieldType.STRING,entity: Study,comment:'In which institute was the study performed; indicate the full address information (to be replaced by persons-affiliations?)'))
68                .addToFields(new TemplateField(name: 'Study protocol',type: TemplateFieldType.FILE,entity: Study,comment:'Optionally attach a file in which the protocol in the study is described'))
69                .with { if (!validate()) { errors.each { println it} } else save()}
70
71                // Mouse template
72                println ".adding mouse subject template..."
73                def mouseTemplate = new Template(
74                        name: 'Mouse', entity: dbnp.studycapturing.Subject)
75                .addToFields(new TemplateField(
76                        name: 'Strain', type: TemplateFieldType.ONTOLOGYTERM, ontologies: [Ontology.getOrCreateOntologyByNcboId(1032)], entity: Subject, comment: "This is an ontology term, if the right strain is not in the list please add it with 'add more'"))
77                .addToFields(genotypeField)
78                .addToFields(genotypeTypeField)
79                .addToFields(genderField)
80                .addToFields(new TemplateField(
81                        name: 'Age', type: TemplateFieldType.INTEGER, entity: Subject, unit: 'weeks', comment: 'Age at start of study'))
82                .addToFields(new TemplateField(
83                        name: 'Age type',type: TemplateFieldType.STRINGLIST,entity: Subject,
84                        listEntries: [new TemplateFieldListItem(name:'postnatal'),new TemplateFieldListItem(name:'embryonal')]))
85                .addToFields(new TemplateField(
86                        name: 'Cage',type: TemplateFieldType.STRING,entity: Subject,comment:'Indicate the cage used for housing (type and/or size)'))
87                .addToFields(new TemplateField(
88                        name: '#Mice in cage',type: TemplateFieldType.INTEGER,entity: Subject,comment:'If known, indicate the number of mice per cage'))
89                .addToFields(new TemplateField(
90                        name: 'Litter size',type: TemplateFieldType.INTEGER,entity: Subject,comment:'If known, indicate the litter size of the litter from which the subject originates'))
91                .addToFields(new TemplateField(
92                        name: 'Weight', type: TemplateFieldType.DOUBLE, unit: 'gram',entity: Subject,comment:'If known indicate the weight of the subject in grams at the start of the study'))
93                .with { if (!validate()) { errors.each { println it} } else save()}
94
95                // Human template
96                println ".adding human subject template..."
97                def humanTemplate = new Template(
98                        name: 'Human', entity: dbnp.studycapturing.Subject)
99                .addToFields(genderField)
100                .addToFields(ageField)
101                .addToFields(new TemplateField(
102                        name: 'DOB',type: TemplateFieldType.DATE,entity: Subject,comment:'Date of birth'))
103                .addToFields(new TemplateField(
104                        name: 'Height',type: TemplateFieldType.DOUBLE, entity: Subject, unit: 'm'))
105                .addToFields(new TemplateField(
106                        name: 'Weight',type: TemplateFieldType.DOUBLE, entity: Subject, unit: 'kg'))
107                .addToFields(new TemplateField(
108                        name: 'BMI',type: TemplateFieldType.DOUBLE, entity: Subject, unit: 'kg/m2',comment:'Body-mass-index'))
109                .addToFields(new TemplateField(
110                        name: 'Race',type: TemplateFieldType.STRING,entity: Subject, comment:'If known and of interest the ethnic group can be indicated'))
111                .addToFields(new TemplateField(
112                        name: 'Waist circumference',type: TemplateFieldType.FLOAT, unit: 'cm',entity: Subject, comment:'The waist circumference is measured just above the hip bone. Indicate the measure at the start of the study.'))
113                .addToFields(new TemplateField(
114                        name: 'Hip circumference',type: TemplateFieldType.FLOAT, unit: 'cm',entity: Subject, comment:'The hip circumference is measured at the level of the two bony prominences front of the hips. Indicate the measure at the start of the study.'))
115                .addToFields(new TemplateField(
116                        name: 'Systolic blood pressure',type: TemplateFieldType.FLOAT, unit: 'mmHg',entity: Subject, comment:'Indicate the levels at the start of the study in mmHG'))
117                .addToFields(new TemplateField(
118                        name: 'Diastolic blood pressure',type: TemplateFieldType.FLOAT, unit: 'mmHg',entity: Subject, comment:'Indicate the levels at the start of the study in mmHG'))
119                .addToFields(new TemplateField(
120                        name: 'Heart rate',type: TemplateFieldType.FLOAT, unit: 'beats/min',entity: Subject, comment:'Indicate the heart rate at the start of in study in beats per minute'))
121                .addToFields(new TemplateField(
122                        name: 'Run-in-food',type: TemplateFieldType.TEXT,entity: Subject, comment:'If defined, give a short description of the food used before the measurements'))
123                .with { if (!validate()) { errors.each { println it} } else save()}
124
125                println ".adding sample remarks field"
126                def sampleRemarksField = new TemplateField(
127                        name: 'Remarks',
128                        type: TemplateFieldType.TEXT,
129                    entity: Sample
130                )
131                .with { if (!validate()) { errors.each { println it} } else save()}
132
133                println ".adding sample vial textfield"
134                def sampleVialTextField = new TemplateField(
135                        name: 'Text on vial',
136                        type: TemplateFieldType.STRING,
137                    entity: Sample
138                )
139                .with { if (!validate()) { errors.each { println it} } else save()}
140
141                // Human tissue sample template
142                println ".adding human sample template..."
143                def humanSampleTemplate = new Template(
144                        name: 'Human tissue sample',
145                        entity: dbnp.studycapturing.Sample
146                )
147                .addToFields(sampleRemarksField)
148                .addToFields(sampleVialTextField)
149                .addToFields(
150                        new TemplateField(
151                            name: 'Sample measured weight',
152                            unit: 'mg',
153                            type: TemplateFieldType.FLOAT,
154                        entity: Sample
155                        )
156                )
157                .with { if (!validate()) { errors.each { println it} } else save()}
158
159                // Human blood sample template
160                println ".adding human sample template..."
161                def humanBloodSampleTemplate = new Template(
162                    name: 'Human blood sample',
163                        entity: dbnp.studycapturing.Sample
164                )
165                .addToFields(sampleRemarksField)
166                .addToFields(sampleVialTextField)
167                .addToFields(
168                        new TemplateField(
169                            name: 'Sample measured volume',
170                            unit: 'ml',
171                            type: TemplateFieldType.FLOAT,
172                                entity: Sample
173                        )
174                )
175                .with { if (!validate()) { errors.each { println it} } else save()}
176
177                /*
178                def GrowthTreatmentTemplate = new Template(
179                        name: 'Growth treatment',
180                        entity: dbnp.studycapturing.Event
181                )
182                .addToFields(sampleDescriptionField)
183                .addToFields(new TemplateField(name: 'position X',type: TemplateFieldType.STRING))
184                .addToFields(new TemplateField(name: 'position Y',type: TemplateFieldType.STRING))
185                .addToFields(new TemplateField(name: 'Block',type: TemplateFieldType.STRING))
186                .addToFields(new TemplateField(name: 'Temparature Day',type: TemplateFieldType.STRING))
187                .addToFields(new TemplateField(name: 'Temparature Night',type: TemplateFieldType.STRING))
188                .addToFields(new TemplateField(name: 'Light Intensity',type: TemplateFieldType.STRING))
189                .addToFields(new TemplateField(name: 'Harvest Delay',type: TemplateFieldType.STRING))
190                .with { if (!validate()) { errors.each { println it} } else save()}
191                 */
192
193                //Plant template
194                println ".adding geenhouse plant template..."
195                def greenHouseTemplate = new Template(
196                        name: 'Plant-green house ',
197                        entity: dbnp.studycapturing.Subject
198                )
199                .addToFields(varietyField)
200                .addToFields(ecotypeField)
201                 .addToFields(genotypeField)
202                /*
203                .addToFields(genotypeTypeField)
204                .addToFields(
205                        new TemplateField(
206                                name: 'Growth location', type: TemplateFieldType.STRINGLIST,
207                                listEntries: [
208                                        new TemplateFieldListItem(name:'Greenhouse'),
209                                        new TemplateFieldListItem(name: 'Field')
210                                ]
211                        )
212                )
213                .addToFields(
214                        new TemplateField(
215                                name: 'Room', type: TemplateFieldType.STRING,
216                                comment: 'Chamber number in case of Greenhouse'
217                        )
218                )
219                */
220                .addToFields(
221                        new TemplateField(
222                                name: 'Chamber no.',
223                                type: TemplateFieldType.STRING,
224                                entity: Subject,
225                                comment: 'Chamber number in the Greenhouse'
226                        )
227                )
228                .addToFields(
229                        new TemplateField(
230                                name: 'Growth type',
231                                entity: Subject,
232                                type: TemplateFieldType.STRINGLIST,
233                                listEntries: [
234                                        new TemplateFieldListItem(name:'Standard'),
235                                new TemplateFieldListItem(name: 'Experimental'),
236                                new TemplateFieldListItem(name: 'Unknown')
237                                ]
238                        )
239                )
240                .addToFields(new TemplateField(
241                        name: 'Growth protocol', entity: Subject, type: TemplateFieldType.TEXT))
242                .addToFields(new TemplateField(
243                        name: 'Position X', entity: Subject, type: TemplateFieldType.FLOAT))
244                .addToFields(new TemplateField(
245                        name: 'Position Y', entity: Subject, type: TemplateFieldType.FLOAT))
246                .addToFields(new TemplateField(
247                        name: 'Block', entity: Subject, type: TemplateFieldType.STRING))
248                .addToFields(new TemplateField(
249                        name: 'Temperature at day', entity: Subject, type: TemplateFieldType.FLOAT))
250                .addToFields(new TemplateField(
251                        name: 'Temperature at night', entity: Subject, type: TemplateFieldType.FLOAT))
252                .addToFields(new TemplateField(
253                        name: 'Photo period', entity: Subject, type: TemplateFieldType.STRING))
254                .addToFields(new TemplateField(
255                        name: 'Light intensity', entity: Subject, type: TemplateFieldType.STRING))
256                .addToFields(new TemplateField(
257                        name: 'Start date', entity: Subject, type: TemplateFieldType.DATE))
258                .addToFields(new TemplateField(
259                        name: 'Harvest date', entity: Subject, type: TemplateFieldType.DATE))
260                .addToFields(new TemplateField(
261                        name: 'Harvest delay', entity: Subject, type: TemplateFieldType.TEXT))
262                .addToFields(new TemplateField(
263                        name: 'Additional info', entity: Subject, type: TemplateFieldType.TEXT))
264                .with { if (!validate()) { errors.each { println it} } else save()}
265
266                println ".adding open-field plant template..."
267                def FieldTemplate = new Template(
268                        name: 'Plant-open field',
269                        entity: dbnp.studycapturing.Subject
270                )
271                .addToFields(varietyField)
272                .addToFields(ecotypeField)
273                .addToFields(genotypeField)
274                .addToFields(new TemplateField(
275                        name: 'Start date', entity: Subject, type: TemplateFieldType.DATE))
276                .addToFields(new TemplateField(
277                        name: 'Harvest date', entity: Subject, type: TemplateFieldType.DATE))
278                .addToFields(new TemplateField(
279                        name: 'Growth type', entity: Subject, type: TemplateFieldType.STRINGLIST,
280                        listEntries: [new TemplateFieldListItem(name:'Standard'),new TemplateFieldListItem(name: 'Experimental')]))
281                .addToFields(new TemplateField(
282                        name: 'Growth protocol', entity: Subject, type: TemplateFieldType.TEXT))
283                .addToFields(new TemplateField(
284                        name: 'Harvest delay', entity: Subject, type: TemplateFieldType.TEXT))
285                .with { if (!validate()) { errors.each { println it} } else save()}
286
287                //Plant template
288                println ".adding chamber plant template..."
289                def chamberTemplate = new Template(
290                        name: 'Plant-chamber',
291                        entity: dbnp.studycapturing.Subject
292                )
293                .addToFields(varietyField)
294                .addToFields(ecotypeField)
295                .addToFields(genotypeField)
296                /*
297                .addToFields(genotypeTypeField)
298                .addToFields(
299                        new TemplateField(
300                                name: 'Growth location',
301                                type: TemplateFieldType.STRINGLIST,
302                                listEntries: [
303                                        new TemplateFieldListItem(name:'Greenhouse'),
304                                        new TemplateFieldListItem(name: 'Field')
305                                ]
306                        )
307                )
308                */
309                .addToFields(new TemplateField(
310                        name: 'Room', type: TemplateFieldType.STRING, entity: Subject,
311                        comment: 'room number'))
312                .addToFields(new TemplateField(
313                        name: 'Chamber no.', type: TemplateFieldType.STRING, entity: Subject,
314                        comment: 'Chamber number'))
315                .addToFields(new TemplateField(
316                        name: 'Block', type: TemplateFieldType.STRING, entity: Subject))
317                .addToFields(new TemplateField(
318                        name: 'Position X', type: TemplateFieldType.FLOAT, entity: Subject))
319                .addToFields(new TemplateField(
320                        name: 'Position Y', type: TemplateFieldType.FLOAT, entity: Subject))
321                .addToFields(new TemplateField(
322                        name: 'Temperature at day', type: TemplateFieldType.FLOAT, entity: Subject))
323                .addToFields(new TemplateField(
324                        name: 'Temperature at night', type: TemplateFieldType.FLOAT, entity: Subject))
325                .addToFields(new TemplateField(
326                        name: 'Photo period', type: TemplateFieldType.STRING, entity: Subject))
327                .addToFields(new TemplateField(
328                        name: 'Light intensity', type: TemplateFieldType.STRING, entity: Subject))
329                .addToFields(new TemplateField(
330                        name: 'Start date', type: TemplateFieldType.DATE, entity: Subject))
331                .addToFields(new TemplateField(
332                        name: 'Harvest date', type: TemplateFieldType.DATE, entity: Subject))
333                .addToFields(new TemplateField(
334                        name: 'Growth type', type: TemplateFieldType.STRINGLIST, entity: Subject,
335                        listEntries: [new TemplateFieldListItem(name:'Standard'),new TemplateFieldListItem(name: 'Experimental')]))
336                .addToFields(new TemplateField(
337                        name: 'Growth protocol', type: TemplateFieldType.TEXT, entity: Subject))
338                .addToFields(new TemplateField(
339                        name: 'Harvest delay', type: TemplateFieldType.TEXT, entity: Subject))
340                .with { if (!validate()) { errors.each { println it} } else save()}
341
342                println ".adding plant sample template..."
343                def plantSampleTemplate = new Template(
344                        name: 'Plant sample',
345                        entity: dbnp.studycapturing.Sample
346                )
347                .addToFields(sampleRemarksField)
348                .addToFields(sampleVialTextField)
349                .with { if (!validate()) { errors.each { println it} } else save()}
350
351                println ".adding material prep template"
352                def materialPrepTemplate = new Template(
353                        name: 'Plant-material preparation',
354                    description: 'material preparation',
355                    entity: dbnp.studycapturing.Event
356                )
357                .addToFields(new TemplateField(
358                         name: 'Tissue',
359                        type: TemplateFieldType.STRING,
360                        entity: Event,
361                    comment: 'organ/ fraction of culture/ plant part')
362                )
363                .addToFields(
364                        new TemplateField(
365                                 name: 'Grinding',
366                                type: TemplateFieldType.STRINGLIST,
367                                entity: Event,
368                            listEntries: [
369                                        new TemplateFieldListItem(name:'yes'),
370                                new TemplateFieldListItem(name: 'no'),
371                                new TemplateFieldListItem(name: 'unknown')
372                                ]
373                        )
374                )
375                .addToFields(
376                        new TemplateField(
377                                name: 'Storage location',
378                                type: TemplateFieldType.STRING,
379                                entity: Event
380                        )
381                )
382                .addToFields(
383                        new TemplateField(
384                                name: 'protocol reference',
385                                type: TemplateFieldType.STRING,
386                                entity: Event
387                        )
388                )
389                .with { if (!validate()) { errors.each { println it} } else save()}
390
391                def protocolField = new TemplateField(
392                        name: 'Protocol',
393                        type: TemplateFieldType.FILE,
394                        entity: Event,
395                        comment: 'You can upload a protocol here which describes the procedure which was used when carrying out the event'
396                )
397                .with { if (!validate()) { errors.each { println it} } else save()}
398
399                // diet treatment template
400                println ".adding diet treatement template"
401                def dietTreatmentTemplate = new Template(
402                        name: 'Diet treatment',
403                        entity: dbnp.studycapturing.Event
404                )
405                .addToFields(
406                        new TemplateField(
407                                name: 'Diet',
408                                type: TemplateFieldType.STRINGLIST,
409                                entity: Event,
410                                listEntries: [
411                                        new TemplateFieldListItem(name:'low fat'),
412                                        new TemplateFieldListItem(name: 'high fat')
413                                ]
414                        )
415                )
416                .addToFields(protocolField)
417                .with { if (!validate()) { errors.each { println it} } else save()}
418
419                // boost treatment template
420                println ".adding boost treatment template"
421                def boostTreatmentTemplate = new Template(
422                        name: 'Compound challenge',
423                        entity: dbnp.studycapturing.Event
424                )
425                .addToFields(
426                        new TemplateField(
427                                name: 'Compound',
428                                type: TemplateFieldType.ONTOLOGYTERM,
429                                entity: Event,
430                                ontologies: [Ontology.getOrCreateOntologyByNcboId(1007)]
431                        )
432                )
433                .addToFields(
434                        new TemplateField(
435                                name: 'Control',
436                                type: TemplateFieldType.BOOLEAN,
437                                entity: Event
438                        )
439                )
440                .addToFields(protocolField)
441                .with { if (!validate()) { errors.each { println it} } else save()}
442
443                // fasting treatment template
444                println ".adding fasting treatment template"
445                def fastingTreatment = new Template(
446                        name: 'Fasting treatment',
447                        description: 'Fasting for a specific amount of time',
448                        entity: dbnp.studycapturing.Event
449                )
450                .addToFields(
451                        new TemplateField(
452                                name: 'Fasting period',
453                                type: TemplateFieldType.RELTIME,
454                                entity: Event
455                        )
456                )
457                .with { if (!validate()) { errors.each { println it} } else save()}
458
459                // SamplingEvent templates
460                println ".adding sampling protocol template field"
461                def samplingProtocolField = new TemplateField(
462                        name: 'Sample Protocol',
463                        entity: SamplingEvent,
464                        type: TemplateFieldType.FILE,
465                        comment: 'You can upload a protocol here which describes the procedure which was used when carrying out the sampling event'
466                )
467                .with { if (!validate()) { errors.each { println it} } else save()}
468
469                // liver sampling event template
470                println ".adding liver sampling event template"
471                def liverSamplingEventTemplate = new Template(
472                        name: 'Liver extraction',
473                        description: 'Liver sampling for transcriptomics arrays',
474                        entity: dbnp.studycapturing.SamplingEvent
475                )
476                .addToFields(samplingProtocolField)
477                .addToFields(
478                        new TemplateField(
479                                name: 'Sample weight',
480                                unit: 'mg',
481                                entity: SamplingEvent,
482                                type: TemplateFieldType.FLOAT
483                        )
484                )
485                .with { if (!validate()) { errors.each { println it} } else save()}
486
487                // blood sampling
488                println ".adding blood sampling event template"
489                def bloodSamplingEventTemplate = new Template(
490                        name: 'Blood extraction',
491                        description: 'Blood extraction targeted at lipid assays',
492                        entity: dbnp.studycapturing.SamplingEvent
493                )
494                .addToFields(samplingProtocolField)
495                .addToFields(
496                        new TemplateField(
497                                name: 'Sample volume',
498                                entity: SamplingEvent,
499                                unit: 'ml',
500                                type: TemplateFieldType.FLOAT
501                        )
502                )
503                .with { if (!validate()) { errors.each { println it} } else save()}
504
505                // plant sample extraction event template
506                println ".adding plant sample extraction event template"
507                def plantSamplingExtractEventTemplate = new Template(
508                        name: 'Plant sample extraction',
509                        description: 'sample extraction',
510                        entity: dbnp.studycapturing.SamplingEvent,
511                    sampleTemplates: [plantSampleTemplate]
512                )
513                .addToFields(samplingProtocolField)
514                .addToFields(
515                        new TemplateField(
516                                name: 'Sample weight',
517                                unit: 'ul',
518                                entity: SamplingEvent,
519                                type: TemplateFieldType.FLOAT
520                        )
521                )
522                .addToFields(
523                        new TemplateField(
524                                name: 'Sample when measured',
525                                type: TemplateFieldType.STRINGLIST,
526                                entity: SamplingEvent,
527                             listEntries: [
528                                         new TemplateFieldListItem(name:'Dried'),
529                             new TemplateFieldListItem(name: 'Fresh'),
530                             new TemplateFieldListItem(name: 'Unknown')
531                                 ]
532                        )
533                )
534                .with { if (!validate()) { errors.each { println it} } else save()}
535
536                // plant sampling event template
537                println ".adding plant sampling event template"
538                def plantSamplingEventTemplate = new Template(
539                        name: 'Plant-sample ',
540                        description: 'plant sample ',
541                        entity: dbnp.studycapturing.SamplingEvent,
542                    sampleTemplates: [plantSampleTemplate]
543                )
544                //.addToFields(samplingProtocolField)
545                .addToFields(
546                        new TemplateField(
547                                name: 'material',
548                            comment: 'physical charecteristic. e.g, grounded powder of tomato seed or liquid',
549                                entity: SamplingEvent,
550                                type: TemplateFieldType.STRING
551                        )
552                )
553                .addToFields(
554                        new TemplateField(
555                                name: 'Description',
556                                type: TemplateFieldType.STRING,
557                                entity: SamplingEvent
558                        )
559                )
560                .addToFields(
561                        new TemplateField(
562                                name: 'extracted material',
563                                comment: 'substance to be extracted. e.g., lipids, volatiles, primary metabolites etc',
564                                type: TemplateFieldType.STRING,
565                                entity: SamplingEvent
566                        )
567                )
568                .addToFields(
569                        new TemplateField(
570                                name: 'Text on vial',
571                                entity: SamplingEvent,
572                                type: TemplateFieldType.STRING
573                        )
574                )
575                .with { if (!validate()) { errors.each { println it} } else save()}
576
577        }
578
579}
Note: See TracBrowser for help on using the repository browser.