コード例 #1
0
ファイル: MiniMpi.java プロジェクト: sirrinki/CONNECT-Legacy
  public Patients Search(
      Patient searchParams, boolean AllowSearchByDemographics, boolean includeOptOutPatient) {
    Patients results = new Patients();

    // if not results, try a demographics search
    log.info("should we perform an demographic search?");
    if ((AllowSearchByDemographics) && (hasDemographicInfo(searchParams))) {
      log.info("attempt demographic search");
      results = SearchByDemographics(searchParams, includeOptOutPatient);
      if (results == null) {
        log.info("results==null");
      } else {
        log.info("results.size()=" + results.size());
      }
    } else {
      log.info("no attempt on demographic search");
    }

    // perform a id search
    log.info("should we perform an id search?");
    if ((results.size() == 0) && (searchParams.getIdentifiers().size() > 0)) {
      log.info("attempt id search");
      results = SearchById(searchParams, includeOptOutPatient);
      if (results == null) {
        log.info("results==null");
      } else {
        log.info("results.size()=" + results.size());
      }
    } else {
      log.info("no attempt on id search");
    }

    log.info("result size=" + results.size());
    return results;
  }
コード例 #2
0
ファイル: MiniMpi.java プロジェクト: sirrinki/CONNECT-Legacy
  public void Delete(Patient patient, String homeCommunityId) {
    log.info(
        "Attemping to Delete identifiers for community: "
            + homeCommunityId
            + " for patient: "
            + patient.getName().getFirstName()
            + " "
            + patient.getName().getLastName());
    Patients existingPatients = Search(patient, true, true);
    int patIdx = 0;
    int idIdx = 0;

    if (existingPatients.size() > 1) {
      log.info("ERROR: Multiple instances of the patient were found");
    } else if (existingPatients.size() == 1) {
      log.info("Found 1 entry in MPI for the patient");
      for (Patient tmpPatient : getPatients()) {
        if (existingPatients.get(0) == tmpPatient) {
          log.info("Found a match in index " + patIdx);

          for (Identifier id : getPatients().get(patIdx).getIdentifiers()) {
            if (homeCommunityId.contentEquals(id.getOrganizationId())) {
              log.info("Found a match for identifiers in index" + idIdx);
              Identifier result = getPatients().get(patIdx).getIdentifiers().remove(idIdx);
              break;
            }
            idIdx++;
          }
          break;
        }
        patIdx++;
      }
    } else {
      // System.out.println("ERROR: Patient not found in MPI");
      log.info("ERROR: Patient not found in MPI");
    }

    SaveData();
  }
コード例 #3
0
ファイル: MiniMpi.java プロジェクト: sirrinki/CONNECT-Legacy
  public Patient AddUpdate(Patient newPatient) {
    Patient resultPatient = null;
    ValidateNewPatient(newPatient);

    Patients existingPatients = Search(newPatient, true, true);

    if (existingPatients.size() == 2) {
      // throw exception
    } else if (existingPatients.size() == 1) {
      resultPatient = existingPatients.get(0);
      resultPatient.getIdentifiers().add(newPatient.getIdentifiers());
      resultPatient.setName(newPatient.getName());
      resultPatient.setGender(newPatient.getGender());
      resultPatient.setOptedIn(newPatient.isOptedIn());
    } else {
      getPatients().add(newPatient);
      resultPatient = newPatient;
    }

    SaveData();

    return resultPatient;
  }