package edu.harvard.i2b2.common.datavo; import edu.harvard.i2b2.common.util.jaxb.DTOFactory; import edu.harvard.i2b2.common.util.jaxb.JAXBUtil; import edu.harvard.i2b2.core.datavo.pdo.EncounterIdeType; import edu.harvard.i2b2.core.datavo.pdo.ObservationFactType; import edu.harvard.i2b2.core.datavo.pdo.PatientDataType; import edu.harvard.i2b2.core.datavo.pdo.PatientIdeType; import edu.harvard.i2b2.core.datavo.pdo.VisitDimensionType; import junit.framework.TestCase; import java.io.StringWriter; import java.util.Date; import javax.xml.bind.JAXBElement; public class PatientDataMessageTest extends TestCase { public VisitDimensionType getVisitDimensionType() { VisitDimensionType visitType = new VisitDimensionType(); visitType.setPatientIde(getPatientIde()); visitType.setEncounterIde(getEncounterIde()); visitType.setSourcesystemCd("i2b2"); return visitType; } private PatientIdeType getPatientIde() { PatientIdeType patientIde = new PatientIdeType(); patientIde.setSource("i2b2"); patientIde.setValue("10000"); return patientIde; } private EncounterIdeType getEncounterIde() { EncounterIdeType encounterIde = new EncounterIdeType(); encounterIde.setSource("i2b2"); encounterIde.setValue("1000001"); return encounterIde; } // Function to build observation fact public ObservationFactType getObservationFactType() { Date currentDate = new Date(); ObservationFactType obType = new ObservationFactType(); DTOFactory dtoFactory = new DTOFactory(); obType.setEndDate(dtoFactory.getXMLGregorianCalendar( currentDate.getTime())); obType.setConceptCd("i2b2:60004"); obType.setConfidenceNum(1d); obType.setEncounterIde(getEncounterIde()); obType.setPatientIde(getPatientIde()); obType.setSourcesystemCd("i2b2"); obType.setTvalChar("tval"); obType.setNvalNum(100.0); obType.setObservationBlob("BLOB"); return obType; } public PatientDataType createPatientDataType() { PatientDataType patientData = new PatientDataType(); PatientDataType.VisitDimensionSet vdSet = new PatientDataType.VisitDimensionSet(); vdSet.getVisitDimension().add(getVisitDimensionType()); patientData.setVisitDimensionSet(vdSet); PatientDataType.ObservationFactSet obsSet = new PatientDataType.ObservationFactSet(); obsSet.getObservationFact().add(getObservationFactType()); patientData.getObservationFactSet().add(obsSet); return patientData; } private String getXMLString(JAXBElement<?> jaxbElement) throws Exception { JAXBUtil jaxbUtil = new JAXBUtil(new String[] { "edu.harvard.i2b2.core.datavo.pdo" }); StringWriter strWriter = new StringWriter(); jaxbUtil.marshaller(jaxbElement, strWriter); return strWriter.toString(); } public void testPatientDataMessage() throws Exception { edu.harvard.i2b2.core.datavo.pdo.ObjectFactory of = new edu.harvard.i2b2.core.datavo.pdo.ObjectFactory(); JAXBElement<?> jaxbElement = of.createPatientData(createPatientDataType()); String xmlMessage = getXMLString(jaxbElement); System.out.println("Patient Data Message"); System.out.println(xmlMessage); } }