[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