package open.dolphin.session;
import java.io.*;
import java.util.Collection;
import java.util.Properties;
import java.util.logging.Logger;
import javax.ejb.ActivationConfigProperty;
import javax.ejb.MessageDriven;
import javax.inject.Inject;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.ObjectMessage;
import open.dolphin.infomodel.DiagnosisSendWrapper;
import open.dolphin.infomodel.DocumentModel;
import open.dolphin.infomodel.HealthInsuranceModel;
import open.dolphin.infomodel.PatientVisitModel;
import open.dolphin.mbean.PVTBuilder;
import open.dolphin.msg.ClaimSender;
import open.dolphin.msg.DiagnosisSender;
import open.dolphin.msg.OidSender;
import org.jboss.ejb3.annotation.ResourceAdapter;
//s.oh^ 2014/02/21 Claim送信方法の変更
//@MessageDriven(activationConfig = {
// @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
// @ActivationConfigProperty(propertyName = "destination", propertyValue = "queue/dolphin"),
// @ActivationConfigProperty(propertyName = "acknowledgeMode",propertyValue = "Auto-acknowledge")
//})
//
//@ResourceAdapter("hornetq-ra.rar")
//public class MessageSender implements MessageListener {
//
// private static boolean sendClaim;
// private static String HOST;
// private static int PORT;
// private static String ENC;
// private static String FACILITY_ID;
//
// static {
// try {
// // 設定ファイルを読み込む
// Properties config = new Properties();
// FileInputStream f = new FileInputStream(new File(System.getProperty("jboss.home.dir"), "custom.properties"));
// InputStreamReader r = new InputStreamReader(f, "JISAutoDetect");
// config.load(r);
// r.close();
//
// // CLAIM送信
// String test = config.getProperty("claim.conn"); // connection type
// boolean send = (test!=null && test.equals("server")); // = server
// sendClaim = send;
//
// // Server側で send する場合
// if (send) {
// // ORCA CLAIM 送信パラメータ
// HOST = config.getProperty("claim.host");
// PORT = Integer.parseInt(config.getProperty("claim.send.port"));
// ENC = config.getProperty("claim.send.encoding");
// FACILITY_ID = config.getProperty("dolphin.facilityId");
// }
//
// } catch (Exception e) {
// e.printStackTrace(System.err);
// }
// }
//
// @Inject
// private PVTServiceBean pvtServiceBean;
//
//
// @Override
// public void onMessage(Message message) {
//
// try {
// if (message instanceof ObjectMessage) {
//
// ObjectMessage objMessage = (ObjectMessage)message;
// Object obj = objMessage.getObject();
//
// if (obj instanceof DocumentModel) {
// // onMessageされるのは DocInfo.senClaim=trueの時
// // sendClaim=trueならここで送信、falseならクライアントで送信されている
// if (sendClaim) {
// log("Document message has received. Sending ORCA will start(Que).");
// ClaimSender sender = new ClaimSender(HOST,PORT,ENC);
// sender.send((DocumentModel)obj);
// }
//
// } else if (obj instanceof DiagnosisSendWrapper) {
// if (sendClaim) {
// log("DiagnosisSendWrapper message has received. Sending ORCA will start(Que).");
// DiagnosisSender sender = new DiagnosisSender(HOST,PORT,ENC);
// sender.send((DiagnosisSendWrapper)obj);
// }
//
// } else if (obj instanceof String) {
// log("PVT(CLAIM) message has received. Adding Dolphin will start.");
// parseAndSend((String)obj);
//
//
// } else if (obj instanceof AccountSummary) {
// log("AccountSummary message has received. Replying tester will start.");
// OidSender sender = new OidSender();
// sender.send((AccountSummary)obj);
//
// } else if (obj instanceof ActivityModel[]) {
// log("ActivityModel message has received. Reporting will start.");
// OidSender sender = new OidSender();
// sender.sendActivity((ActivityModel[])obj);
// }
// }
//
// } catch (Exception e) {
// e.printStackTrace(System.err);
// Logger.getLogger("open.dolphin").warning(e.getMessage());
// }
// }
//
// private void parseAndSend(String pvtXml) throws Exception {
// log(pvtXml);
//
// // Parse
// BufferedReader r = new BufferedReader(new StringReader(pvtXml));
// PVTBuilder builder = new PVTBuilder();
// builder.parse(r);
// PatientVisitModel model = builder.getProduct();
//
////s.oh^ 2014/03/13 ORCA患者登録対応
// if(model == null) {
// return;
// }
////s.oh$
//
// // 関係構築
// model.setFacilityId(FACILITY_ID);
// model.getPatientModel().setFacilityId(FACILITY_ID);
//
// Collection<HealthInsuranceModel> c = model.getPatientModel().getHealthInsurances();
// if (c!= null && c.size() > 0) {
// for (HealthInsuranceModel hm : c) {
// hm.setPatient(model.getPatientModel());
// }
// }
//
// int result = pvtServiceBean.addPvt(model);
// }
//
// private void log(String msg) {
// Logger.getLogger("open.dolphin").info(msg);
// }
//}
public class MessageSender implements MessageListener {
@Override
public void onMessage(Message message) {
}
}
//s.oh$