Subject Report Template Examples

*** Please note code below is no longer needed.  Use the point-and-click method using the Repeater control   ***

Data Across Encounters

Displaying a table with one row per encounter

Code that can be entered into a Report Template:

<%

// Create a table and heading row using HTML

Output.Write("<table border='1' cellspacing='0' cellpadding='5'>");
Output.Write("<tr><th>Encounter Date</th> <th>Encounter Name</th> <th>Variable 1</th> <th>Variable 2</th> </tr>");

// Loop through the encounters and output the encounter date and encounter name 
   // Each time through will create a row in the table with the next encounter  

for (var index=0; index < ENCOUNTERS.Count; index++) {
     var encounter = ENCOUNTERS.GetEncounter(index);
         var encounterDate = encounter.#EncounterDate.displayValue.toString();
         var encounterName = encounter.#IntervalName.displayValue.toString();
         var variable1value = encounter.#Variable1.value.value;
         var variable2value = encounter.#Variable2.value.value;

   Output.Write("<tr><td>" + encounterDate + "</td>");
   Output.Write("<td>" + encounterName + "</td>");
   Output.Write("<td>" + variable1value + "</td>");
   Output.Write("<td>" + variable2value + "</td></tr>");

}

Output.Write("</table>");

%>

An example of the output from the Report Template code above:

Encounter Date

Encounter Name

Variable 1

Variable 2

10/1/2011

Baseline

128

75

11/5/2011

Month 1

123

60

12/2/2011

Month 2

118

62


Displaying a table with one row per encounter with the encounters sorted in descending order

Code that can be entered into a Report Template:

<%

Output.Write("<table border='1' cellspacing='0' cellpadding='5'>");
Output.Write("<tr><th>Encounter Date</th> <th>Encounter Name</th> <th>Variable 1</th> <th>Variable 2</th> </tr>");

var encountersSorted = ENCOUNTERS.Sort(#EncounterDate.ID, false);

for (var index=0; index < encountersSorted.Count; index++) {

     var encounter = encountersSorted.GetEncounter(index);
         var encounterDate = encounter.#EncounterDate.displayValue.toString();
         var encounterName = encounter.#IntervalName.displayValue.toString();
         var variable1value = encounter.#Variable1.value.value;
         var variable2value = encounter.#Variable2.value.value;

   Output.Write("<tr><td>" + encounterDate + "</td>");
   Output.Write("<td>" + encounterName + "</td>");
   Output.Write("<td>" + variable1value + "</td>");
   Output.Write("<td>" + variable2value + "</td></tr>");

}

Output.Write("</table>");

%>

An example of the output from the Report Template code above:

Encounter Date

Encounter Name

Variable 1

Variable 2

12/2/2011

Month 2

118

62

11/5/2011

Month 1

123

60

10/1/2011

Baseline

128

75


Outputting the data from latest encounter which meets a condition

Code that can be entered into a Report Template:

<%

Output.Write("<table border='1' cellspacing='0' cellpadding='5'>");
Output.Write("<tr><th>Encounter Date</th> <th>Encounter Name</th> <th>Variable 1</th> <th>Variable 2</th> </tr>");

var encountersSorted = ENCOUNTERS.Sort(#EncounterDate.ID, false);

for (var index=0; index < encountersSorted.Count; index++) {

     var encounter = encountersSorted.GetEncounter(index);
         var encounterDate = encounter.#EncounterDate.displayValue.toString();
         var encounterName = encounter.#IntervalName.displayValue.toString();
         var variable1value = encounter.#Variable1.value.value;
         var variable2value = encounter.#Variable2.value.value;

 if (variable1value >= 150) }

   Output.Write("<tr><td>" + encounterDate + "</td>");
   Output.Write("<td>" + encounterName + "</td>");
   Output.Write("<td>" + variable1value + "</td>");
   Output.Write("<td>" + variable2value + "</td></tr>");

  break;

 }

}

Output.Write("</table>");

%>

An example of the output from the Report Template code above:

Encounter Date

Encounter Name

Variable 1

Variable 2

11/5/2011

Month 1

190

60


Displaying data in a custom layout from fixed encounters
 

Code that can be entered into a Report Template:

<%
// Declare variables that will track the interval's index number
   var BaselineIndex="";
   var Month1Index="";
   var Month2Index="";

// Loop through all encounters to assign the interval's index number

for (var index=0; index < ENCOUNTERS.Count; index++) {
  var encounter = ENCOUNTERS.GetEncounter(index);
  var encounterName = encounter.#IntervalName.displayValue.toString();
      if (encounterName =="Baseline") var BaselineIndex=index;
      else if (encounterName=="Month 1") var Month1Index=index;
      else if (encounterName=="Month 2") var Month2Index=index;
}

// Create variables for each encounter and assign all the values from that encounter to the variables

var BaselineEncounter = ENCOUNTERS.GetEncounter(BaselineIndex); 
var Month1Encounter = ENCOUNTERS.GetEncounter(Month1Index);
var Month2Encounter = ENCOUNTERS.GetEncounter(Month2Index);

// Create the desired layout

Variable

Baseline

Month 1

Month 2

Encounter Date

<%=BaselineEncounter.#EncounterDate%>

<%=Month1Encounter.#EncounterDate%>

<%=Month2Encounter.#EncounterDate%>

Variable 1

<%=BaselineEncounter.#Variable1%>

<%=Month1Encounter.#Variable1%>

<%=Month2Encounter.#Variable1%>

Variable 2

<%=BaselineEncounter.#Variable2%>

<%=Month1Encounter.#Variable2%>

<%=Month2Encounter.#Variable2%>

%>

An example of the output from the Report Template above:

Variable

Baseline

Month 1

Month 2

Encounter Date

10/1/2011

11/5/2011

12/2/2011

Variable 1

128

123

118

Variable 2

75

60

62