Example usage for org.joda.time DateTime getYear

List of usage examples for org.joda.time DateTime getYear

Introduction

In this page you can find the example usage for org.joda.time DateTime getYear.

Prototype

public int getYear() 

Source Link

Document

Get the year field value.

Usage

From source file:org.gephi.desktop.timeline.MinimalDrawer.java

License:Open Source License

private void paintUpperRulerForInterval(Graphics2D g2d, DateTime dtFrom, DateTime dtTo) {

    g2d.setFont(settings.graduations.font);
    g2d.setColor(settings.graduations.fontColor);
    int leftMargin = settings.graduations.leftMargin;
    int textTopPosition = settings.graduations.textTopPosition;
    int width = getWidth();
    int height = getHeight();
    // TODO take these from the model

    Interval interval = new Interval(dtFrom, dtTo);

    Period p = interval.toPeriod(PeriodType.days());
    // try to determine length if we had to show milliseconds

    int n = p.getDays();
    int unitSize = (int) (settings.graduations.fontMetrics.getStringBounds("wednesday  ", null)).getWidth();
    if (n < (width / unitSize)) {
        //System.out.println("jour");
        for (int i = 0; i < n; i++) {
            g2d.drawString(dtFrom.plusDays(i).dayOfWeek().getAsText(LOCALE), leftMargin + 2 + i * (width / n),
                    textTopPosition);//from  w w w . j  av  a  2s . co  m
            g2d.drawLine(leftMargin + i * (width / n), 2, leftMargin + i * (width / n),
                    height - settings.graduations.textBottomMargin);
            paintSmallGraduations(g2d, leftMargin + i * (width / n), leftMargin + (i + 1) * (width / n),
                    Hours.hoursBetween(dtFrom.plusDays(i), dtFrom.plusDays(i + 1)).getHours());
        }
        return;
    }

    unitSize = (int) (settings.graduations.fontMetrics.getStringBounds("wed ", null)).getWidth();
    if (n < (width / unitSize)) {
        //System.out.println("jou");
        for (int i = 0; i < n; i++) {
            g2d.drawString(dtFrom.plusDays(i).dayOfWeek().getAsShortText(LOCALE),
                    leftMargin + 2 + i * (width / n), textTopPosition);
            g2d.drawLine(leftMargin + i * (width / n), 2, leftMargin + i * (width / n),
                    height - settings.graduations.textBottomMargin);

            paintSmallGraduations(g2d, leftMargin + i * (width / n), leftMargin + (i + 1) * (width / n),
                    Hours.hoursBetween(dtFrom.plusDays(i), dtFrom.plusDays(i + 1)).getHours());
        }
        return;
    }

    p = interval.toPeriod(PeriodType.days());
    n = p.getDays();
    unitSize = (int) (settings.graduations.fontMetrics.getStringBounds("30", null)).getWidth();
    if (n < (width / unitSize)) {
        //System.out.println("j");
        for (int i = 0; i < n; i++) {
            g2d.drawString("" + (dtFrom.getDayOfMonth() + i), leftMargin + 2 + i * (width / n),
                    textTopPosition);
            g2d.drawLine(leftMargin + i * (width / n), 2, leftMargin + i * (width / n),
                    height - settings.graduations.textBottomMargin);

            paintSmallGraduations(g2d, leftMargin + i * (width / n), leftMargin + (i + 1) * (width / n),
                    Hours.hoursBetween(dtFrom.plusDays(i), dtFrom.plusDays(i + 1)).getHours());
        }
        return;
    }

    p = interval.toPeriod(PeriodType.months());
    n = p.getMonths();
    unitSize = (int) (settings.graduations.fontMetrics.getStringBounds("September  ", null)).getWidth();
    if (n < (width / unitSize)) {
        //System.out.println("mois");
        for (int i = 0; i < n; i++) {
            g2d.drawString(dtFrom.plusMonths(i).monthOfYear().getAsText(LOCALE),
                    leftMargin + 2 + i * (width / n), textTopPosition);
            g2d.drawLine(leftMargin + i * (width / n), 2, leftMargin + i * (width / n),
                    height - settings.graduations.textBottomMargin);

            paintSmallGraduations(g2d, leftMargin + i * (width / n), leftMargin + (i + 1) * (width / n),
                    Days.daysBetween(dtFrom.plusMonths(i), dtFrom.plusMonths(i + 1)).getDays());
        }
        return;
    }

    unitSize = (int) (settings.graduations.fontMetrics.getStringBounds("dec ", null)).getWidth();
    if (n < (width / unitSize)) {
        //System.out.println("mo");
        for (int i = 0; i < n; i++) {
            g2d.drawString(dtFrom.plusMonths(i).monthOfYear().getAsShortText(LOCALE),
                    leftMargin + 2 + i * (width / n), textTopPosition);
            g2d.drawLine(leftMargin + i * (width / n), 2, leftMargin + i * (width / n),
                    height - settings.graduations.textBottomMargin);
            paintSmallGraduations(g2d, leftMargin + i * (width / n), leftMargin + (i + 1) * (width / n),
                    Days.daysBetween(dtFrom.plusMonths(i), dtFrom.plusMonths(i + 1)).getDays());
        }
        return;
    }

    unitSize = (int) (settings.graduations.fontMetrics.getStringBounds("29 ", null)).getWidth();
    if (n < (width / unitSize)) {
        //System.out.println("m");
        for (int i = 0; i < n; i++) {
            g2d.drawString("" + (dtFrom.getMonthOfYear() + i), leftMargin + 2 + i * (width / n),
                    textTopPosition);
            g2d.drawLine(leftMargin + i * (width / n), 2, leftMargin + i * (width / n),
                    height - settings.graduations.textBottomMargin);
            paintSmallGraduations(g2d, leftMargin + i * (width / n), leftMargin + (i + 1) * (width / n),
                    Days.daysBetween(dtFrom.plusMonths(i), dtFrom.plusMonths(i + 1)).getDays());
        }
        return;
    }

    p = interval.toPeriod(PeriodType.years());
    n = p.getYears();
    unitSize = (int) (settings.graduations.fontMetrics.getStringBounds("1980 ", null)).getWidth();
    if (n < (width / unitSize)) {
        //System.out.println("year");
        for (int i = 0; i < n; i++) {
            g2d.drawString("" + (dtFrom.getYear() + i), leftMargin + 2 + i * (width / n), textTopPosition);
            g2d.drawLine(leftMargin + i * (width / n), 2, leftMargin + i * (width / n),
                    height - settings.graduations.textBottomMargin);
            paintSmallGraduations(g2d, leftMargin + i * (width / n), leftMargin + (i + 1) * (width / n),
                    Months.monthsBetween(dtFrom.plusYears(i), dtFrom.plusYears(i + 1)).getMonths());
        }
        return;
    }

    int group = 10;
    n = p.getYears() / group;
    if (n < (width / unitSize)) {
        //System.out.println("10 years");
        for (int i = 0; i < n; i++) {
            g2d.drawString("" + (dtFrom.getYear() + i * group), leftMargin + 2 + i * (width / n),
                    textTopPosition);
            g2d.drawLine(leftMargin + i * (width / n), 2, leftMargin + i * (width / n),
                    height - settings.graduations.textBottomMargin);
            paintSmallGraduations(g2d, leftMargin + i * (width / n), leftMargin + (i + 1) * (width / n), Months
                    .monthsBetween(dtFrom.plusYears(i * group), dtFrom.plusYears((i + 1) * group)).getMonths());
        }
        return;
    }
    group = 20;
    n = p.getYears() / group;
    if (n < (width / unitSize)) {
        //System.out.println("20 years");
        for (int i = 0; i < n; i++) {
            g2d.drawString("" + (dtFrom.getYear() + i * group), leftMargin + 2 + i * (width / n),
                    textTopPosition);
            g2d.drawLine(leftMargin + i * (width / n), 2, leftMargin + i * (width / n),
                    height - settings.graduations.textBottomMargin);
            paintSmallGraduations(g2d, leftMargin + i * (width / n), leftMargin + (i + 1) * (width / n), Months
                    .monthsBetween(dtFrom.plusYears(i * group), dtFrom.plusYears((i + 1) * group)).getMonths());
        }
        return;
    }
    group = 50;
    n = p.getYears() / group;
    if (n < (width / unitSize)) {
        //System.out.println("50 years");
        for (int i = 0; i < n; i++) {
            g2d.drawString("" + (dtFrom.getYear() + i * group), leftMargin + 2 + i * (width / n),
                    textTopPosition);
            g2d.drawLine(leftMargin + i * (width / n), 2, leftMargin + i * (width / n),
                    height - settings.graduations.textBottomMargin);
            paintSmallGraduations(g2d, leftMargin + i * (width / n), leftMargin + (i + 1) * (width / n), Months
                    .monthsBetween(dtFrom.plusYears(i * group), dtFrom.plusYears((i + 1) * group)).getMonths());
        }
        return;
    }
    group = 100;
    n = p.getYears() / group;
    if (n / 100 < (width / unitSize)) {
        //System.out.println("100 years");
        for (int i = 0; i < n; i++) {
            g2d.drawString("" + (dtFrom.getYear() + i * group), leftMargin + 2 + i * (width / n),
                    textTopPosition);
            g2d.drawLine(leftMargin + i * (width / n), 2, leftMargin + i * (width / n),
                    height - settings.graduations.textBottomMargin);
            paintSmallGraduations(g2d, leftMargin + i * (width / n), leftMargin + (i + 1) * (width / n), Months
                    .monthsBetween(dtFrom.plusYears(i * group), dtFrom.plusYears((i + 1) * group)).getMonths());
        }
    }
    return;
}

