public static Identifiers ExtractPersonIdentifiers(PRPAMT201306UV02ParameterList params) {
    log.debug("Entering HL7Parser201305.ExtractPersonIdentifiers method...");

    Identifiers ids = new Identifiers();
    Identifier id = new Identifier();

    if (params.getLivingSubjectId() != null
        && params.getLivingSubjectId().size() > 0
        && params.getLivingSubjectId().get(0) != null) {
      PRPAMT201306UV02LivingSubjectId livingSubjectId = params.getLivingSubjectId().get(0);

      if (livingSubjectId.getValue() != null
          && livingSubjectId.getValue().size() > 0
          && livingSubjectId.getValue().get(0) != null) {
        II subjectId = livingSubjectId.getValue().get(0);

        if (subjectId.getExtension() != null
            && subjectId.getExtension().length() > 0
            && subjectId.getRoot() != null
            && subjectId.getRoot().length() > 0) {
          id.setId(subjectId.getExtension());
          id.setOrganizationId(subjectId.getRoot());
          log.info(
              "Created id from patient identifier [organization="
                  + id.getOrganizationId()
                  + "][id="
                  + id.getId()
                  + "]");
          ids.add(id);
        } else {
          log.info("message does not contain an id");
        }
      } else {
        log.info("message does not contain an id");
      }
    } else {
      log.info("message does not contain an id");
    }

    log.debug("Exiting HL7Parser201305.ExtractPersonIdentifiers method...");
    return ids;
  }
  private static II extractPatientIdentifier(PRPAIN201305UV02 message) {
    II ii = null;
    String assigningAuthority = null;

    if (message != null
        && message.getControlActProcess() != null
        && NullChecker.isNotNullish(message.getControlActProcess().getAuthorOrPerformer())
        && message.getControlActProcess().getAuthorOrPerformer().get(0) != null
        && message.getControlActProcess().getAuthorOrPerformer().get(0).getAssignedDevice() != null
        && message
                .getControlActProcess()
                .getAuthorOrPerformer()
                .get(0)
                .getAssignedDevice()
                .getValue()
            != null
        && NullChecker.isNotNullish(
            message
                .getControlActProcess()
                .getAuthorOrPerformer()
                .get(0)
                .getAssignedDevice()
                .getValue()
                .getId())
        && message
                .getControlActProcess()
                .getAuthorOrPerformer()
                .get(0)
                .getAssignedDevice()
                .getValue()
                .getId()
                .get(0)
            != null
        && NullChecker.isNotNullish(
            message
                .getControlActProcess()
                .getAuthorOrPerformer()
                .get(0)
                .getAssignedDevice()
                .getValue()
                .getId()
                .get(0)
                .getRoot())) {
      assigningAuthority =
          message
              .getControlActProcess()
              .getAuthorOrPerformer()
              .get(0)
              .getAssignedDevice()
              .getValue()
              .getId()
              .get(0)
              .getRoot();
    }

    if ((message != null)
        && (message.getControlActProcess() != null)
        && (message.getControlActProcess().getQueryByParameter() != null)) {
      JAXBElement<PRPAMT201306UV02QueryByParameter> queryParam =
          message.getControlActProcess().getQueryByParameter();
      PRPAMT201306UV02QueryByParameter queryParam201306 = queryParam.getValue();
      if (queryParam201306.getParameterList() != null
          && queryParam201306.getParameterList().getLivingSubjectId() != null) {
        List<PRPAMT201306UV02LivingSubjectId> livingSubjectIdList =
            queryParam201306.getParameterList().getLivingSubjectId();
        if (NullChecker.isNotNullish(livingSubjectIdList)) {
          for (PRPAMT201306UV02LivingSubjectId livingSubId : livingSubjectIdList) {
            for (II id : livingSubId.getValue()) {
              if (id != null
                  && NullChecker.isNotNullish(id.getExtension())
                  && NullChecker.isNotNullish(id.getRoot())
                  && id.getRoot().equalsIgnoreCase(assigningAuthority)) {
                ii = id;

                // Break out of the inner loop
                break;
              }
            }

            // If the id was found break out of the outer loop
            if (ii != null) {
              break;
            }
          }
        }
      }
    }
    return ii;
  }