diff --git a/app/client/views/patients/patient_visits.coffee b/app/client/views/patients/patient_visits.coffee
index b07206c..289faa7 100644
--- a/app/client/views/patients/patient_visits.coffee
+++ b/app/client/views/patients/patient_visits.coffee
@@ -1,57 +1,59 @@
 Template.patientVisits.helpers
   visits: ->
     patient = @patient
     studyDesign = patient.studyDesign()
     if studyDesign?
       visits = studyDesign.visits.map (designVisit) ->
         visit = Visits.findOne
           designVisitId: designVisit._id
           patientId: patient._id
+        #dummy visit for validation to work
         visit = new Visit(designVisit) if !visit?
         visit.validatedDoc()
-      visits
+      visits.sort (a,b) ->
+        a.index - b.index
 
   #this questionnaire visit patient
   questionnaireCSS: ->
     return "valid" if @questionnaire.answered
     "invalid"
   
   #this questionnaire visit patient
   physioRecordsCSS: ->
     return "valid" if @visit.physioValid
     "invalid"
 
 
 Template.patientVisits.events
   #with questionnaire visit= patient
   "click .answerQuestionnaire": (evt, tmpl) ->
     Modal.show('questionnaireWizzard', @)
     false
 
   #this visit patient
   "click .openVisit": (evt) ->
     visit = Visits.findOne
       _id: @visit._id
       patientId: @patient._id
     if visit?
       openVisit(visit, @patient)
     else
       if @visit.patientId?
         throw new Meteor.Error(403, "patient visit not found")
       patient = @patient
       Meteor.call "initVisit", @visit._id, @patient._id, (error, _id) ->
         throwError error if error?
         visit = Visits.findOne _id
         openVisit(visit, patient)
 
 openVisit = (visit, patient) ->
   openPatientVisit = Session.get("openPatientVisit") or {}
   openPatientVisit[patient._id] = 
     title: visit.title
     _id: visit._id
   Session.set("openPatientVisit", openPatientVisit)
   Session.set "patientTab", 
     title: visit.title
     visitId: visit._id
     template: "patientVisit"
   false
diff --git a/app/lib/collections/visits.coffee b/app/lib/collections/visits.coffee
index 513ba41..a29f1b4 100644
--- a/app/lib/collections/visits.coffee
+++ b/app/lib/collections/visits.coffee
@@ -1,106 +1,107 @@
 class @Visit
   constructor: (doc) ->
     _.extend this, doc
 
   study: ->
     return null unless @studyId?
     Studies.findOne _id: @studyId
 
   studyDesign: ->
     return null unless @studyDesignId?
     StudyDesigns.findOne _id: @studyDesignId
 
   questionnaires: ->
     qIds = @questionnaireIds or []
     qs = Questionnaires.find
       _id: {$in: qIds}
     qs
 
   physioRecords: ->
     PhysioRecords.find
       'metadata.visitId': @_id
 
   validatedDoc: ->
     valid = true
 
     physioValid = true
     if @recordPhysicalData? and @physioRecords().count() is 0
       valid = false
       physioValid = false
     @physioValid = physioValid
 
     validatedQuestionnaires = @getValidatedQuestionnaires()
     if valid
       _.some validatedQuestionnaires, (quest) ->
         if quest.answered is false
           valid = false
         !valid
     @validatedQuestionnaires = validatedQuestionnaires
     @valid = valid
     @
 
   getValidatedQuestionnaires: ->
     visit = @
     quests = @questionnaires().map (quest) ->
       quest.answered = true
       quest.numAnswered = 0
       questions = Questions.find
         questionnaireId: quest._id
         type: {$ne: "description"} #filter out descriptions
       .map (question) ->
         answers = Answers.find
           visitId: visit._id
           questionId: question._id
         .fetch()
         question.answered = answers.length > 0 or question.type is "description"
         question.answers = answers 
         if question.answered 
           quest.numAnswered += 1
         else
           quest.answered = false
         question
       quest.questions = questions
       quest.numQuestions = questions.length
       quest.answered = false if questions.length is 0
       quest
     quests
 
 
 @Visits = new Meteor.Collection("visits",
   transform: (doc) ->
     new Visit(doc)
 )
 
 Visits.before.insert BeforeInsertTimestampHook
 Visits.before.update BeforeUpdateTimestampHook
 
 Meteor.methods
   "initVisit": (designVisitId, patientId) ->
     check designVisitId, String
     check patientId, String
 
     patient = Patients.findOne
       _id:  patientId
     throw new Meteor.Error(403, "patient can't be found.") unless patient?
     throw new Meteor.Error(433, "you are not allowed to upsert answers") unless Roles.userIsInRole(@userId, ['admin']) or (Roles.userIsInRole(@userId, 'therapist') and patient.therapistId is @userId)
 
     # use query from Patient
     studyDesign = patient.studyDesign()
     throw new Meteor.Error(403, "studyDesign can't be found.") unless studyDesign?
 
     visitTemplate = _.find studyDesign.visits, (visit) ->
       return visit if visit._id is designVisitId
       false
     throw new Meteor.Error(403, "studyDesign visit can't be found.") unless visitTemplate?
 
     #we copy the data here from the visit template to
     #an actuall existing visit here
     visit = 
       patientId: patient._id
       designVisitId: visitTemplate._id
       title: visitTemplate.title
       questionnaireIds: visitTemplate.questionnaireIds
       recordPhysicalData: visitTemplate.recordPhysicalData
+      index: visitTemplate.index
 
     _id = Visits.insert visit
     _id