From source file:org.gravidence.gravifon.util.DateTimeUtils.java

License:Open Source License

/**
 * Converts datetime object to array of UTC datetime fields.<p>
 * Given datetime object is casted to UTC.<p>
 * Resulting array content is as follows: <code>[yyyy,MM,dd,HH,mm,ss,SSS]</code>.
 * //from w  ww  . ja va2  s.  co m
 * @param value datetime object
 * @return array of UTC datetime fields
 */
public static int[] dateTimeToArray(DateTime value) {
    int[] result;

    if (value == null) {
        result = null;
    } else {
        result = new int[7];

        DateTime valueUTC = value.toDateTime(DateTimeZone.UTC);

        result[0] = valueUTC.getYear();
        result[1] = valueUTC.getMonthOfYear();
        result[2] = valueUTC.getDayOfMonth();
        result[3] = valueUTC.getHourOfDay();
        result[4] = valueUTC.getMinuteOfHour();
        result[5] = valueUTC.getSecondOfMinute();
        result[6] = valueUTC.getMillisOfSecond();
    }

    return result;
}

From source file:org.graylog2.inputs.converters.DateConverter.java

License:Open Source License

@Override
public Object convert(String value) {
    if (value == null || value.isEmpty()) {
        return null;
    }/*from  w  ww  . ja v a 2  s . co  m*/

    final DateTime localNow = Tools.iso8601();

    LOG.debug("Trying to parse date <{}> with pattern <{}>.", value, dateFormat);

    return DateTime.parse(value, DateTimeFormat.forPattern(dateFormat).withDefaultYear(localNow.getYear()));
}

From source file:org.graylog2.inputs.random.generators.FakeHttpRawMessageGenerator.java

License:Open Source License

private static Map<String, Object> ingestTimeFields(DateTime ingestTime) {
    return ImmutableMap.<String, Object>builder().put("ingest_time", ingestTime.toString())
            .put("ingest_time_epoch", ingestTime.getMillis())
            .put("ingest_time_second", ingestTime.getSecondOfMinute())
            .put("ingest_time_minute", ingestTime.getMinuteOfHour())
            .put("ingest_time_hour", ingestTime.getHourOfDay())
            .put("ingest_time_day", ingestTime.getDayOfMonth())
            .put("ingest_time_month", ingestTime.getMonthOfYear()).put("ingest_time_year", ingestTime.getYear())
            .build();//from  w w w  . java  2 s  .  c  o  m
}

