/**
   * Create the ValueObject from the ims.icps.instantiation.domain.objects.PatientICP object.
   *
   * @param map DomainObjectMap of DomainObjects to already created ValueObjects.
   * @param domainObject
   */
  public static ims.icp.vo.PatientICPVo create(
      DomainObjectMap map, ims.icps.instantiation.domain.objects.PatientICP domainObject) {
    if (null == domainObject) {
      return null;
    }
    // check if the domainObject already has a valueObject created for it
    ims.icp.vo.PatientICPVo valueObject =
        (ims.icp.vo.PatientICPVo) map.getValueObject(domainObject, ims.icp.vo.PatientICPVo.class);
    if (null == valueObject) {
      valueObject = new ims.icp.vo.PatientICPVo(domainObject.getId(), domainObject.getVersion());
      map.addValueObject(domainObject, valueObject);

      valueObject = insert(map, valueObject, domainObject);
    }
    return valueObject;
  }