[jboss-svn-commits] JBL Code SVN: r27239 - in labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main: java/org/drools/solver/examples/patientadmissionschedule/solver/solution/initializer and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sun Jun 28 10:05:33 EDT 2009


Author: ge0ffrey
Date: 2009-06-28 10:05:33 -0400 (Sun, 28 Jun 2009)
New Revision: 27239

Modified:
   labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionschedule/domain/BedDesignation.java
   labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionschedule/solver/solution/initializer/PatientAdmissionScheduleStartingSolutionInitializer.java
   labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/patientadmissionschedule/solver/patientAdmissionScheduleScoreRules.drl
Log:
pas: preferredRoomEquipment

Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionschedule/domain/BedDesignation.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionschedule/domain/BedDesignation.java	2009-06-28 13:41:25 UTC (rev 27238)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionschedule/domain/BedDesignation.java	2009-06-28 14:05:33 UTC (rev 27239)
@@ -81,6 +81,10 @@
         return admissionPart + " @ " + bed;
     }
 
+    public Patient getPatient() {
+        return admissionPart.getPatient();
+    }
+
     public Room getRoom() {
         return bed.getRoom();
     }

Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionschedule/solver/solution/initializer/PatientAdmissionScheduleStartingSolutionInitializer.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionschedule/solver/solution/initializer/PatientAdmissionScheduleStartingSolutionInitializer.java	2009-06-28 13:41:25 UTC (rev 27238)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionschedule/solver/solution/initializer/PatientAdmissionScheduleStartingSolutionInitializer.java	2009-06-28 14:05:33 UTC (rev 27239)
@@ -41,7 +41,7 @@
         List<Bed> bedList = patientAdmissionSchedule.getBedList();
 int stillRunningCounter = 0; // TODO https://jira.jboss.org/jira/browse/JBRULES-2145
         for (BedDesignation bedDesignation : bedDesignationList) {
-System.out.println("Trunk is bugged " + ++stillRunningCounter +"/" + bedDesignationList.size() + " but we are not working on trunk. See JBRULES-2145.");
+System.out.println("Trunk is bugged " + ++stillRunningCounter +"/" + bedDesignationList.size() + " but we do not use trunk. See JBRULES-2145.");
             Score unscheduledScore = localSearchSolverScope.calculateScoreFromWorkingMemory();
             boolean perfectMatch = false;
             Score bestScore = DefaultHardAndSoftScore.valueOf(Integer.MIN_VALUE);

Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/patientadmissionschedule/solver/patientAdmissionScheduleScoreRules.drl
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/patientadmissionschedule/solver/patientAdmissionScheduleScoreRules.drl	2009-06-28 13:41:25 UTC (rev 27238)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/patientadmissionschedule/solver/patientAdmissionScheduleScoreRules.drl	2009-06-28 14:05:33 UTC (rev 27239)
@@ -32,6 +32,8 @@
 // Hard constraints
 // ############################################################################
 
+// RoomMaintenance constraint is not yet applicable
+
 // Two patients in the same bed for a number of nights.
 rule "sameBedInSameNight"
     when
@@ -40,12 +42,12 @@
         $leftBedDesignation : BedDesignation(admissionPart == $leftAdmissionPart, $bed : bed);
         $rightBedDesignation : BedDesignation(admissionPart == $rightAdmissionPart, bed == $bed);
     then
-        insertLogical(new IntConstraintOccurrence("sameBedInSameNight", ConstraintType.NEGATIVE_HARD,
-                $admissionPartConflict.getNightSize(),
+        insertLogical(new IntConstraintOccurrence("sameBedInSameNight",
+                ConstraintType.NEGATIVE_HARD, $admissionPartConflict.getNightSize(),
                 $leftBedDesignation, $rightBedDesignation));
 end
 
-// Two admissionParts in the same bed for a number of nights.
+// Different genders in the same room when the room doesn't allow it.
 rule "differentGenderInSameGenderRoomInSameNight"
     when
         $admissionPartConflict : AdmissionPartConflict($leftAdmissionPart : leftAdmissionPart,
@@ -55,11 +57,19 @@
                 admissionPart == $leftAdmissionPart, $room : room);
         $rightBedDesignation : BedDesignation(room == $room, admissionPart == $rightAdmissionPart);
     then
-        insertLogical(new IntConstraintOccurrence("differentGenderInSameGenderRoomInSameNight", ConstraintType.NEGATIVE_HARD,
-                $admissionPartConflict.getNightSize(),
+        insertLogical(new IntConstraintOccurrence("differentGenderInSameGenderRoomInSameNight",
+                ConstraintType.NEGATIVE_HARD, $admissionPartConflict.getNightSize(),
                 $leftBedDesignation, $rightBedDesignation));
 end
 
+// Room's GenderLimitation male only and female only constraint is build-in
+
+// Departement's mininumAge and maximumAge constraint is build-in
+
+// RequiredPatientEquipment constraint is build-in
+
+// Patient's requiredRoomCapacity constraint is not yet applicable
+
 // Accumulate hard constraints
 rule "hardConstraintsBroken"
         salience -1 // Finish the other rules first (optional, for performance)
@@ -76,6 +86,21 @@
 // Soft constraints
 // ############################################################################
 
+
+// PreferredPatientEquipment constraint
+rule "preferredPatientEquipment"
+    when
+        $preferredPatientEquipment : PreferredPatientEquipment($patient : patient, $equipment : equipment);
+        $bedDesignation : BedDesignation(patient == $patient, $room : room);
+        not RoomEquipment(room == $room, equipment == $equipment);
+    then
+        insertLogical(new IntConstraintOccurrence("preferredPatientEquipment",
+                ConstraintType.NEGATIVE_SOFT, 20,
+                $bedDesignation));
+end
+
+// Do not change bed in an AdmissionPart on different Nights constraint is build-in
+
 // Accumulate soft constraints
 rule "softConstraintsBroken"
         salience -1 // Finish the other rules first (optional, for performance)




More information about the jboss-svn-commits mailing list