<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet href="xsltforms/xsltforms.xsl" type="text/xsl"?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xmlns:xdt="http://www.w3.org/2005/xpath-datatypes">
   <head>
      <title>XForm automatically generated from ODM Study Definition</title>
      <xforms:model id="F_AE">
         <xforms:submission action="http://www.xml4pharmaserver.com:8080/XML4PharmaServer/ecrf2odm.do" method="post" id="submit" replace="all" omit-xml-declaration="false"/>
         <xforms:instance>
            <CRF xmlns="" xml:lang="en">
               <FormFile>file:///usr/local/tomcat/apache-tomcat-5.5.17/webapps/XML4PharmaServer/temp/xform2007218153938.0994.xhtml</FormFile>
               <FormID Label="Adverse Events">F_AE</FormID>
               <SubjectID>Test Subject</SubjectID>
               <StudyEventID>system-generated</StudyEventID>
               <IG_COMMON Label="Common">
                  <I_SITE Label="Site number"/>
                  <I_SUBJECTID Label="Subject ID"/>
                  <I_VISIT Label="Visit Date"></I_VISIT>
                  <I_VISITTIME Label="Visit Start Time">15:39:38.099+01:00</I_VISITTIME>
               </IG_COMMON>
               <IG_AE_OCCURRED Label="Adverse events">
                  <I_AE_OCCURRED Label="Has the subject experienced any adverse events" CodeListOID="CL_NOYES">0</I_AE_OCCURRED>
               </IG_AE_OCCURRED>
               <IG_AE Label="Adverse events" RepeatKey="-1">
                  <I_AE_EVENT Label="Event No.">0</I_AE_EVENT>
                  <I_AE_TERM Label="Adverse event">enter text</I_AE_TERM>
                  <I_AE_START Label="Start Date"></I_AE_START>
                  <I_AE_CONTINUES Label="Is the adverse event still continuing" CodeListOID="CL_NOYES"/>
                  <I_AE_STOP Label="Stop Date"></I_AE_STOP>
                  <I_AE_DURATION Label="Duration of the adverse event">P0DT0H</I_AE_DURATION>
                  <I_AE_SERIOUS Label="Was event serious" CodeListOID="CL_NOYES">0</I_AE_SERIOUS>
                  <I_AE_SEVERITY Label="Severity" CodeListOID="CL_AE_SEVERITY">1</I_AE_SEVERITY>
                  <I_AE_RELATED Label="Is there a reasonable possibility that the AE may have been caused by the study drug" CodeListOID="CL_NOYES">0</I_AE_RELATED>
                  <I_AE_ACTION Label="Action taken with study drug" CodeListOID="CL_AE_ACTION">1</I_AE_ACTION>
                  <I_AE_OUTCOME Label="Subject outcome" CodeListOID="CL_AE_OUTCOME">1</I_AE_OUTCOME>
               </IG_AE>
               <CodeLists>
                  <CodeList OID="CL_NOYES">
                     <CodeListItem CodedValue="0" Decode="No"/>
                     <CodeListItem CodedValue="1" Decode="Yes"/>
                  </CodeList>
                  <CodeList OID="CL_NOYES">
                     <CodeListItem CodedValue="0" Decode="No"/>
                     <CodeListItem CodedValue="1" Decode="Yes"/>
                  </CodeList>
                  <CodeList OID="CL_NOYES">
                     <CodeListItem CodedValue="0" Decode="No"/>
                     <CodeListItem CodedValue="1" Decode="Yes"/>
                  </CodeList>
                  <CodeList OID="CL_AE_SEVERITY">
                     <CodeListItem CodedValue="1" Decode="Mild"/>
                     <CodeListItem CodedValue="2" Decode="Moderate"/>
                     <CodeListItem CodedValue="3" Decode="Severe"/>
                  </CodeList>
                  <CodeList OID="CL_NOYES">
                     <CodeListItem CodedValue="0" Decode="No"/>
                     <CodeListItem CodedValue="1" Decode="Yes"/>
                  </CodeList>
                  <CodeList OID="CL_AE_ACTION">
                     <CodeListItem CodedValue="1" Decode="None"/>
                     <CodeListItem CodedValue="2" Decode="Study drug regimen changed"/>
                     <CodeListItem CodedValue="3" Decode="Temporarily stopped study drug"/>
                     <CodeListItem CodedValue="4" Decode="Study drug discontinued"/>
                  </CodeList>
                  <CodeList OID="CL_AE_OUTCOME">
                     <CodeListItem CodedValue="1" Decode="Subject remains in study"/>
                     <CodeListItem CodedValue="2" Decode="Withdrawn from study"/>
                     <CodeListItem CodedValue="3" Decode="Lost to follow-up"/>
                     <CodeListItem CodedValue="4" Decode="Death"/>
                  </CodeList>
               </CodeLists>
            </CRF>
         </xforms:instance>
         <xforms:bind nodeset="/CRF/SubjectID" required="true()"/>
         <xforms:bind nodeset="/CRF/StudyEventID" readonly="true()"/>
         <xforms:bind nodeset="/CRF/IG_COMMON/I_SITE" required="true()" type="xsd:integer"/>
         <xforms:bind nodeset="/CRF/IG_COMMON/I_SUBJECTID" required="true()" type="xsd:string"/>
         <!-- example from Orbeon - does not seem to work -->
         <!--xforms:bind nodeset="/CRF/IG_COMMON/I_VISIT" type="xsd:date" constraint="if (. castable as xsd:date)
                                      then current-date() + xdt:dayTimeDuration('P1D') >= xsd:date(.)
                                      else false()" readonly="false()"
                                      calculate="if (. = '') then current-date() else ."/-->

         <xforms:bind nodeset="/CRF/IG_COMMON/I_VISIT" required="true()" type="xsd:date"/>
         <xforms:bind nodeset="/CRF/IG_COMMON/I_VISITTIME" required="true()" type="xsd:time"/>
         <xforms:bind nodeset="/CRF/IG_AE_OCCURRED/I_AE_OCCURRED" required="true()" type="xsd:integer" constraint="(. &lt; 10)"/>
         <xforms:bind nodeset="/CRF/IG_AE" relevant="/CRF/IG_AE_OCCURRED/I_AE_OCCURRED != 0"/>

		 <!-- seems not to be well supported by XSLTForms -->
         <!--xforms:bind nodeset="/CRF/IG_AE/@RepeatKey" calculate="count(preceding::*[name()='IG_AE'])+1"/-->

         <xforms:bind nodeset="/CRF/IG_AE/I_AE_EVENT" required="true()" type="xsd:integer" constraint="(. &lt; 1000)"/>
         <xforms:bind nodeset="/CRF/IG_AE/I_AE_TERM" required="true()" type="xsd:string"/>
         <xforms:bind nodeset="/CRF/IG_AE/I_AE_START" required="true()" type="xsd:date"/>
         <xforms:bind nodeset="/CRF/IG_AE/I_AE_CONTINUES" type="xsd:integer" constraint="(. &lt; 10) or (. = '')"/>
         <xforms:bind nodeset="/CRF/IG_AE/I_AE_STOP" type="xsd:date" relevant="../I_AE_CONTINUES!=1"/>
         <!-- P.S. days-from-date not supported -->
         <xforms:bind nodeset="/CRF/IG_AE/I_AE_DURATION" type="xsd:duration" relevant="../I_AE_CONTINUES!=1"/>
         <xforms:bind nodeset="/CRF/IG_AE/I_AE_SERIOUS" required="true()" type="xsd:integer" constraint="(. &lt; 10)"/>
         <xforms:bind nodeset="/CRF/IG_AE/I_AE_SEVERITY" required="true()" type="xsd:integer" constraint="(. &lt; 10)" relevant="../I_AE_SERIOUS!=0"/>
         <xforms:bind nodeset="/CRF/IG_AE/I_AE_RELATED" required="true()" type="xsd:integer" constraint="(. &lt; 10)"/>
         <xforms:bind nodeset="/CRF/IG_AE/I_AE_ACTION" required="true()" type="xsd:integer" constraint="(. &lt; 10)"/>
         <xforms:bind nodeset="/CRF/IG_AE/I_AE_OUTCOME" required="true()" type="xsd:integer" constraint="(. &lt; 10)"/>
         -->
      </xforms:model>
   </head>
   <body bgcolor="Silver">
   	  <!--div id="xformControl">
			<span>
				<input type="checkbox" onclick="$('console').style.display = this.checked? 'block' : 'none';" checked="checked"/> Debug
			</span>
	  </div-->
      <h3>
         <center>
            <font color="red">eCRF XForms example <br/>Courtesy of<br/>
               <a href="http://www.XML4Pharma.com/">XML4Pharma</a>
            </font>
            <p>
               <font color="blue">Form: Adverse Events</font>
            </p>
         </center>
      </h3>
      <xforms:group appearance="full">
         <xforms:input model="F_AE" ref="/CRF/StudyEventID">
            <xforms:label>Study Event ID</xforms:label>
         </xforms:input>
      </xforms:group>
      <xforms:group appearance="full">
         <br/>
         <h4>Group: Common</h4>
            <xforms:input model="F_AE" ref="/CRF/IG_COMMON/I_SITE">
               <xforms:label>Site number</xforms:label>
               <xforms:alert>Must be an integer.</xforms:alert>
            </xforms:input>
            <xforms:input model="F_AE" ref="/CRF/IG_COMMON/I_SUBJECTID">
               <xforms:label>Subject ID</xforms:label>
               <xforms:alert/>
            </xforms:input>
            <xforms:input model="F_AE" ref="/CRF/IG_COMMON/I_VISIT">
               <xforms:label>Visit Date</xforms:label>
               <xforms:alert>Must be a valid date. Correct format is: yyyy-mm-dd</xforms:alert>
            </xforms:input>
            <xforms:input model="F_AE" ref="/CRF/IG_COMMON/I_VISITTIME">
               <xforms:label>Visit Start Time</xforms:label>
               <xforms:alert>Must be a valid time. Correct format is: hh:mm:ss</xforms:alert>
            </xforms:input>
      </xforms:group>
      <xforms:group appearance="full">
         <br/>
         <h4>Group: Adverse events</h4>
            <xforms:select1 model="F_AE" ref="/CRF/IG_AE_OCCURRED/I_AE_OCCURRED">
               <xforms:label>Has the subject experienced any adverse events</xforms:label>
               <xforms:item>
                  <xforms:label>No</xforms:label>
                  <xforms:value>0</xforms:value>
               </xforms:item>
               <xforms:item>
                  <xforms:label>Yes</xforms:label>
                  <xforms:value>1</xforms:value>
               </xforms:item>
            </xforms:select1>
      </xforms:group>
      <xforms:group appearance="full">
         <br/>
         <h4>Group: Adverse events</h4>
         <xforms:trigger id="insert_IG_AE_button">
            <xforms:label>Insert after selected Group</xforms:label>
            <xforms:action ev:event="DOMActivate">
               <xforms:insert at="index('IG_AE')" position="after" model="F_AE" nodeset="/CRF/IG_AE"/>
            </xforms:action>
         </xforms:trigger>
         <xforms:trigger id="delete_IG_AE_button">
            <xforms:label>Remove selected Group</xforms:label>
            <xforms:action ev:event="DOMActivate">
               <xforms:delete at="index('IG_AE')" nodeset="/CRF/IG_AE"/>
            </xforms:action>
         </xforms:trigger>
         <xforms:repeat id="IG_AE" model="F_AE" nodeset="/CRF/IG_AE" appearance="full">
               <xforms:input ref="I_AE_EVENT">
                  <xforms:label>Event No.</xforms:label>
                  <xforms:alert>Must be an integer.Value must be lower than 1000</xforms:alert>
               </xforms:input>
               <xforms:textarea ref="I_AE_TERM">
                  <xforms:label>Adverse event</xforms:label>
                  <xforms:alert/>
               </xforms:textarea>
               <xforms:input ref="I_AE_START">
                  <xforms:label>Start Date</xforms:label>
                  <xforms:alert>Must be a valid date. Correct format is: yyyy-mm-dd</xforms:alert>
               </xforms:input>
               <xforms:select1 ref="I_AE_CONTINUES">
                  <xforms:label>Is the adverse event still continuing</xforms:label>
                  <xforms:item>
                     <xforms:label>No</xforms:label>
                     <xforms:value>0</xforms:value>
                  </xforms:item>
                  <xforms:item>
                     <xforms:label>Yes</xforms:label>
                     <xforms:value>1</xforms:value>
                  </xforms:item>
               </xforms:select1>
               <xforms:input ref="I_AE_STOP">
                  <xforms:label>Stop Date</xforms:label>
                  <xforms:alert>Must be a valid date. Correct format is: yyyy-mm-dd</xforms:alert>
               </xforms:input>
               <xforms:input ref="I_AE_DURATION">
                  <xforms:label>Duration of the adverse event</xforms:label>
                  <xforms:alert>Must be a valid duration. Correct format is: PnYnMnDTnHnMnS</xforms:alert>
               </xforms:input>
               <xforms:select1 ref="I_AE_SERIOUS">
                  <xforms:label>Was event serious</xforms:label>
                  <xforms:item>
                     <xforms:label>No</xforms:label>
                     <xforms:value>0</xforms:value>
                  </xforms:item>
                  <xforms:item>
                     <xforms:label>Yes</xforms:label>
                     <xforms:value>1</xforms:value>
                  </xforms:item>
               </xforms:select1>
               <xforms:select1 ref="I_AE_SEVERITY">
                  <xforms:label>Severity</xforms:label>
                  <xforms:item>
                     <xforms:label>Mild</xforms:label>
                     <xforms:value>1</xforms:value>
                  </xforms:item>
                  <xforms:item>
                     <xforms:label>Moderate</xforms:label>
                     <xforms:value>2</xforms:value>
                  </xforms:item>
                  <xforms:item>
                     <xforms:label>Severe</xforms:label>
                     <xforms:value>3</xforms:value>
                  </xforms:item>
               </xforms:select1>
               <xforms:select1 ref="I_AE_RELATED">
                  <xforms:label>Is there a reasonable possibility that the AE may have been caused by the study drug</xforms:label>
                  <xforms:item>
                     <xforms:label>No</xforms:label>
                     <xforms:value>0</xforms:value>
                  </xforms:item>
                  <xforms:item>
                     <xforms:label>Yes</xforms:label>
                     <xforms:value>1</xforms:value>
                  </xforms:item>
               </xforms:select1>
               <xforms:select1 ref="I_AE_ACTION">
                  <xforms:label>Action taken with study drug</xforms:label>
                  <xforms:item>
                     <xforms:label>None</xforms:label>
                     <xforms:value>1</xforms:value>
                  </xforms:item>
                  <xforms:item>
                     <xforms:label>Study drug regimen changed</xforms:label>
                     <xforms:value>2</xforms:value>
                  </xforms:item>
                  <xforms:item>
                     <xforms:label>Temporarily stopped study drug</xforms:label>
                     <xforms:value>3</xforms:value>
                  </xforms:item>
                  <xforms:item>
                     <xforms:label>Study drug discontinued</xforms:label>
                     <xforms:value>4</xforms:value>
                  </xforms:item>
               </xforms:select1>
               <xforms:select1 ref="I_AE_OUTCOME">
                  <xforms:label>Subject outcome</xforms:label>
                  <xforms:item>
                     <xforms:label>Subject remains in study</xforms:label>
                     <xforms:value>1</xforms:value>
                  </xforms:item>
                  <xforms:item>
                     <xforms:label>Withdrawn from study</xforms:label>
                     <xforms:value>2</xforms:value>
                  </xforms:item>
                  <xforms:item>
                     <xforms:label>Lost to follow-up</xforms:label>
                     <xforms:value>3</xforms:value>
                  </xforms:item>
                  <xforms:item>
                     <xforms:label>Death</xforms:label>
                     <xforms:value>4</xforms:value>
                  </xforms:item>
               </xforms:select1>
         </xforms:repeat>
		
		<!-- second group of trigger seems not to be supported by xsltForms
         <xforms:trigger id="insert_IG_AE_button">
            <xforms:label>Insert after selected Group</xforms:label>
            <xforms:action ev:event="DOMActivate">
               <xforms:insert at="index('IG_AE')" position="after" model="F_AE" nodeset="/CRF/IG_AE"/>
            </xforms:action>
         </xforms:trigger>
         <xforms:trigger id="delete_IG_AE_button">
            <xforms:label>Remove selected Group</xforms:label>
            <xforms:action ev:event="DOMActivate">
               <xforms:delete at="index('IG_AE')" nodeset="/CRF/IG_AE"/>
            </xforms:action>
         </xforms:trigger>
         --> 

      </xforms:group> 

      <xforms:group appearance="full">
         <xforms:submit submission="submit">
            <xforms:label>Submit Data</xforms:label>
         </xforms:submit>
         <xforms:trigger>
            <xforms:label>Reset</xforms:label>
            <xforms:reset ev:event="DOMActivate"/>
         </xforms:trigger>
      </xforms:group>
      <h4>
         <center>Copyright XML4Pharma 2004-2009</center>
      </h4>
      <h3>
         <center>
            <font color="red">
               <a href="mailto:info@XML4Pharma.com">Yes, I want to know more about this technology!</a>
            </font>
         </center>
      </h3>
   </body>
</html>
