Skip to content

Commit

Permalink
Merge pull request #363 from PrinceCatt/master
Browse files Browse the repository at this point in the history
Make find visit by diagnosis and by medication case insensitive
  • Loading branch information
kaboomzxc authored Nov 10, 2024
2 parents 1d14d97 + 57b4414 commit 1d2ed0b
Showing 1 changed file with 14 additions and 7 deletions.
21 changes: 14 additions & 7 deletions src/main/java/bookbob/functions/CommandHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -652,34 +652,41 @@ public void findVisitByIc(String nric, Records records) {
//find patient by diagnosis and print the specific patient and visit to terminal
//@@author PrinceCatt
public void findVisitByDiagnosis(String symptom, Records records) {
String finalSymptom = symptom.toLowerCase();
boolean isFound = false;
ArrayList<Patient> patientList = records.getPatients();
boolean found = false;
for (Patient patient : patientList) {
ArrayList<Visit> visits = patient.getVisits();
for (Visit visit : visits) {
if (visit.getDiagnoses().contains(symptom) || patient.getMedicalHistories().contains(symptom)) {
boolean isCurrentFound = visit.getDiagnoses().stream().anyMatch(diagnosis -> diagnosis.toLowerCase()
.contains(finalSymptom) || patient.getMedicalHistories().stream().anyMatch(history -> history
.toLowerCase().contains(finalSymptom)));
if (isCurrentFound) {
System.out.println("---------------------------------");
System.out.println(patient.toString());
System.out.println(visit.toString());
System.out.println("---------------------------------");
found = true;
isFound = true;
}
}
}
if (!found) {
if (!isFound) {
System.out.println("No patient found with symptom: " + symptom);
}
}

//find visit by medication and print all visits to terminal
//@@author PrinceCatt
public void findVisitByMedication(String medication, Records records) {
public void findVisitByMedication(String medicine, Records records) {
String finalMedicine = medicine.toLowerCase();
ArrayList<Patient> patientList = records.getPatients();
boolean isFound = false;
for (Patient patient : patientList) {
ArrayList<Visit> visits = patient.getVisits();
for (Visit visit : visits) {
if (visit.getMedications().contains(medication)) {
boolean isCurrentFound = visit.getMedications().stream().anyMatch(medication -> medication
.toLowerCase().contains(finalMedicine));
if (isCurrentFound) {
System.out.println("---------------------------------");
System.out.println(patient.toString());
System.out.println(visit.toString());
Expand All @@ -689,7 +696,7 @@ public void findVisitByMedication(String medication, Records records) {
}
}
if (!isFound) {
System.out.println("No patient found with medication: " + medication);
System.out.println("No patient found with medicine: " + finalMedicine);
}
}

Expand Down

0 comments on commit 1d2ed0b

Please sign in to comment.