source: trunk/grails-app/conf/BootStrap.groovy @ 148

Last change on this file since 148 was 148, checked in by ademcan, 10 years ago

reorganization of the study views : template and protocol views in the accordion menu

  • Property svn:keywords set to Date Author Rev
File size: 7.0 KB
Line 
1import org.codehaus.groovy.grails.commons.GrailsApplication
2import grails.util.GrailsUtil
3import dbnp.studycapturing.*
4
5import dbnp.data.Ontology
6import dbnp.data.Term
7
8/**
9 * Application Bootstrapper
10 * @Author Jeroen Wesbeek
11 * @Since 20091021
12 *
13 * Revision information:
14 * $Rev: 148 $
15 * $Author: ademcan $
16 * $Date: 2010-01-29 11:51:25 +0000 (vr, 29 jan 2010) $
17 */
18class BootStrap {
19        def init = {servletContext ->
20                // define timezone
21                System.setProperty('user.timezone', 'CET')     
22
23                if (GrailsUtil.environment == GrailsApplication.ENV_DEVELOPMENT) {
24                        printf("development bootstrapping....\n\n");
25
26                        // ontologies
27                        def speciesOntology = new Ontology(
28                                name: 'NCBI Taxonomy',
29                                shortName: 'Taxon',
30                                url: 'http://www.obofoundry.org/cgi-bin/detail.cgi?id=ncbi_taxonomy'
31                        ).with { if (!validate()) { errors.each { println it} } else save()}
32
33
34                        // terms
35                        def mouseTerm = new Term(
36                                name: 'Mus musculus',
37                                ontology: speciesOntology,
38                                accession: '10090'
39                        ).with { if (!validate()) { errors.each { println it} } else save()}
40                        def humanTerm = new Term(
41                                name: 'Homo sapiens',
42                                ontology: speciesOntology,
43                                accession: '9606'
44                        ).with { if (!validate()) { errors.each { println it} } else save()}
45
46                        def madmaxOntology = new Ontology(
47                                name: 'Madmax ontology',
48                                shortName: 'MDMX',
49                                url: 'madmax.bioinformatics.nl'
50                        ).with { if (!validate()) { errors.each { println it} } else save()}
51
52                        def treatmentTerm = new Term(
53                                name: 'ExperimentalProtocol',
54                                ontology: madmaxOntology,
55                                accession: 'P-MDMXGE-264'
56                        ).with { if (!validate()) { errors.each { println it} } else save()}
57
58
59                        def treatmentProtocol = new Protocol(
60                                name: 'MADMAX Experimental Protocol',
61                                reference: treatmentTerm
62                        ).with { if (!validate()) { errors.each { println it} } else save()}
63
64                        treatmentProtocol
65                        .addToParameters(new ProtocolParameter(
66                                name: 'Diet',
67                                type: ProtocolParameterType.STRINGLIST,
68                                listEntries: ['10% fat (palm oil)','45% fat (palm oil)']))
69                        .addToParameters(new ProtocolParameter(
70                                name: 'Compound',
71                                type: ProtocolParameterType.STRINGLIST,
72                                listEntries: ['Vehicle','Leptin']))
73                        .addToParameters(new ProtocolParameter(
74                                name: 'Administration',
75                                type: ProtocolParameterType.STRING))
76                        .save()
77
78
79                        // create system user
80                        /*
81                        def systemUser = userService.createUser(InstanceGenerator.user(
82                                username: 'system',
83                                pass: 'system',
84                                passConfirm: 'system',
85                                enabled: true
86                        ))
87                        */
88
89                        // Mouse template
90                        def mouseTemplate = new Template(
91                                name: 'Mouse'
92                        ).addToSubjectFields(new TemplateSubjectField(
93                                name: 'Genotype',type: TemplateFieldType.STRINGLIST))
94                        .addToSubjectFields(new TemplateSubjectField(
95                                name: 'Gender',type: TemplateFieldType.STRINGLIST))
96                        .addToSubjectFields(new TemplateSubjectField(
97                                name: 'Age',type: TemplateFieldType.INTEGER))
98                        .addToSubjectFields(new TemplateSubjectField(
99                                name: 'Cage',type: TemplateFieldType.INTEGER))
100                        .with { if (!validate()) { errors.each { println it} } else save()}
101
102
103                        //events
104                        def eventTreatment = new EventDescription(
105                                name: 'Treatment',
106                                description: 'Experimental Treatment Protocol NuGO PPS3 leptin module',
107                                classification: treatmentTerm,
108                                protocol: treatmentProtocol
109                        ).with { if (!validate()) { errors.each { println it} } else save()}
110
111                        // studies
112                        def exampleStudy = new Study(
113                                title:"NuGO PPS3 mouse study leptin module",
114                                code:"PPS3_leptin_module",
115                                researchQuestion:"Leptin etc.",
116                                description:"C57Bl/6 mice were fed a high fat (45 en%) or low fat (10 en%) diet after a four week run-in on low fat diet. After 1 week 10 mice that received a low fat diet were given an IP leptin challenge and 10 mice of the low-fat group received placebo injections. The same procedure was performed with mice that were fed the high-fat diet. After 4 weeks the procedure was repeated. In total 80 mice were culled.",
117                                ecCode:"2007117.c",
118                                startDate: Date.parse('yyyy-MM-dd','2007-12-11'),
119                                template: mouseTemplate
120                        ).with { if (!validate()) { errors.each { println it} } else save()}
121
122                        def x=1
123                        12.times {
124                                def currentSubject = new Subject(
125                                        name: "A" + x++,
126                                        species: mouseTerm,
127                                        template: mouseTemplate,
128                                        templateStringFields: ["Genotype" : "C57/Bl6j", "Gender" : "Male"],
129                                        templateIntegerFields: ["Age" : 17, "Cage" : (int)(x/2)]
130                                ).with { if (!validate()) { errors.each { println it} } else save()}
131
132                                exampleStudy.addToSubjects(currentSubject)
133                                .addToEvents(new Event(
134                                        subject: currentSubject,
135                                        startTime: Date.parse('yyyy-MM-dd','2008-01-07'),
136                                        endTime: Date.parse('yyyy-MM-dd','2008-01-14'),
137                                        eventDescription: eventTreatment,
138                                        parameterStringValues: ['Diet':'10% fat (palm oil)','Compound':'Vehicle','Administration':'intraperitoneal injection'])
139                                ).with { if (!validate()) { errors.each { println it} } else save()}
140                        }
141
142
143                        def secondStudy = new Study(
144                                title:"NuGO PPS1 mouse study leptin module",
145                                code:"PPS1",
146                                researchQuestion:"etc.",
147                                description:"C57Bl/6 mice were fed a high fat (45 en%) or low fat (10 en%) diet after a four week run-in on low fat diet. After 1 week 10 mice that received a low fat diet were given an IP leptin challenge and 10 mice of the low-fat group received placebo injections. The same procedure was performed with mice that were fed the high-fat diet. After 4 weeks the procedure was repeated. In total 80 mice were culled.",
148                                ecCode:"2007.c",
149                                startDate: Date.parse('yyyy-MM-dd','2007-12-11'),
150                                template: mouseTemplate
151                        ).with { if (!validate()) { errors.each { println it} } else save()}
152
153                        def y=1
154                        5.times {
155                                def currentSubject = new Subject(
156                                        name: "A" + y++,
157                                        species: mouseTerm,
158                                        template: mouseTemplate,
159                                        templateStringFields: ["Genotype" : "C57/Bl6j", "Gender" : "Male"],
160                                        templateIntegerFields: ["Age" : 17, "Cage" : (int)(y/2)]
161                                ).with { if (!validate()) { errors.each { println it} } else save()}
162
163                                secondStudy.addToSubjects(currentSubject)
164                                .addToEvents(new Event(
165                                        subject: currentSubject,
166                                        startTime: Date.parse('yyyy-MM-dd','2008-01-07'),
167                                        endTime: Date.parse('yyyy-MM-dd','2008-01-14'),
168                                        eventDescription: eventTreatment,
169                                        parameterStringValues: ['Diet':'10% fat (palm oil)','Compound':'Vehicle','Administration':'intraperitoneal injection'])
170                                ).with { if (!validate()) { errors.each { println it} } else save()}
171                        }
172
173//                        new Study(title:"example",code:"Excode",researchQuestion:"ExRquestion",description:"Exdescription",ecCode:"ExecCode",dateCreated:new Date(),lastUpdated:new Date(),startDate:new Date()).save()
174//                        new Study(title:"testAgain",code:"testcode",researchQuestion:"testRquestion",description:"testdescription",ecCode:"testCode",dateCreated:new Date(),lastUpdated:new Date(),startDate:new Date()).save()
175//                        new Study(title:"Exampletest",code:"Examplecode",researchQuestion:"ExampleRquestion",description:"Exampledescription",ecCode:"ExampleecCode",dateCreated:new Date(),lastUpdated:new Date(),startDate:new Date()).save()
176                }
177        }
178
179        def destroy = {
180        }
181} 
Note: See TracBrowser for help on using the repository browser.