From source file:org.hortonmachine.gvsig.epanet.core.ChartHelper.java

License:Open Source License

/**
 * Constructor./*from w  w w.  j ava  2  s.  c  om*/
 * 
 * @param valuesMapList the list of ordered maps containing x,y pairs.
 * @param title the title of the chart.
 * @param xLabel the x label.
 * @param yLabel the y label.
 */
@SuppressWarnings("deprecation")
public static void chart(List<LinkedHashMap<DateTime, float[]>> valuesMapList, String title, String xLabel,
        String yLabel) {

    List<TimeSeries> seriesList = new ArrayList<TimeSeries>();
    for (LinkedHashMap<DateTime, float[]> valuesMap : valuesMapList) {
        TimeSeries[] series = new TimeSeries[0];
        Set<Entry<DateTime, float[]>> entrySet = valuesMap.entrySet();
        for (Entry<DateTime, float[]> entry : entrySet) {
            DateTime date = entry.getKey();
            float[] values = entry.getValue();

            if (series.length == 0) {
                series = new TimeSeries[values.length];
                for (int i = 0; i < values.length; i++) {
                    series[i] = new TimeSeries(i + 1);
                }
            }

            for (int i = 0; i < values.length; i++) {
                int sec = date.getSecondOfMinute();
                int min = date.getMinuteOfHour();
                int hour = date.getHourOfDay();
                int day = date.getDayOfMonth();
                int month = date.getMonthOfYear();
                int year = date.getYear();
                series[i].add(new Second(sec, min, hour, day, month, year), values[i]);
            }
        }
        for (TimeSeries timeSeries : series) {
            seriesList.add(timeSeries);
        }
    }

    TimeSeriesCollection lineDataset = new TimeSeriesCollection();
    for (TimeSeries timeSeries : seriesList) {
        lineDataset.addSeries(timeSeries);
    }

    lineDataset.setXPosition(TimePeriodAnchor.MIDDLE);
    lineDataset.setDomainIsPointsInTime(true);

    JFreeChart theChart = ChartFactory.createTimeSeriesChart(null, xLabel, yLabel, lineDataset,
            seriesList.size() > 1, true, true);
    XYPlot thePlot = theChart.getXYPlot();

    ((XYPlot) thePlot).setRenderer(new XYLineAndShapeRenderer());
    XYItemRenderer renderer = ((XYPlot) thePlot).getRenderer();

    DateAxis axis = (DateAxis) ((XYPlot) thePlot).getDomainAxis();
    axis.setDateFormatOverride(dateFormatter);
    // axis.setAutoRangeMinimumSize(5.0);

    ValueAxis rangeAxis = ((XYPlot) thePlot).getRangeAxis();
    rangeAxis.setAutoRangeMinimumSize(5.0);

    for (int i = 0; i < seriesList.size(); i++) {
        ((XYLineAndShapeRenderer) renderer).setSeriesLinesVisible(i, true);
        ((XYLineAndShapeRenderer) renderer).setSeriesShapesVisible(i, true);
    }

    ChartPanel chartPanel = new ChartPanel(theChart, false);
    chartPanel.setPreferredSize(new Dimension(600, 500));
    chartPanel.setHorizontalAxisTrace(false);
    chartPanel.setVerticalAxisTrace(false);

    WindowManager windowManager = ToolsSwingLocator.getWindowManager();
    windowManager.showWindow(chartPanel, title, MODE.WINDOW);
}

From source file:org.iexhub.connectors.PDQQueryManager.java

License:Apache License

/**
 * @param qUQIIN000003UV01/*from w w  w  .j a va2s  .  c  o m*/
 */
private void setCreationTime(QUQIIN000003UV01Type qUQIIN000003UV01) {
    DateTime dt = new DateTime(DateTimeZone.UTC);
    TS creationTime = new TS();
    StringBuilder timeBuilder = new StringBuilder();
    timeBuilder.append(dt.getYear());
    timeBuilder.append((dt.getMonthOfYear() < 10) ? ("0" + dt.getMonthOfYear()) : dt.getMonthOfYear());
    timeBuilder.append((dt.getDayOfMonth() < 10) ? ("0" + dt.getDayOfMonth()) : dt.getDayOfMonth());
    timeBuilder.append((dt.getHourOfDay() < 10) ? ("0" + dt.getHourOfDay()) : dt.getHourOfDay());
    timeBuilder.append((dt.getMinuteOfHour() < 10) ? ("0" + dt.getMinuteOfHour()) : dt.getMinuteOfHour());
    timeBuilder.append((dt.getSecondOfMinute() < 10) ? ("0" + dt.getSecondOfMinute()) : dt.getSecondOfMinute());
    creationTime.setValue(timeBuilder.toString());
    qUQIIN000003UV01.setCreationTime(creationTime);
}

From source file:org.iexhub.connectors.PDQQueryManager.java

License:Apache License

/**
 * @param pRPA_IN201305UV02/*from ww  w. jav a2s  .c  o m*/
 */
private void setCreationTime(PRPAIN201305UV02 pRPA_IN201305UV02) {
    DateTime dt = new DateTime(DateTimeZone.UTC);
    TS creationTime = new TS();
    StringBuilder timeBuilder = new StringBuilder();
    timeBuilder.append(dt.getYear());
    timeBuilder.append((dt.getMonthOfYear() < 10) ? ("0" + dt.getMonthOfYear()) : dt.getMonthOfYear());
    timeBuilder.append((dt.getDayOfMonth() < 10) ? ("0" + dt.getDayOfMonth()) : dt.getDayOfMonth());
    timeBuilder.append((dt.getHourOfDay() < 10) ? ("0" + dt.getHourOfDay()) : dt.getHourOfDay());
    timeBuilder.append((dt.getMinuteOfHour() < 10) ? ("0" + dt.getMinuteOfHour()) : dt.getMinuteOfHour());
    timeBuilder.append((dt.getSecondOfMinute() < 10) ? ("0" + dt.getSecondOfMinute()) : dt.getSecondOfMinute());
    creationTime.setValue(timeBuilder.toString());
    pRPA_IN201305UV02.setCreationTime(creationTime);
}

