[jboss-svn-commits] JBL Code SVN: r27206 - in labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionschedule: persistence and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sat Jun 27 14:16:23 EDT 2009
Author: ge0ffrey
Date: 2009-06-27 14:16:22 -0400 (Sat, 27 Jun 2009)
New Revision: 27206
Modified:
labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionschedule/domain/Bed.java
labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionschedule/domain/Department.java
labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionschedule/domain/Patient.java
labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionschedule/domain/Room.java
labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionschedule/persistence/PatientAdmissionScheduleInputConvertor.java
Log:
allowAdmission
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionschedule/domain/Bed.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionschedule/domain/Bed.java 2009-06-27 18:08:38 UTC (rev 27205)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionschedule/domain/Bed.java 2009-06-27 18:16:22 UTC (rev 27206)
@@ -40,4 +40,8 @@
return room + "_" + indexInRoom;
}
+ public boolean allowsAdmission(Admission admission) {
+ return room.allowsAdmission(admission);
+ }
+
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionschedule/domain/Department.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionschedule/domain/Department.java 2009-06-27 18:08:38 UTC (rev 27205)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionschedule/domain/Department.java 2009-06-27 18:16:22 UTC (rev 27206)
@@ -47,4 +47,18 @@
return name;
}
+ public boolean allowsAdmission(Admission admission) {
+ return allowsPatientAge(admission.getPatient());
+ }
+
+ public boolean allowsPatientAge(Patient patient) {
+ if (minimumAge != null && patient.getAge() < minimumAge) {
+ return false;
+ }
+ if (maximumAge != null && patient.getAge() > maximumAge) {
+ return false;
+ }
+ return true;
+ }
+
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionschedule/domain/Patient.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionschedule/domain/Patient.java 2009-06-27 18:08:38 UTC (rev 27205)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionschedule/domain/Patient.java 2009-06-27 18:16:22 UTC (rev 27206)
@@ -1,5 +1,7 @@
package org.drools.solver.examples.patientadmissionschedule.domain;
+import java.util.List;
+
import org.apache.commons.lang.builder.CompareToBuilder;
import org.drools.solver.examples.common.domain.AbstractPersistable;
@@ -13,6 +15,8 @@
private int age;
private int preferredMaximumRoomCapacity;
+ private List<RequiredPatientEquipment> requiredPatientEquipmentList;
+
public String getName() {
return name;
}
@@ -45,6 +49,14 @@
this.preferredMaximumRoomCapacity = preferredMaximumRoomCapacity;
}
+ public List<RequiredPatientEquipment> getRequiredPatientEquipmentList() {
+ return requiredPatientEquipmentList;
+ }
+
+ public void setRequiredPatientEquipmentList(List<RequiredPatientEquipment> requiredPatientEquipmentList) {
+ this.requiredPatientEquipmentList = requiredPatientEquipmentList;
+ }
+
public int compareTo(Patient other) {
return new CompareToBuilder()
.append(id, other.id)
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionschedule/domain/Room.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionschedule/domain/Room.java 2009-06-27 18:08:38 UTC (rev 27205)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionschedule/domain/Room.java 2009-06-27 18:16:22 UTC (rev 27206)
@@ -1,5 +1,7 @@
package org.drools.solver.examples.patientadmissionschedule.domain;
+import java.util.List;
+
import org.apache.commons.lang.builder.CompareToBuilder;
import org.drools.solver.examples.common.domain.AbstractPersistable;
@@ -14,6 +16,8 @@
private int capacity;
private GenderLimitation genderLimitation;
+ private List<RoomEquipment> roomEquipmentList;
+
public String getName() {
return name;
}
@@ -46,6 +50,14 @@
this.genderLimitation = genderLimitation;
}
+ public List<RoomEquipment> getRoomEquipmentList() {
+ return roomEquipmentList;
+ }
+
+ public void setRoomEquipmentList(List<RoomEquipment> roomEquipmentList) {
+ this.roomEquipmentList = roomEquipmentList;
+ }
+
public int compareTo(Room other) {
return new CompareToBuilder()
.append(department, other.department)
@@ -58,4 +70,42 @@
return department + "_" + name;
}
+ public boolean allowsAdmission(Admission admission) {
+ return department.allowsAdmission(admission)
+ && allowsPatientGender(admission.getPatient())
+ && hasRequiredRoomProperties(admission.getPatient());
+ }
+
+ public boolean allowsPatientGender(Patient patient) {
+ switch (genderLimitation) {
+ case ANY_GENDER:
+ return true;
+ case MALE_ONLY:
+ return patient.getGender() == Gender.MALE;
+ case FEMALE_ONLY:
+ return patient.getGender() == Gender.FEMALE;
+ case SAME_GENDER:
+ // scoreRules check this
+ return true;
+ default:
+ throw new IllegalStateException("genderLimitation (" + genderLimitation + ") not implemented");
+ }
+ }
+
+ public boolean hasRequiredRoomProperties(Patient patient) {
+ for (RequiredPatientEquipment requiredPatientEquipment : patient.getRequiredPatientEquipmentList()) {
+ Equipment requiredEquipment = requiredPatientEquipment.getEquipment();
+ boolean hasRequiredEquipment = false;
+ for (RoomEquipment roomEquipment : roomEquipmentList) {
+ if (roomEquipment.getEquipment().equals(requiredEquipment)) {
+ hasRequiredEquipment = true;
+ }
+ }
+ if (!hasRequiredEquipment) {
+ return false;
+ }
+ }
+ return true;
+ }
+
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionschedule/persistence/PatientAdmissionScheduleInputConvertor.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionschedule/persistence/PatientAdmissionScheduleInputConvertor.java 2009-06-27 18:08:38 UTC (rev 27205)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionschedule/persistence/PatientAdmissionScheduleInputConvertor.java 2009-06-27 18:16:22 UTC (rev 27206)
@@ -225,6 +225,7 @@
roomSpecialismId++;
}
+ List<RoomEquipment> roomEquipmentOfRoomList = new ArrayList<RoomEquipment>(equipmentListSize);
String[] roomEquipmentTokens = splitBySpace(lineTokens[5]);
if (roomEquipmentTokens.length != equipmentListSize) {
throw new IllegalArgumentException("Read line (" + line
@@ -238,6 +239,7 @@
roomEquipment.setId(roomEquipmentId);
roomEquipment.setRoom(room);
roomEquipment.setEquipment(indexToEquipmentMap.get(j));
+ roomEquipmentOfRoomList.add(roomEquipment);
roomEquipmentList.add(roomEquipment);
roomEquipmentId++;
} else if (hasEquipment != 0) {
@@ -245,6 +247,7 @@
+ ") is expected to have 0 or 1 hasEquipment (" + hasEquipment + ").");
}
}
+ room.setRoomEquipmentList(roomEquipmentOfRoomList);
}
patientAdmissionSchedule.setRoomList(roomList);
patientAdmissionSchedule.setRoomSpecialismList(roomSpecialismList);
@@ -348,6 +351,7 @@
+ ") different from the sum of admissionNightListSize (" + nextFirstNightIndex + ")");
}
+ List<RequiredPatientEquipment> requiredPatientEquipmentOfPatientList = new ArrayList<RequiredPatientEquipment>(equipmentListSize);
String[] requiredPatientEquipmentTokens = splitBySpace(lineTokens[4]);
if (requiredPatientEquipmentTokens.length != equipmentListSize) {
throw new IllegalArgumentException("Read line (" + line
@@ -362,6 +366,7 @@
requiredPatientEquipment.setId(requiredPatientEquipmentId);
requiredPatientEquipment.setPatient(patient);
requiredPatientEquipment.setEquipment(indexToEquipmentMap.get(j));
+ requiredPatientEquipmentOfPatientList.add(requiredPatientEquipment);
requiredPatientEquipmentList.add(requiredPatientEquipment);
requiredPatientEquipmentId++;
} else if (hasEquipment != 0) {
@@ -369,6 +374,7 @@
+ ") is expected to have 0 or 1 hasEquipment (" + hasEquipment + ").");
}
}
+ patient.setRequiredPatientEquipmentList(requiredPatientEquipmentOfPatientList);
String[] preferredPatientEquipmentTokens = splitBySpace(lineTokens[5]);
if (preferredPatientEquipmentTokens.length != equipmentListSize) {
More information about the jboss-svn-commits
mailing list