[jboss-svn-commits] JBL Code SVN: r27244 - in labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main: resources/org/drools/solver/examples/patientadmissionschedule/solver and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sun Jun 28 10:51:06 EDT 2009


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

Added:
   labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionschedule/persistence/PatientAdmissionScheduleOutputConvertor.java
Modified:
   labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/patientadmissionschedule/solver/patientAdmissionScheduleScoreRules.drl
Log:
pas: outputconverter

Copied: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionschedule/persistence/PatientAdmissionScheduleOutputConvertor.java (from rev 27236, labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/examination/persistence/ExaminationOutputConvertor.java)
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionschedule/persistence/PatientAdmissionScheduleOutputConvertor.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionschedule/persistence/PatientAdmissionScheduleOutputConvertor.java	2009-06-28 14:51:05 UTC (rev 27244)
@@ -0,0 +1,78 @@
+package org.drools.solver.examples.patientadmissionschedule.persistence;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.Collections;
+
+import org.apache.commons.io.IOUtils;
+import org.drools.solver.examples.common.app.LoggingMain;
+import org.drools.solver.examples.common.domain.PersistableIdComparator;
+import org.drools.solver.examples.common.persistence.XstreamSolutionDaoImpl;
+import org.drools.solver.examples.itc2007.examination.domain.Exam;
+import org.drools.solver.examples.patientadmissionschedule.domain.PatientAdmissionSchedule;
+import org.drools.solver.examples.patientadmissionschedule.domain.Patient;
+import org.drools.solver.examples.patientadmissionschedule.domain.AdmissionPart;
+import org.drools.solver.examples.patientadmissionschedule.domain.BedDesignation;
+
+/**
+ * @author Geoffrey De Smet
+ */
+public class PatientAdmissionScheduleOutputConvertor extends LoggingMain {
+
+    private static final String INPUT_FILE_SUFFIX = ".xml";
+    private static final String OUTPUT_FILE_SUFFIX = ".txt";
+
+    public static void main(String[] args) {
+        new PatientAdmissionScheduleOutputConvertor().convert();
+    }
+
+    private final File inputDir = new File("data/patientadmissionschedule/solved/");
+    private final File outputDir = new File("data/patientadmissionschedule/output/");
+
+    public void convert() {
+        XstreamSolutionDaoImpl solutionDao = new XstreamSolutionDaoImpl();
+        File[] inputFiles = inputDir.listFiles();
+        if (inputFiles == null) {
+            throw new IllegalArgumentException(
+                    "Your working dir should be drools-solver-examples and contain: " + inputDir);
+        }
+        for (File inputFile : inputFiles) {
+            String inputFileName = inputFile.getName();
+            if (inputFileName.endsWith(INPUT_FILE_SUFFIX)) {
+                PatientAdmissionSchedule patientAdmissionSchedule = (PatientAdmissionSchedule) solutionDao.readSolution(inputFile);
+                String outputFileName = inputFileName.substring(0, inputFileName.length() - INPUT_FILE_SUFFIX.length())
+                        + OUTPUT_FILE_SUFFIX;
+                File outputFile = new File(outputDir, outputFileName);
+                writePatientAdmissionSchedule(patientAdmissionSchedule, outputFile);
+            }
+        }
+    }
+
+    public void writePatientAdmissionSchedule(PatientAdmissionSchedule patientAdmissionSchedule, File outputFile) {
+        BufferedWriter bufferedWriter = null;
+        try {
+            bufferedWriter = new BufferedWriter(new FileWriter(outputFile));
+            writePatientAdmissionSchedule(patientAdmissionSchedule, bufferedWriter);
+        } catch (IOException e) {
+            throw new IllegalArgumentException(e);
+        } finally {
+            IOUtils.closeQuietly(bufferedWriter);
+        }
+    }
+
+    public void writePatientAdmissionSchedule(PatientAdmissionSchedule patientAdmissionSchedule, BufferedWriter bufferedWriter) throws IOException {
+        Collections.sort(patientAdmissionSchedule.getBedDesignationList());
+        for (Patient patient : patientAdmissionSchedule.getPatientList()) {
+            bufferedWriter.write(Long.toString(patient.getId()));
+            for (BedDesignation bedDesignation : patientAdmissionSchedule.getBedDesignationList()) {
+                if (bedDesignation.getPatient().equals(patient)) {
+                    bufferedWriter.write(" " + Long.toString(bedDesignation.getBed().getId()));
+                }
+            }
+            bufferedWriter.write("\n");
+        }
+    }
+
+}
\ No newline at end of file

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 14:33:46 UTC (rev 27243)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/patientadmissionschedule/solver/patientAdmissionScheduleScoreRules.drl	2009-06-28 14:51:05 UTC (rev 27244)
@@ -91,6 +91,7 @@
 rule "preferredMaximumRoomCapacity"
     when
         $bedDesignation : BedDesignation(patientPreferredMaximumRoomCapacity < roomCapacity);
+        // TODO bugged (we want jess like behaviour!)
     then
         insertLogical(new IntConstraintOccurrence("preferredMaximumRoomCapacity",
                 ConstraintType.NEGATIVE_SOFT,




More information about the jboss-svn-commits mailing list