diff --git a/smash/web/migrations/0164_configurationitem_email_items_for_redcap.py b/smash/web/migrations/0164_configurationitem_email_items_for_redcap.py
new file mode 100644
index 0000000000000000000000000000000000000000..efa3e50fdb36463fe9a08bc86af80be75f738d1b
--- /dev/null
+++ b/smash/web/migrations/0164_configurationitem_email_items_for_redcap.py
@@ -0,0 +1,33 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.10.3 on 2017-04-04 09:43
+from __future__ import unicode_literals
+
+from django.db import migrations
+
+from web.models.constants import RED_CAP_SAMPLE_DATE_FIELD_TYPE
+
+
+def create_item(apps, type, value, name):
+    # We can't import the ConfigurationItem model directly as it may be a newer
+    # version than this migration expects. We use the historical version.
+    ConfigurationItem = apps.get_model("web", "ConfigurationItem")
+    item = ConfigurationItem.objects.create()
+    item.type = type
+    item.value = value
+    item.name = name
+    item.save()
+
+
+def configuration_items(apps, schema_editor):
+    create_item(apps, RED_CAP_SAMPLE_DATE_FIELD_TYPE, "",
+                "Redcap field for sample date in the visit")
+
+
+class Migration(migrations.Migration):
+    dependencies = [
+        ('web', '0163_study_redcap_first_visit_number'),
+    ]
+
+    operations = [
+        migrations.RunPython(configuration_items),
+    ]
diff --git a/smash/web/models/constants.py b/smash/web/models/constants.py
index b512e714efac9136e8c4d9d9bc048f77d065458f..049ea7071637c6f48b51f4063d3fd26fb15b08d6 100644
--- a/smash/web/models/constants.py
+++ b/smash/web/models/constants.py
@@ -62,6 +62,7 @@ RED_CAP_SEX_FIELD_TYPE = 'RED_CAP_SEX_FIELD_TYPE'
 RED_CAP_DATE_BORN_FIELD_TYPE = 'RED_CAP_DATE_BORN_FIELD_TYPE'
 RED_CAP_ND_NUMBER_FIELD_TYPE = 'RED_CAP_ND_NUMBER_FIELD_TYPE'
 RED_CAP_VIRUS_FIELD_TYPE = 'RED_CAP_VIRUS_FIELD_TYPE'
+RED_CAP_SAMPLE_DATE_FIELD_TYPE = "RED_CAP_SAMPLE_DATE_FIELD_TYPE"
 
 MAIL_TEMPLATE_CONTEXT_SUBJECT = 'S'
 MAIL_TEMPLATE_CONTEXT_APPOINTMENT = 'A'
diff --git a/smash/web/redcap_connector.py b/smash/web/redcap_connector.py
index 8329ef604bee1fbbbf48e75bd29648c149ffb350..df68598c5d44561d5408f067455485bddf52eb84 100644
--- a/smash/web/redcap_connector.py
+++ b/smash/web/redcap_connector.py
@@ -16,7 +16,7 @@ from web.models.constants import REDCAP_TOKEN_CONFIGURATION_TYPE, \
     REDCAP_BASE_URL_CONFIGURATION_TYPE, CRON_JOB_TIMEOUT, RED_CAP_LANGUAGE_4_FIELD_TYPE, RED_CAP_LANGUAGE_3_FIELD_TYPE, \
     RED_CAP_LANGUAGE_2_FIELD_TYPE, RED_CAP_LANGUAGE_1_FIELD_TYPE, RED_CAP_MPOWER_ID_FIELD_TYPE, RED_CAP_DEAD_FIELD_TYPE, \
     RED_CAP_SEX_FIELD_TYPE, RED_CAP_DATE_BORN_FIELD_TYPE, RED_CAP_ND_NUMBER_FIELD_TYPE, RED_CAP_VIRUS_FIELD_TYPE, \
-    GLOBAL_STUDY_ID
+    GLOBAL_STUDY_ID, RED_CAP_SAMPLE_DATE_FIELD_TYPE
 from web.models.inconsistent_subject import InconsistentField, InconsistentSubject
 from web.models.missing_subject import MissingSubject
 
@@ -81,6 +81,7 @@ class RedcapConnector(object):
         self.language_4_field = ConfigurationItem.objects.get(type=RED_CAP_LANGUAGE_4_FIELD_TYPE).value
         self.m_power_id_field = ConfigurationItem.objects.get(type=RED_CAP_MPOWER_ID_FIELD_TYPE).value
         self.virus_field = ConfigurationItem.objects.get(type=RED_CAP_VIRUS_FIELD_TYPE).value
+        self.sample_date_field = ConfigurationItem.objects.get(type=RED_CAP_SAMPLE_DATE_FIELD_TYPE).value
 
         self.study = Study.objects.get(id=GLOBAL_STUDY_ID)
 
@@ -187,6 +188,7 @@ class RedcapConnector(object):
                     result.append(inconsistent_subject)
                 if appointment_type_to_finish is not None:
                     for visit in red_cap_subject.visits:
+
                         smasch_visits = Visit.objects.filter(visit_number=visit.visit_number, subject=subject)
                         smasch_appointments = Appointment.objects.filter(visit__in=smasch_visits,
                                                                          appointment_types=appointment_type_to_finish,
@@ -328,7 +330,9 @@ class RedcapConnector(object):
                         visit.virus = False
                     elif row.get(self.virus_field) == "Positive":
                         visit.virus = True
-                redcap_subject.visits.append(visit)
+                if self.sample_date_field != "":
+                    if row.get(self.sample_date_field) != "":
+                        redcap_subject.visits.append(visit)
                 result.append(redcap_subject)
         for i in range(1, 9):
             query_data = self.get_subject_query_data()
@@ -342,13 +346,15 @@ class RedcapConnector(object):
                     for redcap_subject in result:
                         if redcap_subject.nd_number == nd_number:
                             visit = RedcapVisit()
-                            visit.visit_number = i
+                            visit.visit_number = i + self.study.redcap_first_visit_number + 1
                             if self.virus_field != "":
                                 if row.get(self.virus_field) == "Negative":
                                     visit.virus = False
                                 elif row.get(self.virus_field) == "Positive":
                                     visit.virus = True
-                            redcap_subject.visits.append(visit)
+                            if self.sample_date_field != "":
+                                if row.get(self.sample_date_field) != "":
+                                    redcap_subject.visits.append(visit)
 
         return result
 
@@ -397,6 +403,9 @@ class RedcapConnector(object):
         if self.virus_field != "":
             result['fields[' + str(field_number) + ']'] = self.virus_field
             field_number += 1
+        if self.sample_date_field != "":
+            result['fields[' + str(field_number) + ']'] = self.sample_date_field
+            field_number += 1
         return result
 
     def get_language(self, name):