xml.mmlSm :SummaryModule do

attributes = Hash.new
attributes['mmlSm:start'] = serviceHistory.start if serviceHistory.start
attributes['mmlSm:end'] = serviceHistory.end if serviceHistory.end
xml.mmlSm :serviceHistory, attributes do
  xml.mmlSm :outPatient do
    serviceHistory.outPatient.each do |item|
      xml.mmlSm :outPatientItem do
        xml.mmlSm :date, item.date
        condition_attr = Hash.new
        condition_attr['mmlSm:first'] = item.first unless item.first.nil?
        condition_attr['mmlSm:emergency'] = item.emergency unless item.emergency.nil?
        xml.mmlSm :outPatientCondition, item.outPatientCondition, condition_attr if item.outPatientCondition
        xml.mmlSm :staffs do
          item.staffs.each do |staff|
            xml << staff.to_xml
          end
        end if item.staffs
      end
    end
  end if serviceHistory.outPatient
  xml.mmlSm :inPatient do
    serviceHistory.inPatient.each do |item|
      xml.mmlSm :inPatientItem do
        xml.mmlSm :admission do
          xml.mmlSm :date, item.admission.date
          if item.admission.admissionCondition
            admission_attr = Hash.new
            admission_attr['mmlSm:emergency'] = item.admission.emergency unless item.admission.emergency.nil?
            xml.mmlSm :admissionCondition, item.admission.admissionCondition, admission_attr
          end
          xml.mmlSm :referFrom do
            xml << item.admission.referFrom.to_xml
          end if item.admission.referFrom
        end
        xml.mmlSm :discharge do
          xml.mmlSm :date, item.discharge.date
          if item.discharge.dischargeCondition
            discharge_attr = Hash.new
            discharge_attr['mmlSm:outcome'] = item.discharge.outcome if item.discharge.outcome
            xml.mmlSm :dischargeCondition, item.discharge.dischargeCondition, discharge_attr
          end
          xml.mmlSm :referTo do
            xml << item.discharge.referTo.to_xml
          end if item.discharge.referTo
        end
        xml.mmlSm :staffs do
          item.staffs.each do |staff|
            xml << staff.to_xml
          end
        end if item.staffs
      end
    end 
  end if serviceHistory.inPatient
end
registeredDiagnosis.each do |diagnosis|
  xml << diagnosis.to_xml
end if registeredDiagnosis
if deathInfo
  death_attr = Hash.new
  death_attr['mmlSm:date'] = deathInfo.date if deathInfo.date
  death_attr['mmlSm:autopsy'] = deathInfo.autopsy unless deathInfo.autopsy.nil?
  xml.mmlSm :deathInfo, deathInfo.value, death_attr
end
surgeryModule.each do |surgery|
  xml << surgery.to_xml
end if surgeryModule
xml.mmlSm :chiefComplaints, chiefComplaints if chiefComplaints
xml.mmlSm :patientProfile, patientProfile if patientProfile
xml.mmlSm :history, history if history
xml.mmlSm :physicalExam do
  xml << physicalExam.value
  physicalExam.link.each do |link|
    xml << link.to_xml
  end if physicalExam.link
end if physicalExam
xml.mmlSm :clinicalCourse do
  clinicalCourse.each do |record|
    record_attr = Hash.new
    record_attr['mmlSm:date'] = record.date
    xml.mmlSm :clinicalRecord, record_attr do
      xml << record.value
      record.extRef.each do |ref|
        xml << ref.to_xml
      end if record.extRef
      record.relatedDoc.each do |doc|
        doc_attr = Hash.new
        doc_attr['mmlSm:relation'] = doc.relation if doc.relation
        xml.mmlSm :relatedDoc, doc.value, doc_attr
      end if record.relatedDoc
    end
  end
end if clinicalCourse
xml.mmlSm :dischargeFindings do
  xml << dischargeFindings.value
  dischargeFindings.link.each do |link|
    xml << link.to_xml
  end if dischargeFindings.link
end if dischargeFindings
xml.mmlSm :medication do
  xml << medication.value
  medication.link.each do |link|
    xml << link.to_xml
  end if medication.link
end if medication
xml.mmlSm :testResults do
  testResults.each do |test|
    test_attr = Hash.new
    test_attr['mmlSm:date'] = test.date if test.date
    xml.mmlSm :testResult, test_attr do
      xml << test.value
      test.link.each do |link|
        xml << link.to_xml
      end if test.link
    end
  end
end if testResults
xml.mmlSm :plan do
  xml << plan.value
  plan.link.each do |link|
    xml << link.to_xml
  end if plan.link
end if plan
xml.mmlSm :remarks, remarks if remarks

end