From source file:org.iexhub.connectors.PDQQueryManager.java

License:Apache License

/**
 * @param livingSubjectBirthTime/*from   w  w w .j a v  a2  s.  c om*/
 * @param dateOfBirth
 * @return
 */
private PRPAMT201306UV02LivingSubjectBirthTime setLivingSubjectBirthTime(
        PRPAMT201306UV02LivingSubjectBirthTime livingSubjectBirthTime, String dateOfBirth) {
    DateTimeFormatter formatter = DateTimeFormat.forPattern("MM/dd/yyyy");
    DateTime dt = formatter.parseDateTime(dateOfBirth);
    StringBuilder timeBuilder = new StringBuilder();
    timeBuilder.append(dt.getYear());
    timeBuilder.append((dt.getMonthOfYear() < 10) ? ("0" + dt.getMonthOfYear()) : dt.getMonthOfYear());
    timeBuilder.append((dt.getDayOfMonth() < 10) ? ("0" + dt.getDayOfMonth()) : dt.getDayOfMonth());

    IVLTS date = new IVLTS();
    date.setValue(timeBuilder.toString());
    livingSubjectBirthTime.getValue().add(date);

    ST birthTimeSemanticsText = new ST();
    birthTimeSemanticsText.getContent().add("LivingSubject.birthTime");
    livingSubjectBirthTime.setSemanticsText(birthTimeSemanticsText);

    return livingSubjectBirthTime;
}

From source file:org.iexhub.connectors.PIXManager.java

License:Apache License

/**
 * @param patientId//from w  ww.  java 2  s .co  m
 * @param domainOID
 * @param populateDataSource
 * @return
 * @throws IOException
 */
