import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; //import net.ihe.gazelle.iti.pix.hl7v2.model.v25.message.RSP_K23; /** * Hello world! * */ public class App { public static void main( String[] args ) { System.out.println( "Hapi Validator!"); //BIG BUG HAPI VALIDATION /* MSH|^~\&|||||20110327185247.678+0100||ORL^O34|7|P|2.5.1 MSA|AA|4602 PID|1||1127755^^^^KC_BIS_PAC~046037398^^^^ZZZS_PAC||Test^Patient^^^^^L||20021122|M SPM|25068953|28605||K-e^kri-EDTA|||||||||||||20110327185239.555+0200|||||||||1 ORC|OK|28605|1|32605|||||20110327185239.555+0200||||||||||||44120-A^^^^^^KC_PEK_ORG^^^Urgenca - ambulanta TQ1|||||||||R OBR||28605|1|020001^K-Hemogram^KC_PEK_LIS_PRE||||||||||||265141^Test^DOCTOR^^^^^^^^^^BPI_ZDR */ //Need to get the message content from the specified txt file. String message = readHL7File("FileToRead\\RSP_K23.txt"); //Run the validation String messageReport = HapiValidator.validateMessage( "2.5", "1.3.6.1.4.12559.11.1.1.30", "RSP^K23^RPS_K23", message, "net.ihe.gazelle.iti.pix.hl7v2.model.v25.message", null); //Other example // String messageReport = HapiValidator.validateMessage( // "25", // "1.3.6.1.4.12559.11.1.1.30", // "RSP^K23^RPS_K23", // message, // "net.ihe.gazelle.iti.pix.hl7v2.model.v25.message", // "FileToRead\\RPS_K23_Message_Profile.xml"); //Display the validation result report System.out.println("xmlReport : \n" + messageReport); //Try to get the message type. //System.out.println("Message Type : " + Guess.messageType(messageReport)); } public static String readHL7File (String filePath) { String message = ""; try { // Création du flux bufférisé sur un FileReader, immédiatement suivi par un // try/finally, ce qui permet de ne fermer le flux QUE s'il le reader // est correctement instancié (évite les NullPointerException) BufferedReader buff = new BufferedReader(new FileReader(filePath)); try { String line; int a = 1; int b = 0; int i = 0; int c = 0; // Lecture du fichier ligne par ligne. Cette boucle se termine // quand la méthode retourne la valeur null. while ((line = buff.readLine()) != null) { //System.out.println(line); // if (line.charAt(0) == 'M' && line.charAt(1) == 'F' && line.charAt(2) == 'E') // { // line = line.replace("MFE|MAD|", ("MFE|MAD|" + a)); // a++; // } // if (line.charAt(0) == 'O' && line.charAt(1) == 'M' && line.charAt(2) == '1') // { // // // i = 0; // b = 0; // c = 0; // for (int j = 0; j < 8; j++) // { // b = line.indexOf("|", b+1); // //System.out.println(b); // //System.out.println(line.charAt(b)); // if(b == -1 || c > b) // System.out.println("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"); // // c = b; // } //System.out.println(line.substring(b)); // if(line.charAt(b+1) == '|' && b != -1) // { // // System.out.println(line.charAt(b+1)); // StringBuffer s1 = new StringBuffer(line); // s1.insert(b+1, "NEED TO BE CHANGED"); // line = s1.toString(); // //System.out.println(b); // System.out.println(line); // } // } // if (line.charAt(0) != 'Z') // message = message + line + "\r"; //else //System.out.println(line); message = message + line + "\r"; } } finally { // dans tous les cas, on ferme nos flux buff.close(); } } catch (IOException ioe) { // erreur de fermeture des flux System.out.println("Erreur --" + ioe.toString()); return null; } return message; } }