package open.dolphin.rest;
import java.util.List;
import javax.inject.Inject;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import open.dolphin.converter.*;
import open.dolphin.infomodel.*;
import open.dolphin.touch.converter.IPatientModel;
import open.dolphin.session.MmlServiceBean;
/**
*
* @author kazushi Minagawa
*/
@Path("/mml")
public class MmlResource extends AbstractResource {
@Inject
private MmlServiceBean mmlServiceBean;
@GET
@Path("/document/{param}")
public String dumpFacilityDocumentsAsMML(@PathParam("param") String param) {
String fid = param;
final List<Long> docList = mmlServiceBean.getFacilityDocumentList(fid);
if (docList.isEmpty()) {
return "0";
}
final int cnt = docList.size();
Runnable r = () -> {
for (int i = 0; i < cnt; i++) {
mmlServiceBean.dumpDocumentToMML(i, docList.get(i));
}
System.err.println("MMLダンプ終了しました。");
};
Thread t = new Thread(r);
t.setPriority(Thread.NORM_PRIORITY);
t.start();
return String.valueOf(cnt);
}
@GET
@Path("/patient/{param}")
public String dumpFacilityPatientsDiagnosisAsMML(@PathParam("param") String param) {
final String fid = param;
final List<Long> list = mmlServiceBean.getFacilityPatientList(fid);
if (list.isEmpty()) {
return "0";
}
final int cnt = list.size();
Runnable r = () -> {
for (int i = 0; i < 1; i++) {
mmlServiceBean.dumpPatientDiagnosisToMML(fid, i, list.get(i));
//mmlServiceBean.patientToJSON(i, list.get(i).longValue());
}
};
Thread t = new Thread(r);
t.setPriority(Thread.NORM_PRIORITY);
t.start();
return String.valueOf(cnt);
}
//-------------------------------------------------------------------------
// Patient JSON
//-------------------------------------------------------------------------
@GET
@Path("/patient/list/{param}")
@Produces(MediaType.TEXT_PLAIN)
public String getPatientList(@PathParam("param") String param) {
String fid = param;
List<Long> list = mmlServiceBean.getFacilityPatientList(fid);
StringBuilder sb = new StringBuilder();
for (Long l : list) {
sb.append(String.valueOf(l));
sb.append(",");
}
int len = sb.length();
sb.setLength(len-1);
String ret = sb.toString();
return ret;
}
@GET
@Path("/patient/json/{param}")
@Produces(MediaType.APPLICATION_JSON)
public IPatientModel dumpPatientAsJSON(@PathParam("param") String param) {
long pk = Long.parseLong(param);
PatientModel pm = mmlServiceBean.getPatientByPK(pk);
IPatientModel conv = new IPatientModel();
conv.setModel(pm);
return conv;
}
//--------------------------------------------------------------------------
// Disease JSON
//-------------------------------------------------------------------------
@GET
@Path("/disease/list/{param}")
@Produces(MediaType.TEXT_PLAIN)
public String getDiseaseList(@PathParam("param") String param) {
String fid = param;
List<Long> list = mmlServiceBean.getFacilityDiseaseList(fid);
StringBuilder sb = new StringBuilder();
for (Long l : list) {
sb.append(String.valueOf(l));
sb.append(",");
}
int len = sb.length();
sb.setLength(len-1);
String ret = sb.toString();
return ret;
}
@GET
@Path("/disease/json/{param}")
@Produces(MediaType.APPLICATION_JSON)
public RegisteredDiagnosisModelConverter dumpDiseaseAsJSON(@PathParam("param") String param) {
long pk = Long.parseLong(param);
RegisteredDiagnosisModel pm = mmlServiceBean.getDiseaseByPK(pk);
RegisteredDiagnosisModelConverter conv = new RegisteredDiagnosisModelConverter();
conv.setModel(pm);
return conv;
}
//--------------------------------------------------------------------------
// Memo JSON
//-------------------------------------------------------------------------
@GET
@Path("/memo/list/{param}")
@Produces(MediaType.TEXT_PLAIN)
public String getMemoList(@PathParam("param") String param) {
String fid = param;
List<Long> list = mmlServiceBean.getFacilityMemoList(fid);
StringBuilder sb = new StringBuilder();
for (Long l : list) {
sb.append(String.valueOf(l));
sb.append(",");
}
int len = sb.length();
sb.setLength(len-1);
String ret = sb.toString();
return ret;
}
@GET
@Path("/memo/json/{param}")
@Produces(MediaType.APPLICATION_JSON)
public PatientMemoModelConverter dumpMemoAsJSON(@PathParam("param") String param) {
long pk = Long.parseLong(param);
PatientMemoModel pm = mmlServiceBean.getMemoByPK(pk);
PatientMemoModelConverter conv = new PatientMemoModelConverter();
conv.setModel(pm);
return conv;
}
//--------------------------------------------------------------------------
// Observation JSON
//-------------------------------------------------------------------------
@GET
@Path("/observation/list/{param}")
@Produces(MediaType.TEXT_PLAIN)
public String getObservationList(@PathParam("param") String param) {
String fid = param;
List<Long> list = mmlServiceBean.getFacilityObservationList(fid);
StringBuilder sb = new StringBuilder();
for (Long l : list) {
sb.append(String.valueOf(l));
sb.append(",");
}
int len = sb.length();
sb.setLength(len-1);
String ret = sb.toString();
return ret;
}
@GET
@Path("/observation/json/{param}")
@Produces(MediaType.APPLICATION_JSON)
public ObservationModelConverter dumpObservationAsJSON(@PathParam("param") String param) {
long pk = Long.parseLong(param);
ObservationModel pm = mmlServiceBean.getObservationByPK(pk);
ObservationModelConverter conv = new ObservationModelConverter();
conv.setModel(pm);
return conv;
}
//--------------------------------------------------------------------------
// Karte JSON
//-------------------------------------------------------------------------
@GET
@Path("/karte/list/{param}")
@Produces(MediaType.TEXT_PLAIN)
public String getKarteList(@PathParam("param") String param) {
String fid = param;
final List<Long> list = mmlServiceBean.getFacilityKarteList(fid);
if (list.isEmpty()) {
return "0";
}
final int cnt = list.size();
// Runnable r = new Runnable() {
//
// @Override
// public void run() {
// for (int i = 0; i < cnt; i++) {
// try {
// mmlServiceBean.getKarteByPK(i, list.get(i).longValue());
//
// } catch (Exception e) {
//
// }
// }
// System.err.println("JSONダンプ終了しました。");
// }
// };
// Thread t = new Thread(r);
// t.setPriority(Thread.NORM_PRIORITY);
// t.start();
//
// return String.valueOf(cnt);
StringBuilder sb = new StringBuilder();
for (Long l : list) {
sb.append(String.valueOf(l));
sb.append(",");
}
int len = sb.length();
sb.setLength(len-1);
String ret = sb.toString();
return ret;
}
@GET
@Path("/karte/json/{param}")
@Produces(MediaType.APPLICATION_JSON)
public DocumentModelConverter dumpKarteAsJSON(@PathParam("param") String param) {
long pk = Long.parseLong(param);
DocumentModel pm = mmlServiceBean.getKarteByPK(pk);
DocumentModelConverter conv = new DocumentModelConverter();
conv.setModel(pm);
return conv;
}
//--------------------------------------------------------------------------
// Letter JSON
//-------------------------------------------------------------------------
@GET
@Path("/letter/list/{param}")
@Produces(MediaType.TEXT_PLAIN)
public String getLetterList(@PathParam("param") String param) {
String fid = param;
List<Long> list = mmlServiceBean.getFacilityLetterList(fid);
StringBuilder sb = new StringBuilder();
for (Long l : list) {
sb.append(String.valueOf(l));
sb.append(",");
}
int len = sb.length();
sb.setLength(len-1);
String ret = sb.toString();
return ret;
}
@GET
@Path("/letter/json/{param}")
@Produces(MediaType.APPLICATION_JSON)
public LetterModuleConverter dumpLetterAsJSON(@PathParam("param") String param) {
long pk = Long.parseLong(param);
LetterModule pm = mmlServiceBean.getLetterByPK(pk);
LetterModuleConverter conv = new LetterModuleConverter();
conv.setModel(pm);
return conv;
}
//--------------------------------------------------------------------------
// Labtest JSON
//-------------------------------------------------------------------------
@GET
@Path("/labtest/list/{param}")
@Produces(MediaType.TEXT_PLAIN)
public String getLabtestList(@PathParam("param") String param) {
String fid = param;
List<Long> list = mmlServiceBean.getFacilityLabtestList(fid);
StringBuilder sb = new StringBuilder();
for (Long l : list) {
sb.append(String.valueOf(l));
sb.append(",");
}
int len = sb.length();
sb.setLength(len-1);
String ret = sb.toString();
return ret;
}
@GET
@Path("/labtest/json/{param}")
@Produces(MediaType.APPLICATION_JSON)
public NLaboModuleConverter dumpLabtestAsJSON(@PathParam("param") String param) {
long pk = Long.parseLong(param);
NLaboModule pm = mmlServiceBean.getLabtestByPK(pk);
NLaboModuleConverter conv = new NLaboModuleConverter();
conv.setModel(pm);
return conv;
}
}