public PRPAIN201310UV02 patientRegistryGetIdentifiers(String patientId, String domainOID,
        boolean populateDataSource) throws IOException {
    if ((patientId == null) || (patientId.length() == 0)) {
        throw new PatientIdParamMissingException("PatientId parameter is required");
    }

    PRPAIN201309UV02 pRPA_IN201309UV02 = new PRPAIN201309UV02();

    // ITS version...
    pRPA_IN201309UV02.setITSVersion("XML_1.0");

    // ID...
    II messageId = new II();
    messageId.setRoot(iExHubDomainOid);
    messageId.setExtension(UUID.randomUUID().toString());
    pRPA_IN201309UV02.setId(messageId);

    // Creation time...
    DateTime dt = new DateTime(DateTimeZone.UTC);
    TS creationTime = new TS();
    StringBuilder creationTimeBuilder = new StringBuilder();
    creationTimeBuilder.append(dt.getYear());
    creationTimeBuilder.append((dt.getMonthOfYear() < 10) ? ("0" + dt.getMonthOfYear()) : dt.getMonthOfYear());
    creationTimeBuilder.append((dt.getDayOfMonth() < 10) ? ("0" + dt.getDayOfMonth()) : dt.getDayOfMonth());
    creationTimeBuilder.append((dt.getHourOfDay() < 10) ? ("0" + dt.getHourOfDay()) : dt.getHourOfDay());
    creationTimeBuilder
            .append((dt.getMinuteOfHour() < 10) ? ("0" + dt.getMinuteOfHour()) : dt.getMinuteOfHour());
    creationTimeBuilder
            .append((dt.getSecondOfMinute() < 10) ? ("0" + dt.getSecondOfMinute()) : dt.getSecondOfMinute());
    creationTime.setValue(creationTimeBuilder.toString());
    pRPA_IN201309UV02.setCreationTime(creationTime);

    // Interaction ID...
    II interactionId = new II();
    interactionId.setRoot("2.16.840.1.113883.1.6");
    interactionId.setExtension("PRPA_IN201309UV02");
    pRPA_IN201309UV02.setInteractionId(interactionId);

    // Processing code...
    CS processingCode = new CS();
    processingCode.setCode("P");
    pRPA_IN201309UV02.setProcessingCode(processingCode);

    // Processing mode code...
    CS processingModeCode = new CS();
    processingModeCode.setCode("T");
    pRPA_IN201309UV02.setProcessingModeCode(processingModeCode);

    // Accept ack code...
    CS acceptAckCode = new CS();
    acceptAckCode.setCode("AL");
    pRPA_IN201309UV02.setAcceptAckCode(acceptAckCode);

    // Create receiver...
    MCCIMT000100UV01Receiver receiver = new MCCIMT000100UV01Receiver();
    receiver.setTypeCode(CommunicationFunctionType.RCV);
    MCCIMT000100UV01Device receiverDevice = new MCCIMT000100UV01Device();
    receiverDevice.setClassCode(EntityClassDevice.DEV);
    receiverDevice.setDeterminerCode("INSTANCE");
    II receiverDeviceId = new II();
    receiverDeviceId.setRoot(receiverApplicationName);
    receiverDevice.getId().add(receiverDeviceId);
    receiver.setDevice(receiverDevice);
    pRPA_IN201309UV02.getReceiver().add(receiver);

    // Create sender...
    MCCIMT000100UV01Sender sender = new MCCIMT000100UV01Sender();
    sender.setTypeCode(CommunicationFunctionType.SND);
    MCCIMT000100UV01Device senderDevice = new MCCIMT000100UV01Device();
    senderDevice.setClassCode(EntityClassDevice.DEV);
    senderDevice.setDeterminerCode("INSTANCE");
    II senderDeviceId = new II();
    senderDeviceId.setRoot(PIXManager.iExHubSenderDeviceId);
    senderDevice.getId().add(senderDeviceId);
    sender.setDevice(senderDevice);
    pRPA_IN201309UV02.setSender(sender);

    // Create AuthorOrPerformer...
    QUQIMT021001UV01AuthorOrPerformer authorOrPerformer = new QUQIMT021001UV01AuthorOrPerformer();
    authorOrPerformer.setTypeCode(XParticipationAuthorPerformer.fromValue("AUT"));
    COCTMT090100UV01AssignedPerson assignedPerson = new COCTMT090100UV01AssignedPerson();
    assignedPerson.setClassCode("ASSIGNED");
    II assignedPersonId = new II();
    assignedPersonId.setRoot(PIXManager.iExHubDomainOid);
    assignedPersonId.setExtension("IExHub");
    assignedPerson.getId().add(assignedPersonId);
    authorOrPerformer.setAssignedPerson(
            objectFactory.createQUQIMT021001UV01AuthorOrPerformerAssignedPerson(assignedPerson));

    // Create QueryByParameter...
    PRPAMT201307UV02QueryByParameter queryByParam = new PRPAMT201307UV02QueryByParameter();
    II queryId = new II();
    queryId.setRoot(queryIdOid);
    queryId.setExtension(UUID.randomUUID().toString());
    queryByParam.setQueryId(queryId);
    CS responsePriorityCode = new CS();
    responsePriorityCode.setCode("I");
    queryByParam.setResponsePriorityCode(responsePriorityCode);
    CS statusCode = new CS();
    statusCode.setCode("new");
    queryByParam.setStatusCode(statusCode);

    // Create ParameterList...
    PRPAMT201307UV02ParameterList paramList = new PRPAMT201307UV02ParameterList();

    if (populateDataSource) {
        // Create DataSource...
        PRPAMT201307UV02DataSource dataSource = new PRPAMT201307UV02DataSource();
        II dataSourceId = new II();
        dataSourceId.setRoot(dataSourceOid);
        dataSource.getValue().add(dataSourceId);
        ST dataSourceSemanticsText = new ST();
        dataSourceSemanticsText.getContent().add("DataSource.id");
        dataSource.setSemanticsText(dataSourceSemanticsText);
        paramList.getDataSource().add(dataSource);
    }

    // Create PatientIdentifier...
    PRPAMT201307UV02PatientIdentifier patientIdentifier = new PRPAMT201307UV02PatientIdentifier();
    II patientIdentifierId = new II();
    patientIdentifierId.setRoot(domainOID);
    patientIdentifierId.setExtension(patientId);
    patientIdentifier.getValue().add(patientIdentifierId);
    ST patientIdentifierSemanticsText = new ST();
    patientIdentifierSemanticsText.getContent().add("Patient.Id");
    patientIdentifier.setSemanticsText(patientIdentifierSemanticsText);
    paramList.getPatientIdentifier().add(patientIdentifier);
    queryByParam.setParameterList(paramList);

    // Create ControlActProcess...
    PRPAIN201309UV02QUQIMT021001UV01ControlActProcess controlAct = new PRPAIN201309UV02QUQIMT021001UV01ControlActProcess();
    CD controlActProcessCode = new CD();
    controlActProcessCode.setCode("PRPA_TE201309UV02");
    controlActProcessCode.setCodeSystem("2.16.840.1.113883.1.6");
    controlAct.setCode(controlActProcessCode);
    controlAct.setClassCode(ActClassControlAct.CACT);
    controlAct.setMoodCode(XActMoodIntentEvent.EVN);
    controlAct.getAuthorOrPerformer().add(authorOrPerformer);
    controlAct.setQueryByParameter(objectFactory
            .createPRPAIN201309UV02QUQIMT021001UV01ControlActProcessQueryByParameter(queryByParam));

    pRPA_IN201309UV02.setControlActProcess(controlAct);

    OMElement requestElement = pixManagerStub.toOM(pRPA_IN201309UV02,
            pixManagerStub
                    .optimizeContent(new javax.xml.namespace.QName("urn:hl7-org:v3", "PRPA_IN201301UV02")),
            new javax.xml.namespace.QName("urn:hl7-org:v3", "PRPA_IN201309UV02"));
    String queryText = requestElement.toString();

    UUID logMsgId = null;
    if (logPixRequestMessages) {
        logMsgId = UUID.randomUUID();
        Files.write(Paths.get(logOutputPath + logMsgId.toString() + "_PIXGetIdentifiersRequest.xml"),
                requestElement.toString().getBytes());
    }

    logIti45AuditMsg(queryText, patientId + "^^^&" + domainOID + "&ISO");

    PRPAIN201310UV02 response = pixManagerStub.pIXManager_PRPA_IN201309UV02(pRPA_IN201309UV02);
    if (logPixResponseMessages) {
        OMElement responseElement = pixManagerStub.toOM(response,
                pixManagerStub
                        .optimizeContent(new javax.xml.namespace.QName("urn:hl7-org:v3", "PRPA_IN201310UV02")),
                new javax.xml.namespace.QName("urn:hl7-org:v3", "PRPA_IN201310UV02"));
        Files.write(Paths
                .get(logOutputPath + ((logMsgId == null) ? UUID.randomUUID().toString() : logMsgId.toString())
                        + "_PIXGetIdentifiersResponse.xml"),
                responseElement.toString().getBytes());
    }

    return response;
}

From source file:org.iexhub.connectors.PIXManager.java

License:Apache License

/**
 * @param fhirPatientResource//from   w w  w  . j a v  a2 s  .  c  om
 * @return
 * @throws IOException
 */
