Я бы предложил использовать решение Джеймса Керрана, но вместо дополнительной опции использовать Перегрузку, в качестве обходного пути для упомянутой вами ошибки («Необязательные параметры не могут иметь типы структуры»):
Public Sub New(ByVal obj1 As Object, ByVal admissionDate As Nullable(Of DateTime))
//Your code here
End Sub
Public Sub New(Byval obj1 As Object)
Me.New(obj1, Nothing)
End Sub
Вы также можете использовать DateTime? вместо Nullable (Of DateTime) в последней версии VB (не уверен насчет более старых версий).