使用WSDL和PHP

I am having major problems calling a WSDL function. I believe the function creates an object but I am unsure how to call the WSDL function. I am trying to call the PutData function but I need the ImportPlannedVisit complexType. I do not know how to create the complexType so that I can use the PutData function. I keep getting a 500 error.

This is how I call the WSDL:

$this->client = new soapClient("somewsdl.asmx?wsdl",array(
            "location"=>"somewsdl.asmx"
        ));

Here is part of the WSDL:

<s:element name="PutData">
  <s:complexType>
    <s:sequence>
      <s:element minOccurs="0" maxOccurs="1" name="ID" type="s:string" />
      <s:element minOccurs="0" maxOccurs="1" name="Pwd" type="s:string" />
      <s:element minOccurs="0" maxOccurs="1" name="Token" type="s:string" />
      <s:element minOccurs="1" maxOccurs="1" name="BatchData" nillable="true" type="tns:ImportBatch" />
    </s:sequence>
  </s:complexType>
</s:element>
<s:complexType name="ImportBatch">
  <s:sequence>
    <s:element minOccurs="0" maxOccurs="1" name="AgenciesBatch" type="tns:ArrayOfImportAgency" />
  </s:sequence>
</s:complexType>
<s:complexType name="ArrayOfImportAgency">
  <s:sequence>
  <s:element minOccurs="0" maxOccurs="unbounded" name="AgencyBatch" nillable="true" type="tns:ImportAgency" />
  </s:sequence>
</s:complexType>
<s:complexType name="ImportAgency">
  <s:sequence>
    <s:element minOccurs="0" maxOccurs="1" name="PlannedVisits" type="tns:ArrayOfImportPlannedVisit" />
  </s:sequence>
</s:complexType>


<s:complexType name="ImportPlannedVisit">
  <s:sequence>
    <s:element minOccurs="0" maxOccurs="1" name="UniquePlannedVisitID" type="s:string" />
    <s:element minOccurs="1" maxOccurs="1" name="Date1" type="s:dateTime" />
    <s:element minOccurs="0" maxOccurs="1" name="StartTime" type="s:string" />
    <s:element minOccurs="0" maxOccurs="1" name="EndTime" type="s:string" />
    <s:element minOccurs="0" maxOccurs="1" name="AlarmTime" type="s:string" />
    <s:element minOccurs="0" maxOccurs="1" name="UniqueClientID" type="s:string" />
    <s:element minOccurs="0" maxOccurs="1" name="UniqueCarerID" type="s:string" />
    <s:element minOccurs="0" maxOccurs="1" name="StaffAlarmTime" type="s:string" />
    <s:element minOccurs="0" maxOccurs="1" name="ChargeCode" type="s:string" />
    <s:element minOccurs="0" maxOccurs="1" name="VisitNotes" type="s:string" />
    <s:element minOccurs="0" maxOccurs="1" name="ContactTypeID" type="s:string" />
    <s:element minOccurs="0" maxOccurs="1" name="IsInvoiceFlag" type="s:string" />
    <s:element minOccurs="0" maxOccurs="1" name="IsRaiseAlerts" type="s:string" />
    <s:element minOccurs="0" maxOccurs="1" name="ContractReference" type="s:string" />
  </s:sequence>
</s:complexType>

<s:complexType name="ImportPlannedVisit">
    <s:sequence>
      <s:element minOccurs="0" maxOccurs="1" name="UniquePlannedVisitID" type="s:string" />
      <s:element minOccurs="1" maxOccurs="1" name="Date1" type="s:dateTime" />
      <s:element minOccurs="0" maxOccurs="1" name="StartTime" type="s:string" />
      <s:element minOccurs="0" maxOccurs="1" name="EndTime" type="s:string" />
      <s:element minOccurs="0" maxOccurs="1" name="AlarmTime" type="s:string" />
      <s:element minOccurs="0" maxOccurs="1" name="UniqueClientID" type="s:string" />
      <s:element minOccurs="0" maxOccurs="1" name="UniqueCarerID" type="s:string" />
      <s:element minOccurs="0" maxOccurs="1" name="StaffAlarmTime" type="s:string" />
      <s:element minOccurs="0" maxOccurs="1" name="ChargeCode" type="s:string" />
      <s:element minOccurs="0" maxOccurs="1" name="VisitNotes" type="s:string" />
      <s:element minOccurs="0" maxOccurs="1" name="ContactTypeID" type="s:string" />
      <s:element minOccurs="0" maxOccurs="1" name="IsInvoiceFlag" type="s:string" />
      <s:element minOccurs="0" maxOccurs="1" name="IsRaiseAlerts" type="s:string" />
      <s:element minOccurs="0" maxOccurs="1" name="ContractReference" type="s:string" />
    </s:sequence>
</s:complexType>

Here is what I have tried:

$return = $this->client->ImportPlannedVisit(
  $id,                // UniquePlannedVisitID
  $datedos,           // Date1
  $timein,            // StartTime
  $timeout,           // EndTime
  $alarm_time,        // AlarmTime
  $ptid,              // UniqueClientID
  $agent1,            // UniqueCarerID
  "",                 // StaffAlarmTime
  "$hcpcs|$mod1-$mod2-$mod3-$mod4|$pricegroup|$pricecode|$dadscontract",  // ChargeCode
  "",                // VisitNotes
  "",                 // ContactTypeID
  "",                 // IsInvoiceFlag
  "",                 // IsRaiseAlerts
  $contractreference  // ContractReference
);

And:

$return = $this->client->ImportPlannedVisit(array(
    'UniquePlannedVisitID' => $id,
    'Date1' => $datedos,
    'StartTime' => $timein,
    'EndTime' => $timeout,
    'AlarmTime' => $alarm_time,
    'UniqueClientID' => $ptid,
    'UniqueCarerID' => $agent1,
    'ChargeCode' => "$hcpcs|$mod1-$mod2-$mod3-$mod4|$pricegroup|$pricecode|$dadscontract",
    'contractreference' => $contractreference
));