public MCCIIN000002UV01 registerPatient(Patient fhirPatientResource) throws IOException {
    String dateOfBirth = (fhirPatientResource.getBirthDate() != null)
            ? fhirPatientResource.getBirthDateElement().getValueAsString()
            : null;
    String gender = (fhirPatientResource.getGender() == null) ? ""
            : (fhirPatientResource.getGender()
                    .compareToIgnoreCase(AdministrativeGenderEnum.MALE.getCode()) == 0)
                            ? "M"
                            : ((fhirPatientResource.getGender()
                                    .compareToIgnoreCase(AdministrativeGenderEnum.FEMALE.getCode()) == 0)
                                            ? "F"
                                            : ((fhirPatientResource.getGender().compareToIgnoreCase(
                                                    AdministrativeGenderEnum.OTHER.getCode()) == 0) ? "UN"
                                                            : ""));

    if ((fhirPatientResource.getName().get(0).getFamilyAsSingleString() == null)
            || (fhirPatientResource.getName().get(0).getFamilyAsSingleString().length() == 0)) {
        throw new FamilyNameParamMissingException("FamilyName parameter is required");
    }

    PRPAIN201301UV02 pRPA_IN201301UV02 = new PRPAIN201301UV02();

    // ITS version...
    pRPA_IN201301UV02.setITSVersion("XML_1.0");

    // ID...
    II messageId = new II();
    messageId.setRoot(iExHubDomainOid);
    messageId.setExtension(UUID.randomUUID().toString());
    pRPA_IN201301UV02.setId(messageId);

    // Creation time...
    DateTime dt = new DateTime(DateTimeZone.UTC);
    TS creationTime = new TS();
    StringBuilder creationTimeBuilder = new StringBuilder();
    creationTimeBuilder.append(dt.getYear());
    creationTimeBuilder.append((dt.getMonthOfYear() < 10) ? ("0" + dt.getMonthOfYear()) : dt.getMonthOfYear());
    creationTimeBuilder.append((dt.getDayOfMonth() < 10) ? ("0" + dt.getDayOfMonth()) : dt.getDayOfMonth());
    creationTimeBuilder.append((dt.getHourOfDay() < 10) ? ("0" + dt.getHourOfDay()) : dt.getHourOfDay());
    creationTimeBuilder
            .append((dt.getMinuteOfHour() < 10) ? ("0" + dt.getMinuteOfHour()) : dt.getMinuteOfHour());
    creationTimeBuilder
            .append((dt.getSecondOfMinute() < 10) ? ("0" + dt.getSecondOfMinute()) : dt.getSecondOfMinute());
    creationTime.setValue(creationTimeBuilder.toString());
    pRPA_IN201301UV02.setCreationTime(creationTime);

    // Interaction ID...
    II interactionId = new II();
    interactionId.setRoot("2.16.840.1.113883.1.6");
    interactionId.setExtension("PRPA_IN201301UV02");
    pRPA_IN201301UV02.setInteractionId(interactionId);

    // Processing code...
    CS processingCode = new CS();
    processingCode.setCode("P");
    pRPA_IN201301UV02.setProcessingCode(processingCode);

    // Processing mode code...
    CS processingModeCode = new CS();
    processingModeCode.setCode("T");
    pRPA_IN201301UV02.setProcessingModeCode(processingModeCode);

    // Accept ack code...
    CS acceptAckCode = new CS();
    acceptAckCode.setCode("AL");
    pRPA_IN201301UV02.setAcceptAckCode(acceptAckCode);

    // Create receiver...
    MCCIMT000100UV01Receiver receiver = new MCCIMT000100UV01Receiver();
    receiver.setTypeCode(CommunicationFunctionType.RCV);
    MCCIMT000100UV01Device receiverDevice = new MCCIMT000100UV01Device();
    receiverDevice.setClassCode(EntityClassDevice.DEV);
    receiverDevice.setDeterminerCode("INSTANCE");
    II receiverDeviceId = new II();
    receiverDeviceId.setRoot(receiverApplicationName);
    receiverDevice.getId().add(receiverDeviceId);
    MCCIMT000100UV01Agent asAgent = new MCCIMT000100UV01Agent();
    asAgent.getClassCode().add("AGNT");
    MCCIMT000100UV01Organization representedOrganization = new MCCIMT000100UV01Organization();
    representedOrganization.setDeterminerCode("INSTANCE");
    representedOrganization.setClassCode("ORG");
    II representedOrganizationId = new II();
    representedOrganizationId.setRoot(PIXManager.receiverApplicationRepresentedOrganization);
    representedOrganization.getId().add(representedOrganizationId);
    asAgent.setRepresentedOrganization(
            objectFactory.createMCCIMT000100UV01AgentRepresentedOrganization(representedOrganization));
    receiverDevice.setAsAgent(objectFactory.createMCCIMT000100UV01DeviceAsAgent(asAgent));
    receiver.setDevice(receiverDevice);
    pRPA_IN201301UV02.getReceiver().add(receiver);

    // Create sender...
    MCCIMT000100UV01Sender sender = new MCCIMT000100UV01Sender();
    sender.setTypeCode(CommunicationFunctionType.SND);
    MCCIMT000100UV01Device senderDevice = new MCCIMT000100UV01Device();
    senderDevice.setClassCode(EntityClassDevice.DEV);
    senderDevice.setDeterminerCode("INSTANCE");
    II senderDeviceId = new II();
    senderDeviceId.setRoot(PIXManager.iExHubSenderDeviceId);
    senderDevice.getId().add(senderDeviceId);
    MCCIMT000100UV01Agent senderAsAgent = new MCCIMT000100UV01Agent();
    senderAsAgent.getClassCode().add("AGNT");
    MCCIMT000100UV01Organization senderRepresentedOrganization = new MCCIMT000100UV01Organization();
    senderRepresentedOrganization.setDeterminerCode("INSTANCE");
    senderRepresentedOrganization.setClassCode("ORG");
    II senderRepresentedOrganizationId = new II();
    senderRepresentedOrganizationId.setRoot(PIXManager.iExHubDomainOid);
    senderRepresentedOrganization.getId().add(senderRepresentedOrganizationId);
    senderAsAgent.setRepresentedOrganization(
            objectFactory.createMCCIMT000100UV01AgentRepresentedOrganization(senderRepresentedOrganization));
    senderDevice.setAsAgent(objectFactory.createMCCIMT000100UV01DeviceAsAgent(senderAsAgent));
    sender.setDevice(senderDevice);
    pRPA_IN201301UV02.setSender(sender);

    PRPAIN201301UV02MFMIMT700701UV01Subject1 subject = new PRPAIN201301UV02MFMIMT700701UV01Subject1();

    // Create Registration Event...
    PRPAIN201301UV02MFMIMT700701UV01RegistrationEvent registrationEvent = new PRPAIN201301UV02MFMIMT700701UV01RegistrationEvent();
    registrationEvent.getClassCode().add("REG");
    registrationEvent.getMoodCode().add("EVN");
    registrationEvent.getNullFlavor().add("NA");
    CS statusCode = new CS();
    statusCode.setCode("active");
    registrationEvent.setStatusCode(statusCode);
    PRPAIN201301UV02MFMIMT700701UV01Subject2 subject1 = new PRPAIN201301UV02MFMIMT700701UV01Subject2();
    subject1.setTypeCode(ParticipationTargetSubject.SBJ);

    // Create Patient...
    PRPAMT201301UV02Patient patient = new PRPAMT201301UV02Patient();
    patient.getClassCode().add("PAT");
    CS patientStatusCode = new CS();
    patientStatusCode.setCode("active");
    patient.setStatusCode(patientStatusCode);

    // Create PatientPerson...
    PRPAMT201301UV02Person patientPerson = new PRPAMT201301UV02Person();

    // Other ID's specified...
    II constructedPatientId = null;
    if (fhirPatientResource.getIdentifier() != null) {
        for (IdentifierDt fhirId : fhirPatientResource.getIdentifier()) {
            if ((fhirId.getUse() != null) && (fhirId.getUse().equals(IdentifierUseEnum.OFFICIAL.getCode()))) {
                // This is the official identifier
                constructedPatientId = new II();
                if ((fhirId.getSystem() == null) || (fhirId.getSystem().length() == 0)) {
                    throw new PatientIdParamMissingException("Patient ID system missing");
                }
                constructedPatientId.setRoot((fhirId.getSystem().toLowerCase().startsWith(uriPrefix))
                        ? fhirId.getSystem().replace(uriPrefix, "")
                        : fhirId.getSystem());
                constructedPatientId.setExtension(fhirId.getValue());
                constructedPatientId.setAssigningAuthorityName(PIXManager.iExHubAssigningAuthority);
                patient.getId().add(constructedPatientId);
            } else {
                PRPAMT201301UV02OtherIDs asOtherId = new PRPAMT201301UV02OtherIDs();
                asOtherId.getClassCode().add("SD");
                II otherId = new II();
                otherId.setRoot(fhirId.getSystemElement().getValueAsString());
                otherId.setExtension(fhirId.getValue());
                asOtherId.getId().add(otherId);

                COCTMT150002UV01Organization scopingOrg = new COCTMT150002UV01Organization();
                scopingOrg.setClassCode("ORG");
                scopingOrg.setDeterminerCode("INSTANCE");
                II scopingOrgId = new II();
                scopingOrgId.setRoot(fhirId.getSystemElement().getValueAsString());
                scopingOrg.getId().add(scopingOrgId);
                asOtherId.setScopingOrganization(scopingOrg);

                patientPerson.getAsOtherIDs().add(asOtherId);
            }
        }
    }

    patientPerson.getName().add(populatePersonName(fhirPatientResource.getName().get(0)));

    if ((gender != null) && (gender.length() > 0)) {
        CE adminGenderCode = new CE();
        adminGenderCode.setCode(gender);
        adminGenderCode.setCodeSystem("2.16.840.1.113883.5.1");
        patientPerson.setAdministrativeGenderCode(adminGenderCode);
    } else {
        CE adminGenderCode = new CE();
        adminGenderCode.getNullFlavor().add("UNK");
        adminGenderCode.setCodeSystem("2.16.840.1.113883.5.1");
        patientPerson.setAdministrativeGenderCode(adminGenderCode);
    }

    patientPerson.getClassCode().add("PSN");
    patientPerson.setDeterminerCode("INSTANCE");

    if ((fhirPatientResource.getTelecom() != null) && (!fhirPatientResource.getTelecom().isEmpty())) {
        for (ContactPointDt contactPoint : fhirPatientResource.getTelecom()) {
            // Add if telecom value is present only
            if (contactPoint.getValue() != null && !contactPoint.getValue().isEmpty()) {
                TEL contactPartyTelecom = new TEL();
                contactPartyTelecom.setValue(contactPoint.getValue());
                patientPerson.getTelecom().add(contactPartyTelecom);
            }
        }
    }

    if (dateOfBirth != null) {
        // Try several formats for date parsing...
        DateTimeFormatter formatter = null;
        DateTime birthDateTime = null;
        try {
            formatter = DateTimeFormat.forPattern("MM/dd/yyyy");
            birthDateTime = formatter.parseDateTime(dateOfBirth);
        } catch (Exception e) {
            try {
                formatter = DateTimeFormat.forPattern("yyyy-MM-dd");
                birthDateTime = formatter.parseDateTime(dateOfBirth);
            } catch (Exception e2) {
                throw e2;
            }
        }

        StringBuilder birthDateBuilder = new StringBuilder();
        birthDateBuilder.append(birthDateTime.getYear());
        birthDateBuilder.append((birthDateTime.getMonthOfYear() < 10) ? ("0" + birthDateTime.getMonthOfYear())
                : birthDateTime.getMonthOfYear());
        birthDateBuilder.append((birthDateTime.getDayOfMonth() < 10) ? ("0" + birthDateTime.getDayOfMonth())
                : birthDateTime.getDayOfMonth());
        TS birthTime = new TS();
        birthTime.setValue(birthDateBuilder.toString());
        patientPerson.setBirthTime(birthTime);
    }

    JAXBElement<PRPAMT201301UV02Person> patientPersonElement = objectFactory
            .createPRPAMT201301UV02PatientPatientPerson(patientPerson);
    patient.setPatientPerson(patientPersonElement);

    // Create ProviderOrganization - set IExHub as provider if no careProvider specified in FHIR patient resource parameter...
    COCTMT150003UV03Organization providerOrganization = new COCTMT150003UV03Organization();
    providerOrganization.setDeterminerCode("INSTANCE");
    providerOrganization.setClassCode("ORG");

    if ((fhirPatientResource.getCareProvider() != null) && (!fhirPatientResource.getCareProvider().isEmpty())) {
        for (ResourceReferenceDt resourceRef : fhirPatientResource.getCareProvider()) {
            if (resourceRef.getResource().getClass() == Organization.class) {
                Organization careProvider = (Organization) resourceRef.getResource();

                // Provider ID
                II providerId = new II();
                providerId.setRoot((careProvider.getId().getValueAsString().startsWith("#"))
                        ? careProvider.getId().getValueAsString().substring(1)
                        : careProvider.getId().getValueAsString());
                providerOrganization.getId().add(providerId);

                // Provider name
                if ((careProvider.getName() != null) && (careProvider.getName().length() > 0)) {
                    ON providerName = new ON();
                    providerName.getContent().add(careProvider.getName());
                    providerOrganization.getName().add(providerName);
                }

                // Create Contact Party if FHIR organization contacts are present...
                for (Contact fhirOrganizationContact : careProvider.getContact()) {
                    COCTMT150003UV03ContactParty contactParty = new COCTMT150003UV03ContactParty();
                    contactParty.setClassCode(RoleClassContact.CON);

                    // Contact telecom(s)
                    if ((fhirOrganizationContact.getTelecom() != null)
                            && (!fhirOrganizationContact.getTelecom().isEmpty())) {
                        for (ContactPointDt contactPoint : fhirOrganizationContact.getTelecom()) {
                            TEL contactPartyTelecom = new TEL();
                            contactPartyTelecom.setValue(contactPoint.getValue());
                            contactParty.getTelecom().add(contactPartyTelecom);
                        }
                    }

                    // Contact name
                    if ((fhirOrganizationContact.getName() != null)
                            && (!fhirOrganizationContact.getName().isEmpty())) {
                        COCTMT150003UV03Person contactPerson = new COCTMT150003UV03Person();
                        contactPerson.getName().add(populatePersonName(fhirOrganizationContact.getName()));
                        contactParty.setContactPerson(
                                objectFactory.createCOCTMT150003UV03ContactPartyContactPerson(contactPerson));
                    }

                    // Contact address(es)
                    if ((careProvider.getAddress() != null) && (!careProvider.getAddress().isEmpty())) {
                        for (AddressDt fhirAddr : careProvider.getAddress()) {
                            contactParty.getAddr().add(populatePatientAddress(fhirAddr));
                        }
                    }

                    providerOrganization.getContactParty().add(contactParty);
                }
            }
        }
    } else {
        II providerId = new II();
        providerId.setRoot(providerOrganizationOid);
        providerOrganization.getId().add(providerId);
        ON providerName = new ON();
        providerName.getContent().add(providerOrganizationName);
        providerOrganization.getName().add(providerName);
        COCTMT150003UV03ContactParty contactParty = new COCTMT150003UV03ContactParty();
        contactParty.setClassCode(RoleClassContact.CON);
        TEL contactPartyTelecom = new TEL();
        contactPartyTelecom.setValue(providerOrganizationContactTelecom);
        contactParty.getTelecom().add(contactPartyTelecom);
        providerOrganization.getContactParty().add(contactParty);
    }

    patient.setProviderOrganization(providerOrganization);

    subject1.setPatient(patient);

    registrationEvent.setSubject1(subject1);

    // Create Custodian info...
    MFMIMT700701UV01Custodian custodian = new MFMIMT700701UV01Custodian();
    custodian.getTypeCode().add("CST");
    COCTMT090003UV01AssignedEntity assignedEntity = new COCTMT090003UV01AssignedEntity();
    assignedEntity.setClassCode("ASSIGNED");
    II assignedEntityId = new II();
    assignedEntityId.setRoot(iExHubDomainOid);
    assignedEntity.getId().add(assignedEntityId);
    COCTMT090003UV01Organization assignedOrganization = new COCTMT090003UV01Organization();
    assignedOrganization.setDeterminerCode("INSTANCE");
    assignedOrganization.setClassCode("ORG");
    EN organizationName = new EN();
    organizationName.getContent().add("IHE Portal");
    assignedOrganization.getName().add(organizationName);
    assignedEntity.setAssignedOrganization(
            objectFactory.createCOCTMT090003UV01AssignedEntityAssignedOrganization(assignedOrganization));
    custodian.setAssignedEntity(assignedEntity);
    registrationEvent.setCustodian(custodian);

    // Set Subject info...
    subject.getTypeCode().add("SUBJ");

    subject.setRegistrationEvent(registrationEvent);

    PRPAIN201301UV02MFMIMT700701UV01ControlActProcess controlAct = new PRPAIN201301UV02MFMIMT700701UV01ControlActProcess();
    CD controlActProcessCode = new CD();
    controlActProcessCode.setCode("PRPA_TE201301UV02");
    controlActProcessCode.setCodeSystem("2.16.840.1.113883.1.6");
    controlAct.setCode(controlActProcessCode);
    controlAct.setClassCode(ActClassControlAct.CACT);
    controlAct.setMoodCode(XActMoodIntentEvent.EVN);
    controlAct.getSubject().add(subject);

    pRPA_IN201301UV02.setControlActProcess(controlAct);

    logIti44AuditMsg(constructedPatientId.getExtension() + "^^^&" + constructedPatientId.getRoot() + "&"
            + PIXManager.iExHubAssigningAuthority);

    UUID logMsgId = null;
    if (logPixRequestMessages) {
        logMsgId = UUID.randomUUID();
        OMElement requestElement = pixManagerStub.toOM(pRPA_IN201301UV02,
                pixManagerStub
                        .optimizeContent(new javax.xml.namespace.QName("urn:hl7-org:v3", "PRPA_IN201301UV02")),
                new javax.xml.namespace.QName("urn:hl7-org:v3", "PRPA_IN201301UV02"));
        Files.write(Paths.get(logOutputPath + logMsgId.toString() + "_PIXRegisterPatientRequest.xml"),
                requestElement.toString().getBytes());
    }

    MCCIIN000002UV01 response = pixManagerStub.pIXManager_PRPA_IN201301UV02(pRPA_IN201301UV02);
    if (logPixResponseMessages) {
        OMElement responseElement = pixManagerStub.toOM(response,
                pixManagerStub
                        .optimizeContent(new javax.xml.namespace.QName("urn:hl7-org:v3", "MCCI_IN000002UV01")),
                new javax.xml.namespace.QName("urn:hl7-org:v3", "MCCI_IN000002UV01"));
        Files.write(Paths
                .get(logOutputPath + ((logMsgId == null) ? UUID.randomUUID().toString() : logMsgId.toString())
                        + "_PIXRegisterPatientResponse.xml"),
                responseElement.toString().getBytes());
    }

    return response;
}