public static SuitableForSurgeryAssessment getSuitableForSurgeryAssessmentfromXML(
      org.dom4j.Element el, ims.domain.DomainFactory factory, java.util.HashMap domMap)
      throws Exception {
    if (el == null) return null;

    String className = el.attributeValue("type");
    if (!SuitableForSurgeryAssessment.class.getName().equals(className)) {
      Class clz = Class.forName(className);
      if (!SuitableForSurgeryAssessment.class.isAssignableFrom(clz))
        throw new Exception(
            "Element of type = "
                + className
                + " cannot be imported using the SuitableForSurgeryAssessment class");
      String shortClassName = className.substring(className.lastIndexOf(".") + 1);
      String methodName = "get" + shortClassName + "fromXML";
      java.lang.reflect.Method m =
          clz.getMethod(
              methodName,
              new Class[] {
                org.dom4j.Element.class, ims.domain.DomainFactory.class, java.util.HashMap.class
              });
      return (SuitableForSurgeryAssessment) m.invoke(null, new Object[] {el, factory, domMap});
    }

    String impVersion = el.attributeValue("classVersion");
    if (!impVersion.equals(SuitableForSurgeryAssessment.CLASSVERSION)) {
      throw new Exception("Incompatible class structure found. Cannot import instance.");
    }

    SuitableForSurgeryAssessment ret = null;
    int extId = Integer.parseInt(el.attributeValue("id"));
    String externalSource = el.attributeValue("source");
    ret =
        (SuitableForSurgeryAssessment)
            factory.getImportedDomainObject(
                SuitableForSurgeryAssessment.class, externalSource, extId);
    if (ret == null) {
      ret = new SuitableForSurgeryAssessment();
    }
    String keyClassName = "SuitableForSurgeryAssessment";

    ims.configuration.ImportedObject impObj =
        (ims.configuration.ImportedObject)
            domMap.get(keyClassName + "_" + externalSource + "_" + extId);
    if (impObj != null) {
      return (SuitableForSurgeryAssessment) impObj.getDomainObject();
    } else {
      impObj = new ims.configuration.ImportedObject();
      impObj.setExternalId(extId);
      impObj.setExternalSource(externalSource);
      impObj.setDomainObject(ret);
      domMap.put(keyClassName + "_" + externalSource + "_" + extId, impObj);
    }
    fillFieldsfromXML(el, factory, ret, domMap);
    return ret;
  }