Example usage for java.lang Integer doubleValue

List of usage examples for java.lang Integer doubleValue

Introduction

In this page you can find the example usage for java.lang Integer doubleValue.

Prototype

public double doubleValue() 

Source Link

Document

Returns the value of this Integer as a double after a widening primitive conversion.

Usage

From source file:com.jkoolcloud.jesl.simulator.TNT4JSimulatorParserHandler.java

private Property processPropertyValue(String name, String type, String value, String valType)
        throws SAXParseException {
    Object propValue = value;/*from  w  w w. jav a2  s  . co m*/

    if ("INTEGER".equalsIgnoreCase(type)) {
        Integer num = Integer.parseInt(generateFromRange(type, value));
        propValue = (int) TNT4JSimulator.varyValue(num.intValue());
    } else if ("LONG".equalsIgnoreCase(type)) {
        Long num = Long.parseLong(generateFromRange(type, value));
        propValue = (long) TNT4JSimulator.varyValue(num.longValue());
    } else if ("DECIMAL".equalsIgnoreCase(type)) {
        Double num = Double.parseDouble(generateFromRange(type, value));
        propValue = TNT4JSimulator.varyValue(num.doubleValue());
    } else if ("BOOLEAN".equalsIgnoreCase(type)) {
        if (StringUtils.isEmpty(valType))
            valType = "boolean";
        propValue = Boolean.parseBoolean(value);
    } else if ("TIMESTAMP".equalsIgnoreCase(type)) {
        try {
            try {
                propValue = new UsecTimestamp((long) TNT4JSimulator.varyValue(Long.parseLong(value)));
            } catch (NumberFormatException e) {
                propValue = new UsecTimestamp(value, "yyyy-MM-dd HH:mm:ss.SSSSSS", (String) null);
            }
        } catch (Exception e) {
            throw new SAXParseException("Failed parsing timestamp", saxLocator, e);
        }
        if (StringUtils.isEmpty(valType))
            valType = ValueTypes.VALUE_TYPE_TIMESTAMP;
    } else if ("STRING".equalsIgnoreCase(type)) {
        propValue = value.toString();
    } else if (!StringUtils.isEmpty(type)) {
        throw new SAXParseException("<" + SIM_XML_PROP + ">: invalid type: " + type, saxLocator);
    }
    return new Property(name, propValue, valType);
}

From source file:com.nridge.core.base.field.data.DataFieldAnalyzer.java

/**
 * Returns a data bag of fields describing the scanned value data.
 * The bag will contain the field name, derived type, populated
 * count, null count and a sample count of values (with overall
 * percentages) that repeated most often.
 *
 * @param aSampleCount Identifies the top count of values.
 *
 * @return Data bag of analysis details.
 *//*from   ww w. java 2 s . co  m*/
public DataBag getDetails(int aSampleCount) {
    Date dateValue;
    Integer valueCount;
    String fieldName, fieldTitle, dataValue;
    Double valuePercentage, minValue, maxValue;

    Field.Type fieldType = getType();
    int uniqueValues = mValueCount.size();
    DataBag detailsBag = new DataBag(mName);
    detailsBag.add(new DataTextField("name", "Name", mName));
    detailsBag.add(new DataTextField("type", "Type", Field.typeToString(fieldType)));
    detailsBag.add(new DataIntegerField("total_count", "Total Count", mTotalValues));
    detailsBag.add(new DataIntegerField("null_count", "Null Count", mNullCount));
    detailsBag.add(new DataIntegerField("unique_count", "Unique Count", uniqueValues));

    // Create a table from the values map and use sorting to get our top sample size.

    DataTable valuesTable = new DataTable(mName);
    valuesTable.add(new DataTextField("value", "Value"));
    valuesTable.add(new DataIntegerField("count", "Count"));
    valuesTable.add(new DataDoubleField("percentage", "Percentage"));

    minValue = Double.MAX_VALUE;
    maxValue = Double.MIN_VALUE;
    for (Map.Entry<String, Integer> entry : mValueCount.entrySet()) {
        valuesTable.newRow();
        dataValue = entry.getKey();
        valueCount = entry.getValue();
        if (mTotalValues == 0)
            valuePercentage = 0.0;
        else
            valuePercentage = valueCount.doubleValue() / mTotalValues * 100.0;

        valuesTable.newRow();
        valuesTable.setValueByName("value", dataValue);
        valuesTable.setValueByName("count", valueCount);
        valuesTable.setValueByName("percentage", String.format("%.2f", valuePercentage));
        if (Field.isText(fieldType)) {
            minValue = Math.min(minValue, dataValue.length());
            maxValue = Math.max(maxValue, dataValue.length());
        } else if (Field.isNumber(fieldType)) {
            minValue = Math.min(minValue, Double.parseDouble(dataValue));
            maxValue = Math.max(maxValue, Double.parseDouble(dataValue));
        } else if (Field.isDateOrTime(fieldType)) {

            // While we are decomposing the date to milliseconds of time, you can do a Date(milliseconds)
            // reconstruction.

            dateValue = DatUtl.detectCreateDate(dataValue);
            if (dataValue != null) {
                minValue = Math.min(minValue, dateValue.getTime());
                maxValue = Math.max(maxValue, dateValue.getTime());
            }
        }
        valuesTable.addRow();
    }
    valuesTable.sortByColumn("count", Field.Order.DESCENDING);

    if (Field.isBoolean(fieldType)) {
        detailsBag.add(new DataTextField("minimum", "Minimum", StrUtl.STRING_FALSE));
        detailsBag.add(new DataTextField("maximum", "Maximum", StrUtl.STRING_TRUE));
    } else if (Field.isDateOrTime(fieldType)) {
        detailsBag.add(new DataTextField("minimum", "Minimum",
                Field.dateValueFormatted(new Date(minValue.longValue()), Field.FORMAT_DATETIME_DEFAULT)));
        detailsBag.add(new DataTextField("maximum", "Maximum",
                Field.dateValueFormatted(new Date(maxValue.longValue()), Field.FORMAT_DATETIME_DEFAULT)));
    } else {
        detailsBag.add(new DataTextField("minimum", "Minimum", String.format("%.2f", minValue)));
        detailsBag.add(new DataTextField("maximum", "Maximum", String.format("%.2f", maxValue)));
    }

    // Create columns for the top sample sizes (value, matching count, matching percentage)

    int adjCount = Math.min(aSampleCount, valuesTable.rowCount());
    for (int row = 0; row < adjCount; row++) {
        fieldName = String.format("value_%02d", row + 1);
        fieldTitle = String.format("Value %02d", row + 1);
        dataValue = valuesTable.getValueByName(row, "value");
        detailsBag.add(new DataTextField(fieldName, fieldTitle, dataValue));
        fieldName = String.format("count_%02d", row + 1);
        fieldTitle = String.format("Count %02d", row + 1);
        detailsBag.add(new DataIntegerField(fieldName, fieldTitle, valuesTable.getValueByName(row, "count")));
        fieldName = String.format("percent_%02d", row + 1);
        fieldTitle = String.format("Percent %02d", row + 1);
        detailsBag
                .add(new DataDoubleField(fieldName, fieldTitle, valuesTable.getValueByName(row, "percentage")));
    }

    return detailsBag;
}

From source file:controllers.core.PortfolioEntryDeliveryController.java

/**
 * Display the iterations of a portfolio entry.
 * /*  w  ww  . java2 s.  com*/
 * @param id
 *            the portfolio entry id
 */
@With(CheckPortfolioEntryExists.class)
@Dynamic(IMafConstants.PORTFOLIO_ENTRY_DETAILS_DYNAMIC_PERMISSION)
public Result iterations(Long id) {

    // get the portfolio entry
    PortfolioEntry portfolioEntry = PortfolioEntryDao.getPEById(id);

    try {

        // get the filter config
        String uid = getUserSessionManagerPlugin().getUserSessionId(ctx());
        FilterConfig<IterationListView> filterConfig = this.getTableProvider().get().iteration.filterConfig
                .getCurrent(uid, request());

        // get the table
        Pair<Table<IterationListView>, Pagination<Iteration>> t = getIterationsTable(id, filterConfig);

        // burndown chart
        ExpressionList<Iteration> expressionList = filterConfig
                .updateWithSearchExpression(IterationDAO.getIterationAllAsExprByPE(id));
        OrderBy<Iteration> orderBy = expressionList.orderBy();
        orderBy.asc("endDate");
        List<Iteration> iterations = expressionList.findList();

        RangeLine rangeLine = null;

        if (iterations != null && iterations.size() > 0) {

            rangeLine = new RangeLine();

            // the first value name is start
            rangeLine.addValueName(Msg.get("core.portfolio_entry_delivery.iterations.burndown.start.label"));

            // compute the total story points, add the ranges and the value
            // names
            Integer totalStoryPoints = 0;
            for (Iteration iteration : iterations) {
                if (iteration.storyPoints != null && iteration.endDate != null) {
                    rangeLine.addRange(iteration.getName());
                    rangeLine.addValueName(
                            Msg.get("core.portfolio_entry_delivery.iterations.burndown.end_of_iteration.label",
                                    iteration.getName()));
                    totalStoryPoints += iteration.storyPoints;
                }
            }

            // add the elems
            RangeLine.Elem plannedElem = new RangeLine.Elem(
                    Msg.get("core.portfolio_entry_delivery.iterations.burndown.planned.label"));
            RangeLine.Elem realElem = new RangeLine.Elem(
                    Msg.get("core.portfolio_entry_delivery.iterations.burndown.real.label"));
            rangeLine.addElem(plannedElem);
            rangeLine.addElem(realElem);

            plannedElem.addValue(totalStoryPoints.doubleValue());
            realElem.addValue(totalStoryPoints.doubleValue());

            Integer currentPlannedStoryPoints = totalStoryPoints;
            Integer currentRealStoryPoints = totalStoryPoints;
            for (Iteration iteration : iterations) {
                if (iteration.storyPoints != null && iteration.endDate != null) {

                    currentPlannedStoryPoints -= iteration.storyPoints;

                    plannedElem.addValue(currentPlannedStoryPoints.doubleValue());

                    if (iteration.isClosed) {
                        // sum of closed story points of requirements
                        currentRealStoryPoints -= RequirementDAO
                                .getStoryPointClosedAsCountByIteration(iteration.id);
                        realElem.addValue(currentRealStoryPoints.doubleValue());
                    } else {
                        currentRealStoryPoints -= iteration.storyPoints;
                        realElem.addValue(null);
                    }

                }
            }

        }

        return ok(views.html.core.portfolioentrydelivery.iterations.render(portfolioEntry, t.getLeft(),
                t.getRight(), filterConfig, rangeLine));

    } catch (Exception e) {

        return ControllersUtils.logAndReturnUnexpectedError(e, log, getConfiguration(), getMessagesPlugin());

    }

}

From source file:no.imr.stox.datastorage.DATRASDataStorage.java

public static void asTable(List<MissionBO> list, Integer level, Writer wr) {
    switch (level) {
    case 1:/*w w  w .  j  av  a  2s. c o m*/
        ImrIO.write(wr, ExportUtil.carrageReturnLineFeed(ExportUtil.csv("RecordType", "Quarter", "Country",
                "Ship", "Gear", "SweepLngt", "GearExp", "DoorType", "StNo", "HaulNo", "Year", "Month", "Day",
                "TimeShot", "Stratum", "HaulDur", "DayNight", "ShootLat", "ShootLong", "HaulLat", "HaulLong",
                "StatRec", "Depth", "HaulVal", "HydroStNo", "StdSpecRecCode", "BycSpecRecCode", "DataType",
                "Netopening", "Rigging", "Tickler", "Distance", "Warpingt", "Warpdia", "WarpDen", "DoorSurface",
                "DoorWgt", "DoorSpread", "WingSpread", "Buoyancy", "KiteDim", "WgtGroundRope", "TowDir",
                "GroundSpeed", "SpeedWater", "SurCurDir", "SurCurSpeed", "BotCurDir", "BotCurSpeed", "WindDir",
                "WindSpeed", "SwellDir", "SwellHeight", "SurTemp", "BotTemp", "SurSal", "BotSal", "ThermoCline",
                "ThClineDepth")));
        for (MissionBO ms : list) {
            for (FishstationBO fs : ms.getFishstationBOs()) {
                Integer sweep = getGOVSweepByEquipment(fs.bo().getGear());
                if (sweep == null) { // Sweep filter
                    // other gears have sweep == null...
                    continue;
                }
                // Filter other station types that blank (vanlig)
                if (!(fs.bo().getStationtype() == null || fs.bo().getStationtype().equals(""))) {
                    continue;
                }
                if (fs.bo().getStationstartdate() == null) {
                    continue;
                }
                Integer year = IMRdate.getYear(fs.bo().getStationstartdate());
                Integer month = IMRdate.getMonth(fs.bo().getStationstartdate());
                Integer day = IMRdate.getDayOfMonth(fs.bo().getStationstartdate());
                Integer quarter = (month - 1) / 3 + 1;
                // Invalid also less/more than 5..90 min. og uten for 62 grader, evt kvartal.
                String haulVal = (fs.bo().getGearcondition() == null || fs.bo().getGearcondition().equals("1")
                        || fs.bo().getGearcondition().equals("2"))
                        && (fs.bo().getSamplequality() == null || fs.bo().getSamplequality().equals("0")
                                || fs.bo().getSamplequality().equals("1")) ? "V" : "I";

                ImrIO.write(wr, ExportUtil.carrageReturnLineFeed(ExportUtil.csv(// RecordType
                        "HH",
                        // Quarter
                        quarter,
                        // Country
                        getTSCountryByIOC(fs.bo().getNation()), //TODO reference list
                        // Ship
                        getTSShipByPlatform(fs.bo().getCatchplatform()), // TODO reference list
                        // Gear
                        "GOV", // TODO reference list
                        // SweepLngth
                        sweep,
                        // GearExp
                        getGearExp(sweep, fs.getMission().bo().getStartyear(), fs.bo().getSerialnumber(),
                                fs.bo().getBottomdepthstart()), // TODO: S=Single, D=Double, -9 not given
                        // DoorType
                        "P", fs.bo().getSerialnumber(),
                        // HaulNo
                        fs.bo().getStation(),
                        // Year
                        year,
                        // Month
                        month,
                        // Day
                        day,
                        // TimeShot
                        StringUtils.leftPad(IMRdate.formatTime(fs.bo().getStationstarttime(), "HHmm"), 4, '0'),
                        // Stratum
                        -9,
                        // HaulDur
                        Math.round(IMRdate.minutesDiffD(
                                IMRdate.encodeLocalDateTime(fs.bo().getStationstartdate(),
                                        fs.bo().getStationstarttime()),
                                IMRdate.encodeLocalDateTime(fs.bo().getStationstopdate(),
                                        fs.bo().getStationstoptime()))),
                        // DayNight
                        // 15 minutes before  official sunrise, 15 min after official sunset.
                        IMRdate.isDayTime(
                                IMRdate.encodeLocalDateTime(fs.bo().getStationstartdate(),
                                        fs.bo().getStationstarttime()),
                                fs.bo().getLatitudestart(), fs.bo().getLongitudestart()) ? "D" : "N",
                        // ShootLat
                        unkD(fs.bo().getLatitudestart(), "0.0000"),
                        // ShootLong
                        unkD(fs.bo().getLongitudestart(), "0.0000"),
                        // HaulLat
                        unkD(fs.bo().getLatitudeend(), "0.0000"),
                        // HaulLong
                        unkD(fs.bo().getLongitudeend(), "0.0000"),
                        // StatRec
                        AreaUnits.getFDOmrLokFromPos(fs.bo().getLatitudestart(), fs.bo().getLongitudestart()),
                        // Depth
                        Math.round(fs.bo().getBottomdepthstart()),
                        //HaulVal
                        haulVal,
                        // TODO stasjon : match p logg mot toktlogger 5 nm, tid.
                        // , DoorSpread, fra Biotic, Warplngth=wire, TowDir
                        // HydroStNo 
                        -9,
                        // StdSpecRecCode
                        1,
                        // BycSpecRecCode
                        1,
                        // DataType
                        "R", unkD(fs.bo().getVerticaltrawlopening(), "0.0"),
                        // Rigging
                        -9,
                        // Tickler
                        -9,
                        // Distance
                        unkO(fs.bo().getDistance() != null ? fs.bo().getDistance() * 1852 : null),
                        // Warplngt
                        unkO(fs.bo().getWirelength()),
                        //Warpdia
                        -9,
                        //Warpden
                        -9,
                        //Doorsurface
                        4.46,
                        //DoorWgt
                        1075,
                        //DoorSpread
                        unkD(fs.bo().getTrawldoorspread(), "0.0"),
                        //WingSpread
                        -9,
                        //Buoyancy
                        -9,
                        //KiteDim
                        0.85,
                        //WgtGroundRope
                        -9,
                        // Tow dir
                        unkO(fs.bo().getDirection() != null ? Math.round(fs.bo().getDirection()) : null),
                        // Ground speed (speed of trawl over ground)
                        unkD((fs.bo().getVesselspeed() == null ? fs.bo().getGearflow()
                                : fs.bo().getVesselspeed()), "0.0"),
                        //Speed water
                        -9,
                        //SurCurDir
                        -9,
                        //SurCurSpeed
                        -9,
                        //BotCurDir
                        -9,
                        //BotCurSpeed
                        -9,
                        //WinDir
                        -9,
                        //WindSpeed
                        -9,
                        //SwellDir
                        -9,
                        //SwellHeight
                        -9,
                        //SurTemp
                        -9,
                        //BotTemp
                        -9,
                        //SurSal
                        -9,
                        //BotSal
                        -9,
                        //ThermoCline
                        -9,
                        //ThClineDepth
                        -9)));
            }
        }
        break;

    case 2:
        ImrIO.write(wr,
                ExportUtil.carrageReturnLineFeed(ExportUtil.csv("RecordType", "Quarter", "Country", "Ship",
                        "Gear", "SweepLngt", "GearExp", "DoorType", "StNo", "HaulNo", "Year", "SpecCodeType",
                        "SpecCode", "SpecVal", "Sex", "TotalNo", "CatIdentifier", "NoMeas", "SubFactor",
                        "SubWgt", "CatCatchWgt", "LngtCode", "LngtClass", "HLNoAtLngt")));
        for (MissionBO ms : list) {
            for (FishstationBO fs : ms.getFishstationBOs()) {
                Integer sweep = getGOVSweepByEquipment(fs.bo().getGear());
                if (sweep == null) { // Sweep filter
                    continue;
                }
                if (fs.bo().getStationstartdate() == null) {
                    continue;
                }
                Integer year = IMRdate.getYear(fs.bo().getStationstartdate());
                Integer month = IMRdate.getMonth(fs.bo().getStationstartdate());
                Integer quarter = (int) Math.ceil(month / 3.0);
                String haulVal = (fs.bo().getGearcondition() == null || fs.bo().getGearcondition().equals("1")
                        || fs.bo().getGearcondition().equals("2"))
                        && (fs.bo().getSamplequality() == null || fs.bo().getSamplequality().equals("0")
                                || fs.bo().getSamplequality().equals("1")) ? "V" : "I";

                for (CatchSampleBO s : fs.getCatchSampleBOs()) {
                    // IU: Sometimes we get null aphia
                    if (s.bo().getAphia() == null) {
                        continue;
                    }

                    // IU: Use aphia for comparison and add crustacean boolean
                    boolean isHerringOrSprat = s.bo().getAphia().equals("126417")
                            || s.bo().getAphia().equals("126425");

                    List<String> crustList = Arrays.asList("107275", "107276", "107369", "107253", "107703",
                            "107704", "107350", "107254", "107205", "140712", "140687", "140658");
                    boolean isCrustacean = crustList.contains(s.bo().getAphia());

                    //Double raiseFac = 60.0 / IMRdate.minutesDiffD(IMRdate.encodeLocalDateTime(fs.bo().getStationstartdate(), fs.bo().getStationstarttime()), IMRdate.encodeLocalDateTime(fs.bo().getStationstopdate(), fs.bo().getStationstoptime()));
                    MatrixBO hlNoAtLngth = new MatrixBO();
                    MatrixBO lsCountTot = new MatrixBO();

                    //Double sampleFac = s.getCatchcount().doubleValue() / s.getLengthsamplecount();
                    //if (s.getIndividualweight() == null || s.getCatchcount() == null) {
                    //    continue;
                    //}
                    Integer specVal = haulVal.equals("I") ? 0
                            : s.bo().getCatchcount() != null && s.bo().getLengthsamplecount() != null
                                    && s.bo().getCatchweight() != null
                                            ? 1
                                            : s.bo().getCatchcount() != null
                                                    && s.bo().getLengthsamplecount() == null
                                                    && s.bo().getCatchweight() == null
                                                            ? 4
                                                            : s.bo().getCatchcount() == null
                                                                    && s.bo().getLengthsamplecount() == null
                                                                    && s.bo().getCatchweight() != null
                                                                            ? 6
                                                                            : s.bo().getCatchcount() != null
                                                                                    && s.bo()
                                                                                            .getLengthsamplecount() == null
                                                                                    && s.bo()
                                                                                            .getCatchweight() != null
                                                                                                    ? 7
                                                                                                    : haulVal
                                                                                                            .equals("V")
                                                                                                            && s.bo()
                                                                                                                    .getCatchcount() == null
                                                                                                            && s.bo()
                                                                                                                    .getLengthsamplecount() == null
                                                                                                            && s.bo()
                                                                                                                    .getCatchweight() == null
                                                                                                                            ? 5
                                                                                                                            : s.bo().getCatchcount() != null
                                                                                                                                    && s.bo()
                                                                                                                                            .getLengthsamplecount() != null
                                                                                                                                    && s.bo()
                                                                                                                                            .getCatchweight() == null
                                                                                                                                                    ? 0
                                                                                                                                                    : -9;

                    String lngtCode = s.bo().getSampletype() != null
                            ? isCrustacean ? "."/*1mm*/ : isHerringOrSprat ? "0"/*5mm*/ : "1"
                            /*1cm*/ : "-9"/*1cm*/;
                    Integer lenInterval = lngtCode.equals("0") ? 5 : 1;
                    Boolean reportInMM = !lngtCode.equals("1");

                    Double catCatchWgt = (s.bo().getCatchweight() != null ? s.bo().getCatchweight() : 0) * 1000;

                    // If weight is below 1, raise it into 1
                    if (catCatchWgt < 1 && catCatchWgt > 0) {
                        catCatchWgt = Math.ceil(catCatchWgt) * 1.0;
                    }

                    Double subWeight = (s.bo().getLengthsampleweight() != null ? s.bo().getLengthsampleweight()
                            : 0) * 1000;

                    // If weight is below 1, raise it into 1
                    if (subWeight < 1 && subWeight > 0) {
                        subWeight = Math.ceil(subWeight) * 1.0;
                    }

                    if (s.getIndividualBOs().isEmpty() || s.bo().getLengthsampleweight() == null) {
                        String lngtClass = "-9";
                        String sex = "-9";
                        hlNoAtLngth.addGroupRowColValue(s.bo().getAphia(), sex, lngtClass,
                                (s.bo().getCatchcount() != null ? s.bo().getCatchcount() : 0) * 1.0);
                        lsCountTot.addGroupRowColValue(s.bo().getAphia(), sex, lngtClass,
                                (s.bo().getLengthsamplecount() != null ? s.bo().getLengthsamplecount() : 0)
                                        * 1.0);
                    } else {
                        //if (s.bo().getlengthsampleweight() == null) {
                        //    continue;
                        //}
                        Double sampleFac = s.bo().getCatchweight() / s.bo().getLengthsampleweight();
                        for (IndividualBO i : s.getIndividualBOs()) {
                            Double length = i.bo().getLength();
                            /*cm*/;
                            if (i.bo().getLength() == null) {
                                continue;
                            }
                            if (reportInMM) {
                                if (length > 0) {
                                    length *= 10;
                                }
                            } else {
                                // Some species have very small length in cm, use mm instead
                                if (length < 1) {
                                    lngtCode = ".";
                                    lenInterval = 1;
                                    length *= 10;
                                    reportInMM = true;
                                }
                            }
                            String lngtClass = "" + ImrMath.trunc(length, lenInterval.doubleValue());
                            String sex = i.bo().getSex() == null || i.bo().getSex().trim().isEmpty() ? "-9"
                                    : i.bo().getSex().equals("1") ? "F" : "M";
                            hlNoAtLngth.addGroupRowColValue(s.bo().getAphia(), sex, lngtClass, 1.0 * sampleFac);
                            lsCountTot.addGroupRowColValue(s.bo().getAphia(), sex, lngtClass, 1.0);
                        }
                    }
                    // Group Sex and Length class and report counts at catch level (raw)
                    String aphia = (String) s.bo().getAphia();
                    for (String sex : hlNoAtLngth.getGroupRowKeys(aphia)) {
                        Double totalNo = hlNoAtLngth.getGroupRowValueAsMatrix(aphia, sex).getSum();
                        Double noMeas = lsCountTot.getGroupRowValueAsMatrix(aphia, sex).getSum();
                        Double subFactor = (totalNo != 0 && noMeas != 0) ? totalNo / noMeas : -9;

                        // If subFactor == 1, we can use catCatchWgt
                        if (subFactor == 1) {
                            subWeight = catCatchWgt;
                        }

                        for (String lngtClass : hlNoAtLngth.getGroupRowColKeys(aphia, sex)) {
                            ImrIO.write(wr, ExportUtil.carrageReturnLineFeed(ExportUtil.csv("HL", quarter,
                                    getTSCountryByIOC(fs.bo().getNation()),
                                    getTSShipByPlatform(fs.bo().getCatchplatform()), "GOV", sweep, "S", "P",
                                    fs.bo().getSerialnumber(), fs.bo().getStation(), year, "W", // Worms
                                    aphia, specVal, sex, totalNo == 0 ? -9 : unkD(totalNo, "0.00"), // n per Hour
                                    s.bo().getCatchpartnumber(), //CatIdentifier
                                    noMeas == 0 ? -9 : Math.round(noMeas), // n measured as individual
                                    unkD(subFactor, "0.0000"), // SubFactor
                                    subWeight == 0 ? -9 : Math.round(subWeight),
                                    catCatchWgt == 0 ? -9 : Math.round(catCatchWgt), /* g */
                                    lngtCode, lngtClass,
                                    lsCountTot.getGroupRowColValueAsDouble(aphia, sex, lngtClass) > 0 ? unkD(
                                            lsCountTot.getGroupRowColValueAsDouble(aphia, sex, lngtClass),
                                            "0.00") : -9.00)));
                        }
                    }
                }
            }
        }
        break;

    case 3:
        ImrIO.write(wr,
                ExportUtil.carrageReturnLineFeed(ExportUtil.csv("RecordType", "Quarter", "Country", "Ship",
                        "Gear", "SweepLngt", "GearExp", "DoorType", "StNo", "HaulNo", "Year", "SpecCodeType",
                        "SpecCode", "AreaType", "AreaCode", "LngtCode", "LngtClass", "Sex", "Maturity",
                        "PlusGr", "AgeRings", "CANoAtLngt", "IndWgt")));
        for (MissionBO ms : list) {
            for (FishstationBO fs : ms.getFishstationBOs()) {
                Integer sweep = getGOVSweepByEquipment(fs.bo().getGear());
                if (sweep == null) { // Sweep filter
                    continue;
                }
                if (fs.bo().getStationstartdate() == null) {
                    continue;
                }
                Integer year = IMRdate.getYear(fs.bo().getStationstartdate());
                Integer month = IMRdate.getMonth(fs.bo().getStationstartdate());
                Integer quarter = (int) Math.ceil(month / 3.0);
                String areaLoc = fs.bo().getArea() != null && fs.bo().getLocation() != null
                        ? fs.bo().getArea() + fs.bo().getLocation()
                        : "";

                for (CatchSampleBO s : fs.getCatchSampleBOs()) {
                    // IU: Sometimes we get null aphia
                    if (s.bo().getAphia() == null) {
                        continue;
                    }
                    // IU: Use aphia for comparison and add crustacean boolean
                    boolean isHerringOrSprat = s.bo().getAphia().equals("126417")
                            || s.bo().getAphia().equals("126425");

                    List<String> crustList = Arrays.asList("107275", "107276", "107369", "107253", "107703",
                            "107704", "107350", "107254", "107205", "140712", "140687", "140658");
                    boolean isCrustacean = crustList.contains(s.bo().getAphia());

                    if (s.getIndividualBOs().isEmpty()) {
                        continue;
                    }
                    MatrixBO nInd = new MatrixBO();
                    MatrixBO nWithWeight = new MatrixBO();
                    MatrixBO totWeight = new MatrixBO();
                    String lngtCode = s.bo().getSampletype() != null
                            ? isCrustacean ? "."/*1mm*/ : isHerringOrSprat ? "0"/*5mm*/ : "1"
                            /*1cm*/ : "-9"/*1cm*/;
                    Integer lenInterval = lngtCode.equals("0") ? 5 : 1;
                    Boolean reportInMM = !lngtCode.equals("1");
                    for (IndividualBO i : s.getIndividualBOs()) {
                        Double length = i.bo().getLength();
                        /*cm*/;
                        if (i.bo().getLength() == null) {
                            continue;
                        }
                        if (reportInMM) {
                            if (length > 0) {
                                length *= 10;
                            }
                        } else {
                            // Some species have very small length in cm, use mm instead
                            if (length < 1) {
                                lngtCode = ".";
                                lenInterval = 1;
                                length *= 10;
                                reportInMM = true;
                            }
                        }
                        String lngtClass = "" + ImrMath.trunc(length, lenInterval.doubleValue());
                        String sex = i.bo().getSex() == null || i.bo().getSex().trim().isEmpty() ? "-9"
                                : i.bo().getSex().equals("1") ? "F" : "M";
                        String maturity = getDATRASMaturity(i);
                        String age = i.getAge() != null ? i.getAge() + "" : "-9";
                        nInd.addGroupRowColCellValue(lngtClass, sex, maturity, age, 1.0);
                        if (i.bo().getIndividualweight()/*g*/ != null) {
                            nWithWeight.addGroupRowColCellValue(lngtClass, sex, maturity, age, 1.0);
                            totWeight.addGroupRowColCellValue(lngtClass, sex, maturity, age,
                                    i.bo().getIndividualweight());
                        }
                    }
                    // Group Length class - Sex - Maturity - Age and report meanweight and category count at individual level
                    for (String lngtClass : nInd.getKeys()) {
                        for (String sex : nInd.getGroupRowKeys(lngtClass)) {
                            for (String maturity : nInd.getGroupRowColKeys(lngtClass, sex)) {
                                for (String age : nInd.getGroupRowColCellKeys(lngtClass, sex, maturity)) {
                                    Long n = Math.round(nInd.getGroupRowColCellValueAsDouble(lngtClass, sex,
                                            maturity, age));
                                    Double nWithW = nWithWeight.getGroupRowColCellValueAsDouble(lngtClass, sex,
                                            maturity, age);
                                    Double totW = totWeight.getGroupRowColCellValueAsDouble(lngtClass, sex,
                                            maturity, age);
                                    Double meanW = null;
                                    if (nWithW != null) {
                                        meanW = totW / nWithW;
                                    }
                                    ImrIO.write(wr, ExportUtil.carrageReturnLineFeed(ExportUtil.csv("CA",
                                            quarter, getTSCountryByIOC(fs.bo().getNation()),
                                            getTSShipByPlatform(fs.bo().getCatchplatform()), "GOV", sweep, "S",
                                            "P", fs.bo().getSerialnumber(), fs.bo().getStation(), year, "W", // Worms
                                            s.bo().getAphia(), 0, areaLoc, lngtCode, lngtClass, sex, maturity,
                                            -9, age, n, unkD(meanW, "0.0"))));
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

From source file:org.wrml.runtime.schema.generator.SchemaGenerator.java

private String getDefaultValueString(final Value slotValue) {

    final Context context = getContext();
    final SyntaxLoader syntaxLoader = context.getSyntaxLoader();

    String defaultValueString = null;

    if (slotValue instanceof TextValue) {
        defaultValueString = ((TextValue) slotValue).getDefault();
    } else if (slotValue instanceof IntegerValue) {
        final Integer defaultValue = ((IntegerValue) slotValue).getDefault();
        if (defaultValue != null) {
            defaultValueString = String.valueOf(defaultValue.intValue());
        }/* w  ww. j av a 2  s  .c om*/
    } else if (slotValue instanceof SingleSelectValue) {
        defaultValueString = ((SingleSelectValue) slotValue).getDefault();
    } else if (slotValue instanceof MultiSelectValue) {
        final List<String> defaultValue = ((MultiSelectValue) slotValue).getDefault();
        // TODO: Revisit this format
        defaultValueString = String.valueOf(defaultValue);
    } else if (slotValue instanceof DateValue) {
        final Date defaultValue = ((DateValue) slotValue).getDefault();
        if (defaultValue != null) {
            final SyntaxHandler<Date> syntaxHandler = syntaxLoader.getSyntaxHandler(Date.class);
            defaultValueString = syntaxHandler.formatSyntaxValue(defaultValue);
        }
    } else if (slotValue instanceof BooleanValue) {
        final Boolean defaultValue = ((BooleanValue) slotValue).getDefault();
        if (defaultValue != null) {
            defaultValueString = String.valueOf(defaultValue.booleanValue());
        }
    } else if (slotValue instanceof DoubleValue) {
        final Double defaultValue = ((DoubleValue) slotValue).getDefault();
        if (defaultValue != null) {
            defaultValueString = String.valueOf(defaultValue.doubleValue());
        }
    } else if (slotValue instanceof LongValue) {
        final Long defaultValue = ((LongValue) slotValue).getDefault();
        if (defaultValue != null) {
            defaultValueString = String.valueOf(defaultValue.longValue());
        }
    }

    return defaultValueString;

}

From source file:com.kodemore.utility.Kmu.java

public static Double toDouble(Integer e) {
    return e == null ? null : e.doubleValue();
}

From source file:org.openmrs.module.kenyaemr.fragment.controller.patient.ImportPatientsListFragmentController.java

@SuppressWarnings("deprecation")
public Object submit(HttpServletRequest request) throws Exception {
    // Constant values used across all the code

    MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
    MultipartFile multipartModuleFile = multipartRequest.getFile("upload");
    InputStream inputStream = multipartModuleFile.getInputStream();
    Workbook workbook = new XSSFWorkbook(inputStream);

    Sheet firstSheet = workbook.getSheetAt(0);
    Iterator<Row> iterator = firstSheet.iterator();
    int rowCount = 0;

    while (iterator.hasNext()) {
        Row nextRow = iterator.next();/* ww  w.j  a  va 2 s  . com*/
        Iterator<Cell> cellIterator = nextRow.cellIterator();
        try {
            if (rowCount > 0) {

                ArrayList<String> legacyData = new ArrayList<String>();
                int columnCount = 0;

                while (cellIterator.hasNext() && columnCount < 31) {
                    Cell cell = cellIterator.next();
                    switch (cell.getCellType()) {
                    case Cell.CELL_TYPE_STRING:
                        legacyData.add(cell.getColumnIndex(), cell.getStringCellValue().trim());
                        break;
                    case Cell.CELL_TYPE_NUMERIC:
                        if (HSSFDateUtil.isCellDateFormatted(cell)) {
                            legacyData.add(cell.getColumnIndex(), String.valueOf(cell.getDateCellValue()));

                        } else {

                            legacyData.add(cell.getColumnIndex(),
                                    NumberToTextConverter.toText(cell.getNumericCellValue()));
                        }
                        break;
                    case Cell.CELL_TYPE_BLANK:
                        legacyData.add(cell.getColumnIndex(), null);
                        break;
                    }
                    columnCount++;
                }
                int i = 0;
                for (String s : legacyData) {
                    i++;
                }
                /*
                 * Start Patient Creation
                 */
                try {
                    if (legacyData.get(0) != null) {
                        Patient toSave = new Patient(); // Creating a new
                        // patient
                        // and
                        // person
                        PersonName personName = new PersonName();
                        PersonAddress personAddress = new PersonAddress();
                        Location location;

                        SimpleDateFormat formatter = new SimpleDateFormat("E MMM dd HH:mm:ss Z yyyy");
                        Date dateBith = new Date();
                        try {
                            dateBith = (Date) formatter.parse(legacyData.get(2));

                        } catch (ParseException e) {
                            e.printStackTrace();
                        }

                        toSave.setGender(legacyData.get(3));
                        toSave.setBirthdate(dateBith);
                        toSave.setBirthdateEstimated(false);
                        toSave.setDead(false);
                        /*
                         * toSave.setDeathDate(deathDate);
                         * toSave.setCauseOfDeath(dead ? Dictionary
                         * .getConcept(CAUSE_OF_DEATH_PLACEHOLDER) : null);
                         */

                        if (legacyData.get(1) != "") {
                            personName.setGivenName(legacyData.get(1));

                            personName.setFamilyName("(NULL)");
                            toSave.addName(personName);
                        }

                        // toSave.
                        personAddress.setAddress1(legacyData.get(9));
                        personAddress.setCountyDistrict(legacyData.get(10));
                        toSave.addAddress(personAddress);

                        PatientWrapper wrapper = new PatientWrapper(toSave);

                        wrapper.getPerson().setTelephoneContact(legacyData.get(8));

                        location = Context.getService(KenyaEmrService.class).getDefaultLocation();

                        if (legacyData.get(4) != null) {
                            wrapper.setPreArtRegistrationNumber(legacyData.get(4), location);
                        }

                        if (legacyData.get(6) != null) {
                            wrapper.setArtRegistrationNumber(legacyData.get(6), location);
                        }

                        if (legacyData.get(5) != null) {
                            wrapper.setNapArtRegistrationNumber(legacyData.get(5), location);
                        }

                        // Algorithm to generate system generated patient
                        // Identifier
                        Calendar now = Calendar.getInstance();
                        String shortName = Context.getAdministrationService()
                                .getGlobalProperty(OpenmrsConstants.GLOBAL_PROPERTY_PATIENT_IDENTIFIER_PREFIX);

                        String noCheck = shortName + String.valueOf(now.get(Calendar.YEAR)).substring(2, 4)
                                + String.valueOf(now.get(Calendar.MONTH) + 1)
                                + String.valueOf(now.get(Calendar.DATE))

                                + String.valueOf(now.get(Calendar.HOUR))
                                + String.valueOf(now.get(Calendar.MINUTE))
                                + String.valueOf(now.get(Calendar.SECOND))
                                + String.valueOf(new Random().nextInt(9999 - 999 + 1));

                        wrapper.setSystemPatientId(noCheck + "-" + generateCheckdigit(noCheck), location);

                        wrapper.setNextOfKinName(legacyData.get(11));
                        wrapper.setNextOfKinContact(legacyData.get(12));

                        if (legacyData.get(13) != null) {
                            wrapper.setPreviousHivTestStatus("Yes");
                            wrapper.setPreviousHivTestPlace(legacyData.get(14));

                            Date capturedTestDate = new Date();
                            try {
                                capturedTestDate = formatter.parse(legacyData.get(13));

                            } catch (ParseException e) {
                                e.printStackTrace();
                            }

                            DateFormat testDate = new SimpleDateFormat("dd-MMMM-yyyy");
                            wrapper.setPreviousHivTestDate(testDate.format(capturedTestDate));
                        } else {
                            wrapper.setPreviousHivTestStatus("No");
                        }

                        wrapper.setPreviousClinicName(legacyData.get(16));

                        // Make sure everyone gets an OpenMRS ID
                        PatientIdentifierType openmrsIdType = MetadataUtils.existing(
                                PatientIdentifierType.class, CommonMetadata._PatientIdentifierType.OPENMRS_ID);
                        PatientIdentifier openmrsId = toSave.getPatientIdentifier(openmrsIdType);

                        if (openmrsId == null) {
                            String generated = Context.getService(IdentifierSourceService.class)
                                    .generateIdentifier(openmrsIdType, "Registration");
                            openmrsId = new PatientIdentifier(generated, openmrsIdType, location);
                            toSave.addIdentifier(openmrsId);

                            if (!toSave.getPatientIdentifier().isPreferred()) {
                                openmrsId.setPreferred(true);
                            }
                        }

                        Patient ret = Context.getPatientService().savePatient(toSave);

                        // Explicitly save all identifier objects including
                        // voided
                        for (PatientIdentifier identifier : toSave.getIdentifiers()) {
                            Context.getPatientService().savePatientIdentifier(identifier);
                        }

                        /*
                         * End Patient Creation
                         */

                        /**
                         ** Start : Visit, Encounter and Program creation for
                         * Patient entered as Legacy Data Visit start date
                         **/
                        Date curDate = new Date();
                        Date dateVisit = null;
                        try {
                            dateVisit = formatter.parse(legacyData.get(18));

                        } catch (ParseException e) {
                            e.printStackTrace();
                        }

                        DateFormat visitDateInExcel = new SimpleDateFormat("dd-MMM-yyyy");
                        String dateCheck = visitDateInExcel.format(dateVisit);
                        SimpleDateFormat mysqlDateTimeFormatter = new SimpleDateFormat("dd-MMM-yy HH:mm:ss");

                        if (legacyData.get(18) != null) {
                            try {
                                dateVisit = mysqlDateTimeFormatter.parse(dateCheck + " " + curDate.getHours()
                                        + ":" + curDate.getMinutes() + ":" + curDate.getSeconds());
                            } catch (ParseException e) {
                                dateVisit = curDate;
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            }
                        }

                        Visit visit = new Visit();
                        visit.setPatient(ret);
                        visit.setStartDatetime(dateVisit);
                        visit.setVisitType(
                                MetadataUtils.existing(VisitType.class, CommonMetadata._VisitType.OUTPATIENT));
                        visit.setLocation(Context.getService(KenyaEmrService.class).getDefaultLocation());

                        VisitAttributeType attrType = Context.getService(VisitService.class)
                                .getVisitAttributeTypeByUuid(CommonMetadata._VisitAttributeType.NEW_PATIENT);
                        if (attrType != null) {
                            VisitAttribute attr = new VisitAttribute();
                            attr.setAttributeType(attrType);
                            attr.setVisit(visit);
                            attr.setDateCreated(curDate);
                            attr.setValue(true);
                            visit.addAttribute(attr);
                        }

                        Visit visitSave = Context.getVisitService().saveVisit(visit);

                        // With value text and Date
                        if (legacyData.get(15) != null) {

                            Date dateTransfer = null;
                            if (legacyData.get(17) != null) {
                                try {
                                    dateTransfer = formatter.parse(legacyData.get(17));

                                } catch (ParseException e) {
                                    e.printStackTrace();
                                }
                            }

                            Concept enrollementConcept = Context.getConceptService()
                                    .getConcept(Integer.parseInt(legacyData.get(15)));

                            handleOncePerPatientObs(ret, Dictionary.getConcept(Dictionary.METHOD_OF_ENROLLMENT),
                                    enrollementConcept, "", dateTransfer, null, visitSave);
                        }

                        if (legacyData.get(7) != null) {
                            Concept ingoConcept = Context.getConceptService()
                                    .getConcept(Integer.parseInt(legacyData.get(7)));
                            handleOncePerPatientObs(ret, Dictionary.getConcept(Dictionary.INGO_NAME),
                                    ingoConcept, "", null, null, visitSave);
                        }

                        EncounterType hivEnrollEncType = MetadataUtils.existing(EncounterType.class,
                                HivMetadata._EncounterType.HIV_ENROLLMENT);

                        EncounterType registrationEncType = MetadataUtils.existing(EncounterType.class,
                                CommonMetadata._EncounterType.REGISTRATION);

                        Encounter hivEnrollmentEncounter = new Encounter();

                        hivEnrollmentEncounter.setEncounterType(hivEnrollEncType);
                        hivEnrollmentEncounter.setPatient(ret);
                        hivEnrollmentEncounter
                                .setLocation(Context.getService(KenyaEmrService.class).getDefaultLocation());

                        hivEnrollmentEncounter.setDateCreated(curDate);
                        hivEnrollmentEncounter.setEncounterDatetime(dateVisit);

                        hivEnrollmentEncounter
                                .setForm(MetadataUtils.existing(Form.class, HivMetadata._Form.HIV_ENROLLMENT));
                        hivEnrollmentEncounter.setVisit(visitSave);
                        hivEnrollmentEncounter.setVoided(false);
                        Encounter enHivNew = Context.getEncounterService()
                                .saveEncounter(hivEnrollmentEncounter);

                        PatientProgram patientProgram = new PatientProgram();
                        patientProgram.setPatient(ret);
                        patientProgram
                                .setProgram(MetadataUtils.existing(Program.class, HivMetadata._Program.HIV));
                        patientProgram.setDateEnrolled(enHivNew.getEncounterDatetime());
                        patientProgram.setDateCreated(curDate);
                        Context.getProgramWorkflowService().savePatientProgram(patientProgram);

                        Encounter personalEncounter = new Encounter();

                        personalEncounter.setEncounterType(hivEnrollEncType);
                        personalEncounter.setPatient(ret);

                        personalEncounter.setDateCreated(curDate);
                        personalEncounter.setEncounterDatetime(dateVisit);
                        personalEncounter
                                .setLocation(Context.getService(KenyaEmrService.class).getDefaultLocation());

                        personalEncounter.setForm(
                                MetadataUtils.existing(Form.class, Metadata.Form.HIV_PERSONAL_HISTORY));
                        personalEncounter.setVisit(visitSave);
                        personalEncounter.setVoided(false);
                        Encounter enpersonalrecordresultNew = Context.getEncounterService()
                                .saveEncounter(personalEncounter);
                        if (legacyData.get(19) != null) {

                            Concept literate = Context.getConceptService()
                                    .getConcept(Integer.parseInt(legacyData.get(19)));
                            handleOncePerPatientObs(ret, Dictionary.getConcept(Dictionary.LITERATE), literate,
                                    "", null, null, enpersonalrecordresultNew, null, visitSave);

                        }
                        if (legacyData.get(21) != null) {

                            String value = legacyData.get(21);

                            String[] valueList = value.split("\\s*,\\s*");

                            for (String riskname : valueList) {

                                Concept riskConcept = Context.getConceptService().getConcept(riskname);

                                handleOncePerPatientObs(ret, Dictionary.getConcept(Dictionary.HIV_RISK_FACTOR),
                                        riskConcept, "", null, null, enpersonalrecordresultNew, null,
                                        visitSave);

                            }

                        }
                        if (legacyData.get(22) != null) {

                            Concept idssubstituion = Context.getConceptService()
                                    .getConcept(Integer.parseInt(legacyData.get(22)));
                            handleOncePerPatientObs(ret, Dictionary.getConcept(Dictionary.IDU_PERSONAL_HISTORY),
                                    idssubstituion, "", null, null, enpersonalrecordresultNew, null, visitSave);

                        }

                        if (legacyData.get(23) != null) {

                            Concept idssubstituionvalue = Context.getConceptService()
                                    .getConcept(Integer.parseInt(legacyData.get(23)));
                            handleOncePerPatientObs(ret,
                                    Dictionary.getConcept(Dictionary.IDU_NAME_PERSONAL_HISTORY),
                                    idssubstituionvalue, "", null, null, enpersonalrecordresultNew, null,
                                    visitSave);

                        }
                        if (legacyData.get(29) != null) {

                            Concept employedvalue = Context.getConceptService()
                                    .getConcept(Integer.parseInt(legacyData.get(29)));
                            handleOncePerPatientObs(ret, Dictionary.getConcept(Dictionary.EMPLOYED),
                                    employedvalue, "", null, null, enpersonalrecordresultNew, null, visitSave);
                        }

                        if (legacyData.get(30) != null) {

                            Concept alcoholicvalue = Context.getConceptService()
                                    .getConcept(Integer.parseInt(legacyData.get(30)));
                            handleOncePerPatientObs(ret, Dictionary.getConcept(Dictionary.ALCOHOLIC_TYPE),
                                    alcoholicvalue, "", null, null, enpersonalrecordresultNew, null, visitSave);
                        }

                        Encounter familyEncounter = new Encounter();

                        familyEncounter.setEncounterType(registrationEncType);
                        familyEncounter.setPatient(ret);

                        familyEncounter.setDateCreated(curDate);
                        familyEncounter.setEncounterDatetime(dateVisit);
                        familyEncounter
                                .setLocation(Context.getService(KenyaEmrService.class).getDefaultLocation());

                        familyEncounter
                                .setForm(MetadataUtils.existing(Form.class, Metadata.Form.HIV_FAMILY_HISTORY));
                        familyEncounter.setVisit(visitSave);
                        familyEncounter.setVoided(false);
                        Encounter enfamilyrecordresultNew = Context.getEncounterService()
                                .saveEncounter(familyEncounter);
                        if (legacyData.get(20) != null) {

                            Concept martalstatus = Context.getConceptService()
                                    .getConcept(Integer.parseInt(legacyData.get(20)));
                            handleOncePerPatientObs(ret, Dictionary.getConcept(Dictionary.CIVIL_STATUS),
                                    martalstatus, "", null, null, enfamilyrecordresultNew, null, visitSave);
                        }

                        Encounter drugEncounter = new Encounter();

                        drugEncounter.setEncounterType(hivEnrollEncType);
                        drugEncounter.setPatient(ret);

                        drugEncounter.setDateCreated(curDate);
                        drugEncounter.setEncounterDatetime(dateVisit);
                        drugEncounter
                                .setLocation(Context.getService(KenyaEmrService.class).getDefaultLocation());

                        drugEncounter
                                .setForm(MetadataUtils.existing(Form.class, Metadata.Form.HIV_DRUG_HISTORY));
                        drugEncounter.setVisit(visitSave);
                        drugEncounter.setVoided(false);
                        Encounter endrugrecordresultNew = Context.getEncounterService()
                                .saveEncounter(drugEncounter);

                        if (legacyData.get(24) != null) {

                            Concept drughistoryart = Context.getConceptService()
                                    .getConcept(Integer.parseInt(legacyData.get(24)));

                            handleOncePerPatientObs(ret,
                                    Dictionary.getConcept(Dictionary.DRUG_HISTORY_ART_RECEIVED), drughistoryart,
                                    "", null, null, endrugrecordresultNew, null, visitSave);

                        }

                        if (legacyData.get(25) != null) {

                            Concept drughistoryarttype = Context.getConceptService()
                                    .getConcept(Integer.parseInt(legacyData.get(25)));

                            handleOncePerPatientObs(ret,
                                    Dictionary.getConcept(Dictionary.DRUG_HISTORY_ART_RECEIVED_TYPE),
                                    drughistoryarttype, "", null, null, endrugrecordresultNew, null, visitSave);

                        }

                        if (legacyData.get(26) != null && legacyData.get(27) != null
                                && legacyData.get(28) != null) {

                            boolean value = false;
                            Obs drugtreatmentGroup = new Obs();
                            drugtreatmentGroup.setPerson(ret);
                            drugtreatmentGroup.setConcept(Dictionary.getConcept(Dictionary.DRUG_HISTORY_GROUP));

                            drugtreatmentGroup.setObsDatetime(endrugrecordresultNew.getEncounterDatetime());

                            // Added value coded as per default obs object
                            // format.
                            //drugtreatmentGroup.setValueCoded(null);
                            // drugtreatmentGroup.setValueText(text);
                            drugtreatmentGroup.setLocation(
                                    Context.getService(KenyaEmrService.class).getDefaultLocation());

                            drugtreatmentGroup.setEncounter(endrugrecordresultNew);

                            drugtreatmentGroup.setValueBoolean(value);
                            Obs drugtreat = Context.getObsService().saveObs(drugtreatmentGroup,
                                    "KenyaEMR History Details");
                            if (legacyData.get(26) != null) {

                                Concept place = Context.getConceptService()
                                        .getConcept(Integer.parseInt(legacyData.get(26)));
                                handleOncePerPatientObs(ret,
                                        Dictionary.getConcept(Dictionary.DRUG_HISTORY_ART_RECEIVED_PLACE),
                                        place, "", null, null, endrugrecordresultNew, drugtreat, visitSave);
                            }

                            if (legacyData.get(27) != null) {

                                Concept drugarv = Context.getConceptService()
                                        .getConcept(Integer.parseInt(legacyData.get(27)));
                                handleOncePerPatientObs(ret,
                                        Dictionary.getConcept(Dictionary.DRUG_REGIMEN_DRUG_HISTORY), drugarv,
                                        "", null, null, endrugrecordresultNew, drugtreat, visitSave);
                            }

                            if (legacyData.get(28) != null) {

                                Double dur = 0.0;
                                Integer durationreslt = 0;

                                durationreslt = Integer.parseInt(legacyData.get(28));
                                dur = durationreslt.doubleValue();
                                handleOncePerPatientObs(ret, Dictionary.getConcept(Dictionary.DRUG_DURATION),
                                        null, null, null, dur, endrugrecordresultNew, drugtreat, visitSave);

                            }

                        }

                        /*
                         * End : Visit, Encounter and Program creation for
                         * Patient entered as Legacy Data
                         */

                    }
                } catch (IndexOutOfBoundsException e) {
                    break;
                }
            }
        } catch (IndexOutOfBoundsException e) {
            break;
        }

        rowCount++;
    }

    int noOfSheets = workbook.getNumberOfSheets();

    if (noOfSheets > 1) {
        Sheet secondSheet = workbook.getSheetAt(1);
        Iterator<Row> iteratorSecond = secondSheet.iterator();
        int rowCountVisit = 0;
        while (iteratorSecond.hasNext()) {
            Row nextRow = iteratorSecond.next();
            Iterator<Cell> cellIterator = nextRow.cellIterator();
            try {

                if (rowCountVisit > 0) {
                    ArrayList<String> legacyData = new ArrayList<String>();
                    int columnCount = 0;
                    while (cellIterator.hasNext() && columnCount < 44) {
                        Cell cell = cellIterator.next();

                        switch (cell.getCellType()) {
                        case Cell.CELL_TYPE_STRING:
                            legacyData.add(cell.getColumnIndex(), cell.getStringCellValue().trim());
                            break;
                        case Cell.CELL_TYPE_NUMERIC:
                            if (HSSFDateUtil.isCellDateFormatted(cell)) {
                                legacyData.add(cell.getColumnIndex(), String.valueOf(cell.getDateCellValue()));

                            } else {

                                legacyData.add(cell.getColumnIndex(),
                                        NumberToTextConverter.toText(cell.getNumericCellValue()));

                            }
                            break;
                        case Cell.CELL_TYPE_BLANK:
                            legacyData.add(cell.getColumnIndex(), "");
                            break;
                        }
                        columnCount++;
                    }

                    int i = 0;
                    for (String s : legacyData) {
                        i++;
                    }
                    Person person = null;
                    Patient patient = null;
                    PatientWrapper wrapper = null;
                    int count = 0;
                    Location location;
                    location = Context.getService(KenyaEmrService.class).getDefaultLocation();

                    if (legacyData.get(3) != null && legacyData.get(3) != "") {
                        try {

                            if (!legacyData.get(0).isEmpty()) {
                                PatientIdentifierType pt = Context.getPatientService()
                                        .getPatientIdentifierTypeByUuid("d59d0f67-4a05-4e41-bfad-342da68feb6f");

                                List<PatientIdentifier> patList = Context.getPatientService()
                                        .getPatientIdentifiers(legacyData.get(0).toString(), pt);

                                for (PatientIdentifier p : patList) {
                                    patient = Context.getPatientService()
                                            .getPatient(p.getPatient().getPatientId());
                                    wrapper = new PatientWrapper(patient);
                                    person = Context.getPersonService().getPerson(patient);
                                }
                            }

                            else if (!legacyData.get(1).isEmpty()) {
                                PatientIdentifierType pt = Context.getPatientService()
                                        .getPatientIdentifierTypeByUuid("3e5493e8-e76e-4d3f-a166-9a88b40747fa");

                                List<PatientIdentifier> patList = Context.getPatientService()
                                        .getPatientIdentifiers(legacyData.get(1).toString(), pt);

                                for (PatientIdentifier p : patList) {

                                    patient = Context.getPatientService()
                                            .getPatient(p.getPatient().getPatientId());
                                    wrapper = new PatientWrapper(patient);
                                    person = Context.getPersonService().getPerson(patient);
                                }

                            } else if (!legacyData.get(2).isEmpty()) {
                                PatientIdentifierType pt = Context.getPatientService()
                                        .getPatientIdentifierTypeByUuid("9e10c5d6-a58c-4236-8b65-b6b932beff1a");
                                List<PatientIdentifier> patList = Context.getPatientService()
                                        .getPatientIdentifiers(legacyData.get(2).toString(), pt);
                                for (PatientIdentifier p : patList) {
                                    patient = Context.getPatientService()
                                            .getPatient(p.getPatient().getPatientId());
                                    wrapper = new PatientWrapper(patient);
                                    person = Context.getPersonService().getPerson(patient);
                                }
                            } else {
                                break;
                            }

                            SimpleDateFormat formatter = new SimpleDateFormat("E MMM dd HH:mm:ss Z yyyy");
                            Date curDate = new Date();
                            Date dateVisit = null;
                            try {
                                if (legacyData.get(3) != null && legacyData.get(3) != "") {
                                    dateVisit = formatter.parse(legacyData.get(3));
                                }

                            } catch (ParseException e) {

                                e.printStackTrace();
                            }
                            DateFormat visitDateInExcel = new SimpleDateFormat("dd-MMM-yyyy");
                            String dateCheck = "";
                            SimpleDateFormat mysqlDateTimeFormatter = new SimpleDateFormat(
                                    "dd-MMM-yy HH:mm:ss");
                            if (legacyData.get(3) != null && legacyData.get(3) != "") {
                                Date curDatenew = new Date();
                                dateCheck = visitDateInExcel.format(dateVisit);
                                try {
                                    dateVisit = mysqlDateTimeFormatter
                                            .parse(dateCheck + " " + curDatenew.getHours() + ":"
                                                    + curDatenew.getMinutes() + ":" + curDatenew.getSeconds());

                                } catch (ParseException e) {
                                    dateVisit = curDatenew;
                                    e.printStackTrace();
                                }
                            }

                            List<Visit> visits = Context.getVisitService().getActiveVisitsByPatient(patient);

                            Visit v = new Visit();
                            if (visits.isEmpty()) {
                                Visit visit = new Visit();
                                visit.setPatient(patient);
                                visit.setStartDatetime(dateVisit);
                                visit.setVisitType(MetadataUtils.existing(VisitType.class,
                                        CommonMetadata._VisitType.OUTPATIENT));
                                visit.setLocation(
                                        Context.getService(KenyaEmrService.class).getDefaultLocation());
                                if (person.getDead() == false) {
                                    v = Context.getVisitService().saveVisit(visit);
                                }

                            } else {
                                for (Visit vLoop : visits) {
                                    v = vLoop;

                                }
                            }

                            if (v.getId() != null) {
                                EncounterType artEnrollEncType = MetadataUtils.existing(EncounterType.class,
                                        ArtMetadata._EncounterType.INITIATE_ART);
                                Encounter artEncounter = new Encounter();

                                artEncounter.setEncounterType(artEnrollEncType);
                                artEncounter.setPatient(patient);
                                artEncounter.setLocation(
                                        Context.getService(KenyaEmrService.class).getDefaultLocation());

                                artEncounter.setDateCreated(curDate);
                                artEncounter.setEncounterDatetime(dateVisit);

                                artEncounter.setForm(
                                        MetadataUtils.existing(Form.class, ArtMetadata._Form.INITIATE_ART));
                                artEncounter.setVisit(v);

                                artEncounter.setVoided(false);
                                if (!legacyData.get(9).isEmpty()) {

                                    Encounter enartNew = Context.getEncounterService()
                                            .saveEncounter(artEncounter);
                                }
                                PatientProgram pp = new PatientProgram();
                                if (!legacyData.get(9).isEmpty()) {

                                    pp.setPatient(patient);
                                    pp.setProgram(
                                            MetadataUtils.existing(Program.class, ArtMetadata._Program.ART));

                                    Date artStartDate = null;
                                    Date curDatenew = new Date();

                                    try {
                                        artStartDate = (Date) formatter.parse(legacyData.get(9));
                                        dateCheck = visitDateInExcel.format(artStartDate);
                                        artStartDate = mysqlDateTimeFormatter.parse(dateCheck + " "
                                                + curDatenew.getHours() + ":" + curDatenew.getMinutes() + ":"
                                                + curDatenew.getSeconds());
                                        pp.setDateEnrolled(artStartDate);
                                    } catch (ParseException e) {
                                        e.printStackTrace();
                                    }

                                    if (pp.getDateEnrolled() != null && pp.getDateCompleted() == null) {
                                        PatientProgram program = Context.getProgramWorkflowService()
                                                .savePatientProgram(pp);
                                    }

                                }

                                /*
                                 * Changes code
                                 */
                                String reg = "";

                                if (!legacyData.get(4).isEmpty()) {

                                    Concept regimenConcept = Context.getConceptService()
                                            .getConcept(Integer.parseInt(legacyData.get(4)));
                                    reg = reg.concat(regimenConcept.getName().toString());

                                    KenyaEmrService kes = (KenyaEmrService) Context
                                            .getService(KenyaEmrService.class);

                                    List<DrugOrderProcessed> dopp = kes.getDrugOrderProcessedByPatient(patient);

                                    // Created drug order processed
                                    DrugOrderProcessed orderprocess = new DrugOrderProcessed();

                                    orderprocess.setPatient(patient);
                                    orderprocess.setDrugRegimen(reg);
                                    orderprocess.setCreatedDate(dateVisit);
                                    orderprocess.setStartDate(dateVisit);
                                    orderprocess.setVisit(v);
                                    orderprocess.setRoute(Context.getConceptService()
                                            .getConceptByUuid("160240AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"));
                                    Integer tablet = 0;

                                    if (legacyData.get(4).equals("163494") || legacyData.get(4).equals("163495")
                                            || legacyData.get(4).equals("163496")
                                            || legacyData.get(4).equals("162959")
                                            || legacyData.get(4).equals("163503")
                                            || legacyData.get(4).equals("163505")
                                            || legacyData.get(4).equals("163506")
                                            || legacyData.get(4).equals(" 163507")
                                            || legacyData.get(4).equals("163508")
                                            || legacyData.get(4).equals("163510")) {

                                        orderprocess.setNoOfTablet(1);
                                        tablet = Integer.parseInt(legacyData.get(6));
                                    } else {
                                        tablet = Integer.parseInt(legacyData.get(6)) * 2;
                                        orderprocess.setNoOfTablet(2);
                                    }

                                    if (!legacyData.get(6).isEmpty()) {
                                        orderprocess.setDurationPreProcess(Integer.parseInt(legacyData.get(6)));

                                        orderprocess.setQuantityPostProcess(tablet);

                                        orderprocess.setProcessedStatus(true);
                                        try {
                                            Date curDat = new Date();

                                            dateVisit = mysqlDateTimeFormatter
                                                    .parse(dateCheck + " " + curDat.getHours() + ":"
                                                            + curDat.getMinutes() + ":" + curDat.getSeconds());

                                            orderprocess.setProcessedDate(dateVisit);

                                        } catch (ParseException e) {
                                            e.printStackTrace();
                                        }
                                    }

                                    if (!legacyData.get(5).isEmpty()) {
                                        orderprocess.setDose(legacyData.get(5));
                                        orderprocess.setDoseRegimen(legacyData.get(5));
                                    }
                                    String cahngeRegimenType = "";
                                    if (patient.getAge() > 14) {
                                        for (String firstline : firstlineConcept) {
                                            if (legacyData.get(4).equals(firstline)) {
                                                orderprocess
                                                        .setTypeOfRegimen("First line Anti-retoviral drugs");
                                                cahngeRegimenType = "First line Anti-retoviral drugs";
                                            }
                                        }
                                        for (String secndline : secondlineConcept) {
                                            if (legacyData.get(4).equals(secndline)) {
                                                orderprocess.setTypeOfRegimen("Second line ART");
                                                cahngeRegimenType = "Second line ART";
                                            }
                                        }
                                        for (String thirdline : thirdlineConcept) {
                                            if (legacyData.get(4).equals(thirdline)) {
                                                orderprocess.setTypeOfRegimen("HIV/HBV co-infection");
                                                cahngeRegimenType = "HIV/HBV co-infection";
                                            }
                                        }
                                    } else {
                                        for (String child : childArvConcept) {
                                            if (legacyData.get(4).equals(child)) {
                                                orderprocess.setTypeOfRegimen("ARV drugs for child");
                                                cahngeRegimenType = "ARV drugs for child";

                                            }
                                        }
                                    }

                                    if (dopp.size() == 0) {
                                        orderprocess.setRegimenChangeType("Start");
                                        // Encounter Created
                                        EncounterType regEnrollEncType = MetadataUtils.existing(
                                                EncounterType.class,
                                                CommonMetadata._EncounterType.REGIMEN_ORDER);

                                        Encounter regEncounter = new Encounter();
                                        regEncounter.setEncounterType(regEnrollEncType);
                                        regEncounter.setPatient(patient);
                                        regEncounter.setLocation(Context.getLocationService()
                                                .getLocationByUuid("8d6c993e-c2cc-11de-8d13-0010c6dffd0f"));

                                        regEncounter.setDateCreated(curDate);
                                        regEncounter.setEncounterDatetime(dateVisit);
                                        regEncounter.setVisit(v);

                                        regEncounter.setVoided(false);

                                        // Save encounter
                                        Encounter enregNew = Context.getEncounterService()
                                                .saveEncounter(regEncounter);

                                        // Create order
                                        Order ordersave = new Order();

                                        // Create Drug order
                                        DrugOrder dod = new DrugOrder();

                                        dod.setOrderType(Context.getOrderService().getOrderType(2));
                                        dod.setConcept(Context.getConceptService()
                                                .getConcept(Integer.parseInt(legacyData.get(4))));
                                        dod.setEncounter(enregNew);

                                        dod.setStartDate(dateVisit);
                                        dod.setDateCreated(curDate);
                                        dod.setPatient(patient);
                                        dod.setUnits("tab");
                                        if (legacyData.get(4).equals("163494")
                                                || legacyData.get(4).equals("163495")
                                                || legacyData.get(4).equals("163496")
                                                || legacyData.get(4).equals("162959")
                                                || legacyData.get(4).equals("163503")
                                                || legacyData.get(4).equals("163505")
                                                || legacyData.get(4).equals("163506")
                                                || legacyData.get(4).equals(" 163507")
                                                || legacyData.get(4).equals("163508")
                                                || legacyData.get(4).equals("163510")) {

                                            dod.setFrequency("od");
                                        } else {
                                            dod.setFrequency("bd");
                                        }

                                        // /Save drug order
                                        ordersave = Context.getOrderService().saveOrder(dod);

                                        orderprocess.setDrugOrder(dod);

                                    }

                                    if (dopp.size() > 0) {
                                        DrugOrderProcessed dd = dopp.get(dopp.size() - 1);
                                        // for (DrugOrderProcessed dd :
                                        // dopp) {
                                        if (dd.getDrugRegimen().equals(reg) && !legacyData.get(5).isEmpty()
                                                && dd.getDoseRegimen().equals(legacyData.get(5))
                                                && dd.getTypeOfRegimen().equals(cahngeRegimenType)) {
                                            orderprocess.setRegimenChangeType("Continue");
                                            orderprocess.setDrugOrder(dd.getDrugOrder());

                                        } else {
                                            if (dd.getTypeOfRegimen().equals(cahngeRegimenType)) {
                                                orderprocess.setRegimenChangeType("Substitue");
                                            } else if (dd.getTypeOfRegimen().equals(cahngeRegimenType)) {
                                                orderprocess.setRegimenChangeType("Switch");
                                            }
                                            // Encounter Created
                                            EncounterType regEnrollEncType = MetadataUtils.existing(
                                                    EncounterType.class,
                                                    CommonMetadata._EncounterType.REGIMEN_ORDER);

                                            Encounter regEncounter = new Encounter();
                                            regEncounter.setEncounterType(regEnrollEncType);
                                            regEncounter.setPatient(patient);
                                            regEncounter.setLocation(Context.getLocationService()
                                                    .getLocationByUuid("8d6c993e-c2cc-11de-8d13-0010c6dffd0f"));

                                            regEncounter.setDateCreated(curDate);
                                            regEncounter.setEncounterDatetime(dateVisit);
                                            regEncounter.setVisit(v);

                                            regEncounter.setVoided(false);

                                            // Save encounter
                                            Encounter enregNew = Context.getEncounterService()
                                                    .saveEncounter(regEncounter);

                                            // Create order
                                            Order ordersave = new Order();

                                            // Create Drug order
                                            DrugOrder dod = new DrugOrder();

                                            dod.setOrderType(Context.getOrderService().getOrderType(2));
                                            dod.setConcept(Context.getConceptService()
                                                    .getConcept(Integer.parseInt(legacyData.get(4))));
                                            dod.setEncounter(enregNew);

                                            dod.setStartDate(dateVisit);
                                            dod.setDateCreated(curDate);
                                            dod.setPatient(patient);
                                            dod.setUnits("tab");
                                            if (legacyData.get(4).equals("163494")
                                                    || legacyData.get(4).equals("163495")
                                                    || legacyData.get(4).equals("163496")
                                                    || legacyData.get(4).equals("162959")
                                                    || legacyData.get(4).equals("163503")
                                                    || legacyData.get(4).equals("163505")
                                                    || legacyData.get(4).equals("163506")
                                                    || legacyData.get(4).equals(" 163507")
                                                    || legacyData.get(4).equals("163508")
                                                    || legacyData.get(4).equals("163510")) {

                                                dod.setFrequency("od");
                                            } else {
                                                dod.setFrequency("bd");
                                            }

                                            // /Save drug order
                                            ordersave = Context.getOrderService().saveOrder(dod);

                                            orderprocess.setDrugOrder(dod);

                                        }

                                    }

                                    kes.saveDrugOrderProcessed(orderprocess);

                                    Order oo = new Order();
                                    DrugOrderProcessed drugoo = new DrugOrderProcessed();

                                    for (DrugOrderProcessed ooo : dopp) {
                                        if (!legacyData.get(36).isEmpty()) {
                                            Date discontinuedDate = new Date();
                                            discontinuedDate = (Date) formatter.parse(legacyData.get(36));
                                            String dtechk = visitDateInExcel.format(discontinuedDate);
                                            try {
                                                Date curDat = new Date();
                                                List<Visit> visitdrug = Context.getVisitService()
                                                        .getVisitsByPatient(patient);

                                                for (Visit visdr : visitdrug) {
                                                    if (visdr.getStopDatetime() != null) {
                                                        if (drugoo.getDiscontinuedDate() == null) {
                                                            discontinuedDate = mysqlDateTimeFormatter
                                                                    .parse(dtechk + " " + curDat.getHours()
                                                                            + ":" + curDat.getMinutes() + ":"
                                                                            + curDat.getSeconds());

                                                            drugoo.setDiscontinuedDate(discontinuedDate);
                                                        }
                                                    }
                                                }

                                            } catch (ParseException e) {
                                                e.printStackTrace();
                                            }

                                        }
                                        if (!legacyData.get(35).isEmpty()) {
                                            List<Visit> visitdrug = Context.getVisitService()
                                                    .getVisitsByPatient(patient);
                                            Concept discontinuedReason = Context.getConceptService()
                                                    .getConcept(Integer.parseInt(legacyData.get(35)));

                                            for (Visit visdr : visitdrug) {
                                                if (visdr.getStopDatetime() != null) {
                                                    if (oo.getDiscontinuedReason() == null) {
                                                        if (!ooo.getDrugRegimen()
                                                                .equals(drugoo.getDrugRegimen())) {
                                                            drugoo.setDiscontinuedReason(discontinuedReason);
                                                        }
                                                    }
                                                }
                                            }
                                        }

                                        drugoo = ooo;

                                        kes.saveDrugOrderProcessed(drugoo);
                                    }
                                }

                                EncounterType labEnrollEncType = MetadataUtils.existing(EncounterType.class,
                                        CommonMetadata._EncounterType.LAB_ORDERS);
                                Encounter labEncounter = new Encounter();

                                labEncounter.setEncounterType(labEnrollEncType);
                                labEncounter.setPatient(patient);
                                labEncounter.setLocation(
                                        Context.getService(KenyaEmrService.class).getDefaultLocation());

                                labEncounter.setDateCreated(curDate);
                                labEncounter.setEncounterDatetime(dateVisit);

                                labEncounter.setForm(
                                        MetadataUtils.existing(Form.class, CommonMetadata._Form.LAB_ORDERS));
                                labEncounter.setVisit(v);

                                labEncounter.setVoided(false);

                                Encounter enlabNew = Context.getEncounterService().saveEncounter(labEncounter);

                                if (!legacyData.get(7).isEmpty()) {
                                    Concept labOrder = Dictionary.getConcept(Dictionary.CD4_COUNT);

                                    handleOncePerPatientObs(patient,
                                            Dictionary.getConcept(Dictionary.lABORATORY_ORDER), labOrder, "",
                                            null, null, enlabNew, null, v);

                                }
                                if (!legacyData.get(39).isEmpty()) {
                                    Concept labOrder = Context.getConceptService()
                                            .getConceptByUuid("122858AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");

                                    handleOncePerPatientObs(patient,
                                            Dictionary.getConcept(Dictionary.lABORATORY_ORDER), labOrder, "",
                                            null, null, enlabNew, null, v);

                                }
                                if (!legacyData.get(38).isEmpty()) {
                                    Concept labOrder = Context.getConceptService()
                                            .getConceptByUuid("654AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");

                                    handleOncePerPatientObs(patient,
                                            Dictionary.getConcept(Dictionary.lABORATORY_ORDER), labOrder, "",
                                            null, null, enlabNew, null, v);

                                }
                                if (!legacyData.get(8).isEmpty()) {

                                    Concept labviralOrder = Dictionary.getConcept(Dictionary.HIV_VIRAL_LOAD);

                                    handleOncePerPatientObs(patient,
                                            Dictionary.getConcept(Dictionary.lABORATORY_ORDER), labviralOrder,
                                            "", null, null, enlabNew, null, v);

                                }

                                if (!legacyData.get(37).isEmpty()) {

                                    Concept labhaemoOrder = Context.getConceptService()
                                            .getConceptByUuid("1019AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");

                                    handleOncePerPatientObs(patient,
                                            Dictionary.getConcept(Dictionary.lABORATORY_ORDER), labhaemoOrder,
                                            "", null, null, enlabNew, null, v);

                                }
                                if (!legacyData.get(40).isEmpty()) {

                                    Concept labcreatinineOrder = Context.getConceptService()
                                            .getConceptByUuid("790AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");
                                    handleOncePerPatientObs(patient,
                                            Dictionary.getConcept(Dictionary.lABORATORY_ORDER),
                                            labcreatinineOrder, "", null, null, enlabNew, null, v);

                                }
                                EncounterType labresultEnrollEncType = MetadataUtils.existing(
                                        EncounterType.class, CommonMetadata._EncounterType.LAB_RESULTS);
                                Encounter labresultEncounter = new Encounter();

                                labresultEncounter.setEncounterType(labresultEnrollEncType);
                                labresultEncounter.setPatient(patient);

                                labresultEncounter.setDateCreated(curDate);
                                labresultEncounter.setEncounterDatetime(dateVisit);
                                labresultEncounter.setVisit(v);

                                labresultEncounter.setVoided(false);
                                Encounter enlabresultNew = Context.getEncounterService()
                                        .saveEncounter(labresultEncounter);

                                if (!legacyData.get(7).isEmpty()) {

                                    String cd4Result = legacyData.get(7);
                                    Double cd4Count = Double.parseDouble(cd4Result);
                                    handleOncePerPatientObs(patient,
                                            Dictionary.getConcept(Dictionary.CD4_COUNT), null,
                                            legacyData.get(7), null, cd4Count, enlabresultNew, null, v);

                                }
                                if (!legacyData.get(37).isEmpty()) {

                                    String labResult = legacyData.get(37);

                                    handleOncePerPatientObs(patient,
                                            Context.getConceptService()
                                                    .getConceptByUuid("1019AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"),
                                            null, labResult, null, null, enlabresultNew, null, v);

                                }
                                if (!legacyData.get(38).isEmpty()) {

                                    String labResult = legacyData.get(38);
                                    Double lab = Double.parseDouble(labResult);

                                    handleOncePerPatientObs(patient,
                                            Context.getConceptService()
                                                    .getConceptByUuid("122858AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"),
                                            null, labResult, null, lab, enlabresultNew, null, v);

                                }
                                if (!legacyData.get(39).isEmpty()) {

                                    String labResult = legacyData.get(39);
                                    Double lab = Double.parseDouble(labResult);

                                    handleOncePerPatientObs(patient,
                                            Context.getConceptService()
                                                    .getConceptByUuid("654AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"),
                                            null, labResult, null, lab, enlabresultNew, null, v);

                                }
                                if (!legacyData.get(8).isEmpty()) {

                                    String labResult = legacyData.get(8);
                                    Double lab = Double.parseDouble(labResult);

                                    handleOncePerPatientObs(patient,
                                            Dictionary.getConcept(Dictionary.HIV_VIRAL_LOAD), null, labResult,
                                            null, lab, enlabresultNew, null, v);

                                }
                                if (!legacyData.get(40).isEmpty()) {

                                    String labResult = legacyData.get(40);
                                    Double lab = Double.parseDouble(labResult);

                                    handleOncePerPatientObs(patient,
                                            Context.getConceptService()
                                                    .getConceptByUuid("790AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"),
                                            null, labResult, null, lab, enlabresultNew, null, v);

                                }
                                EncounterType tbOIEnrollEncType = MetadataUtils.existing(EncounterType.class,
                                        CommonMetadata._EncounterType.CONSULTATION);
                                Encounter tbOIEncounter = new Encounter();

                                tbOIEncounter.setEncounterType(tbOIEnrollEncType);
                                tbOIEncounter.setPatient(patient);

                                tbOIEncounter.setDateCreated(curDate);
                                tbOIEncounter.setEncounterDatetime(dateVisit);
                                tbOIEncounter.setLocation(
                                        Context.getService(KenyaEmrService.class).getDefaultLocation());

                                tbOIEncounter.setForm(
                                        MetadataUtils.existing(Form.class, CommonMetadata._Form.TB_SCREENING));
                                tbOIEncounter.setVisit(v);
                                tbOIEncounter.setVoided(false);
                                Encounter entbOIresultNew = Context.getEncounterService()
                                        .saveEncounter(tbOIEncounter);
                                Obs o = null;
                                if (!legacyData.get(27).isEmpty()) {
                                    String text = "";
                                    Obs OIGroup = new Obs();
                                    OIGroup.setPerson(patient);
                                    OIGroup.setConcept(Dictionary.getConcept(Dictionary.OI_GROUP_TB_FORM));

                                    OIGroup.setObsDatetime(entbOIresultNew.getEncounterDatetime());
                                    // Added value coded as per default obs
                                    // object
                                    // format.
                                    OIGroup.setValueCoded(null);
                                    OIGroup.setValueText(text);
                                    OIGroup.setLocation(
                                            Context.getService(KenyaEmrService.class).getDefaultLocation());

                                    OIGroup.setEncounter(entbOIresultNew);

                                    if (!legacyData.get(27).isEmpty()) {
                                        o = Context.getObsService().saveObs(OIGroup,
                                                "KenyaEMR History Details");
                                    }

                                    if (!legacyData.get(27).isEmpty()) {
                                        String oivalue = legacyData.get(27);
                                        String[] valueList = oivalue.split("\\s*,\\s*");

                                        for (String oiname : valueList) {

                                            Concept oiConcept = Context.getConceptService().getConcept(oiname);

                                            handleOncePerPatientObs(patient,
                                                    Dictionary.getConcept(Dictionary.HIV_CARE_DIAGNOSIS),
                                                    oiConcept, "", null, null, entbOIresultNew, o, v);

                                        }

                                    }

                                }

                                if (!legacyData.get(10).isEmpty()) {

                                    Concept tbStatus = Context.getConceptService()
                                            .getConcept(Integer.parseInt(legacyData.get(10)));

                                    handleOncePerPatientObs(patient,
                                            Dictionary.getConcept(Dictionary.TB_PATIENT), tbStatus, "", null,
                                            null, entbOIresultNew, null, v);

                                }
                                if (!legacyData.get(11).isEmpty()) {

                                    Concept tbDiseaseClassification = Context.getConceptService()
                                            .getConcept(Integer.parseInt(legacyData.get(11)));
                                    handleOncePerPatientObs(patient,
                                            Dictionary.getConcept(Dictionary.SITE_OF_TUBERCULOSIS_DISEASE),
                                            tbDiseaseClassification, "", null, null, entbOIresultNew, null, v);
                                    if (!legacyData.get(12).isEmpty()) {
                                        if (!tbDiseaseClassification.equals("42")) {
                                            Concept tbsiteClassification = Context.getConceptService()
                                                    .getConcept(Integer.parseInt(legacyData.get(12)));
                                            handleOncePerPatientObs(patient,
                                                    Dictionary.getConcept(Dictionary.TB_SITE),
                                                    tbsiteClassification, "", null, null, entbOIresultNew, null,
                                                    v);
                                        }
                                    }
                                }

                                if (!legacyData.get(13).isEmpty()) {

                                    SimpleDateFormat sdf = new SimpleDateFormat("E MMM dd HH:mm:ss Z yyyy");
                                    Date tbStartDate = new Date();
                                    try {
                                        tbStartDate = (Date) formatter.parse(legacyData.get(13));

                                    } catch (ParseException e) {
                                        e.printStackTrace();
                                    }

                                    handleOncePerPatientObs(patient,
                                            Dictionary.getConcept(
                                                    Dictionary.TUBERCULOSIS_DRUG_TREATMENT_START_DATE),
                                            null, null, tbStartDate, null, entbOIresultNew, null, v);
                                }
                                if (!legacyData.get(14).isEmpty()) {

                                    Concept tbTownship = Context.getConceptService()
                                            .getConcept(Integer.parseInt(legacyData.get(14)));
                                    handleOncePerPatientObs(patient, Dictionary.getConcept(Dictionary.TOWNSHIP),
                                            tbTownship, "", null, null, entbOIresultNew, null, v);
                                }
                                if (!legacyData.get(15).isEmpty()) {

                                    String tbclinicName = "";
                                    tbclinicName = legacyData.get(15);

                                    handleOncePerPatientObs(patient,
                                            Dictionary.getConcept(Dictionary.TB_CLINIC_NAME), null,
                                            tbclinicName, null, null, entbOIresultNew, null, v);
                                }
                                if (!legacyData.get(16).isEmpty()) {

                                    String tbregistrationNumber = "";
                                    tbregistrationNumber = legacyData.get(16);

                                    handleOncePerPatientObs(patient,
                                            Dictionary.getConcept(Dictionary.TUBERCULOSIS_TREATMENT_NUMBER),
                                            null, tbregistrationNumber, null, null, entbOIresultNew, null, v);
                                }
                                if (!legacyData.get(17).isEmpty()) {
                                    Concept tbRegimen = Context.getConceptService()
                                            .getConcept(Integer.parseInt(legacyData.get(17)));
                                    handleOncePerPatientObs(patient,
                                            Dictionary.getConcept(Dictionary.TB_FORM_REGIMEN), tbRegimen, "",
                                            null, null, entbOIresultNew, null, v);

                                }
                                if (!legacyData.get(18).isEmpty()) {

                                    Concept tbOutcome = Context.getConceptService()
                                            .getConcept(Integer.parseInt(legacyData.get(18)));

                                    handleOncePerPatientObs(patient,
                                            Dictionary.getConcept(Dictionary.TUBERCULOSIS_TREATMENT_OUTCOME),
                                            tbOutcome, null, null, null, entbOIresultNew, null, v);
                                }

                                if (!legacyData.get(19).isEmpty()) {

                                    Date tbOutcomeDate = null;
                                    Date curDatenew = new Date();
                                    try {
                                        tbOutcomeDate = (Date) formatter.parse(legacyData.get(19));
                                        dateCheck = visitDateInExcel.format(tbOutcomeDate);
                                        tbOutcomeDate = mysqlDateTimeFormatter.parse(dateCheck + " "
                                                + curDatenew.getHours() + ":" + curDatenew.getMinutes() + ":"
                                                + curDatenew.getSeconds());
                                    } catch (ParseException e) {
                                        e.printStackTrace();
                                    }

                                    handleOncePerPatientObs(patient,
                                            Dictionary.getConcept(Dictionary.TB_OUTCOME_DATE), null, null,
                                            tbOutcomeDate, null, entbOIresultNew, null, v);
                                }
                                int flag = 0;

                                if (!legacyData.get(20).isEmpty()) {

                                    EncounterType HivdiscontEnrollEncType = MetadataUtils.existing(
                                            EncounterType.class,
                                            HivMetadata._EncounterType.HIV_DISCONTINUATION);
                                    Encounter hivDiscontEncounter = new Encounter();

                                    hivDiscontEncounter.setEncounterType(HivdiscontEnrollEncType);
                                    hivDiscontEncounter.setPatient(patient);

                                    hivDiscontEncounter.setDateCreated(curDate);
                                    hivDiscontEncounter.setEncounterDatetime(dateVisit);
                                    hivDiscontEncounter.setLocation(
                                            Context.getService(KenyaEmrService.class).getDefaultLocation());

                                    hivDiscontEncounter.setForm(MetadataUtils.existing(Form.class,
                                            HivMetadata._Form.HIV_DISCONTINUATION));
                                    hivDiscontEncounter.setVisit(v);
                                    hivDiscontEncounter.setVoided(false);
                                    Encounter enhivDiscontresultNew = Context.getEncounterService()
                                            .saveEncounter(hivDiscontEncounter);

                                    Concept endOfFollowup = Context.getConceptService()
                                            .getConcept(Integer.parseInt(legacyData.get(20)));
                                    if (legacyData.get(20).equals("160034")) {
                                        handleOncePerPatientObs(patient,
                                                Dictionary.getConcept(
                                                        Dictionary.REASON_FOR_PROGRAM_DISCONTINUATION),
                                                endOfFollowup, null, null, null, enhivDiscontresultNew, null,
                                                v);
                                        handleOncePerPatientObs(patient,
                                                Dictionary.getConcept(Dictionary.DEATH_DATE), null, null,
                                                dateVisit, null, enhivDiscontresultNew, null, v);
                                        flag = 1;

                                    } else if (legacyData.get(20).equals("159492")) {
                                        handleOncePerPatientObs(patient,
                                                Dictionary.getConcept(
                                                        Dictionary.REASON_FOR_PROGRAM_DISCONTINUATION),
                                                endOfFollowup, null, null, null, enhivDiscontresultNew, null,
                                                v);
                                        if (!legacyData.get(22).isEmpty()) {
                                            String transferdto = legacyData.get(22);

                                            handleOncePerPatientObs(patient,
                                                    Dictionary.getConcept(Dictionary.TRANSFERRED_OUT_TO), null,
                                                    transferdto, null, null, enhivDiscontresultNew, null, v);

                                        }
                                        handleOncePerPatientObs(patient,
                                                Dictionary.getConcept(Dictionary.DATE_TRANSFERRED_OUT), null,
                                                null, dateVisit, null, enhivDiscontresultNew, null, v);

                                    } else {
                                        handleOncePerPatientObs(patient,
                                                Dictionary.getConcept(
                                                        Dictionary.REASON_FOR_PROGRAM_DISCONTINUATION),
                                                endOfFollowup, null, null, null, enhivDiscontresultNew, null,
                                                v);

                                    }

                                    if (!legacyData.get(21).isEmpty()) {
                                        Date programcmpleteDate = null;
                                        Date curDatenew = new Date();
                                        try {
                                            programcmpleteDate = (Date) formatter.parse(legacyData.get(21));
                                            dateCheck = visitDateInExcel.format(programcmpleteDate);
                                            programcmpleteDate = mysqlDateTimeFormatter.parse(dateCheck + " "
                                                    + curDatenew.getHours() + ":" + curDatenew.getMinutes()
                                                    + ":" + curDatenew.getSeconds());
                                            Collection<PatientProgram> hivprogram = Context
                                                    .getProgramWorkflowService().getPatientPrograms(patient);
                                            for (PatientProgram prog : hivprogram) {
                                                if (prog.getPatient().equals(patient)) {
                                                    if (prog.getProgram().getUuid()
                                                            .equals("dfdc6d40-2f2f-463d-ba90-cc97350441a8")
                                                            && prog.getDateCompleted() == null) {
                                                        prog.setDateCompleted(programcmpleteDate);
                                                        Context.getProgramWorkflowService()
                                                                .savePatientProgram(prog);
                                                    }

                                                }
                                            }
                                        } catch (ParseException e) {
                                            e.printStackTrace();
                                        }

                                    }

                                }

                                if (!legacyData.get(23).isEmpty() && !legacyData.get(24).isEmpty()) {
                                    PatientProgram activeArtProgram = null;
                                    Collection<PatientProgram> artProgram = Context.getProgramWorkflowService()
                                            .getPatientPrograms(patient);
                                    for (PatientProgram artProg : artProgram) {
                                        if (artProg.getProgram().getUuid()
                                                .equals("96ec813f-aaf0-45b2-add6-e661d5bf79d6")
                                                && artProg.getDateCompleted() == null) {
                                            activeArtProgram = artProg;
                                        }
                                    }

                                    EncounterType ArtdiscontEnrollEncType = MetadataUtils
                                            .existing(EncounterType.class, ArtMetadata._EncounterType.STOP_ART);
                                    Encounter artDiscontEncounter = new Encounter();

                                    artDiscontEncounter.setEncounterType(ArtdiscontEnrollEncType);
                                    artDiscontEncounter.setPatient(patient);

                                    artDiscontEncounter.setDateCreated(curDate);
                                    artDiscontEncounter.setEncounterDatetime(dateVisit);
                                    artDiscontEncounter.setLocation(
                                            Context.getService(KenyaEmrService.class).getDefaultLocation());

                                    artDiscontEncounter.setForm(
                                            MetadataUtils.existing(Form.class, ArtMetadata._Form.STOP_ART));
                                    artDiscontEncounter.setVisit(v);
                                    artDiscontEncounter.setVoided(false);
                                    Encounter enartDiscontresultNew = Context.getEncounterService()
                                            .saveEncounter(artDiscontEncounter);
                                    Date programcmpleteDate = null;
                                    Date curDatenew = new Date();
                                    try {
                                        programcmpleteDate = (Date) formatter.parse(legacyData.get(23));
                                        dateCheck = visitDateInExcel.format(programcmpleteDate);
                                        programcmpleteDate = mysqlDateTimeFormatter.parse(dateCheck + " "
                                                + curDatenew.getHours() + ":" + curDatenew.getMinutes() + ":"
                                                + curDatenew.getSeconds());
                                        if (activeArtProgram != null) {
                                            activeArtProgram.setDateCompleted(programcmpleteDate);
                                        }
                                    } catch (ParseException e) {
                                        e.printStackTrace();
                                    }

                                    Context.getProgramWorkflowService().savePatientProgram(activeArtProgram);

                                    if (!legacyData.get(24).isEmpty()) {
                                        Concept endOfArt = Context.getConceptService()
                                                .getConcept(Integer.parseInt(legacyData.get(24)));

                                        handleOncePerPatientObs(patient,
                                                Context.getConceptService().getConceptByUuid(
                                                        "1252AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"),
                                                endOfArt, null, null, null, enartDiscontresultNew, null, v);

                                    }
                                }

                                EncounterType consultEnrollEncType = MetadataUtils.existing(EncounterType.class,
                                        CommonMetadata._EncounterType.CONSULTATION);
                                Encounter consultEncounter = new Encounter();

                                consultEncounter.setEncounterType(consultEnrollEncType);
                                consultEncounter.setPatient(patient);

                                consultEncounter.setDateCreated(curDate);
                                consultEncounter.setEncounterDatetime(dateVisit);
                                consultEncounter.setLocation(
                                        Context.getService(KenyaEmrService.class).getDefaultLocation());

                                consultEncounter.setForm(MetadataUtils.existing(Form.class,
                                        CommonMetadata._Form.CONSULTATION_ENCOUNTER));
                                consultEncounter.setVisit(v);
                                consultEncounter.setVoided(false);
                                Encounter enconsultresultNew = Context.getEncounterService()
                                        .saveEncounter(consultEncounter);
                                if (!legacyData.get(30).isEmpty()) {

                                    Concept sideffectsOfArt = Context.getConceptService()
                                            .getConcept(Integer.parseInt(legacyData.get(30)));

                                    handleOncePerPatientObs(patient,
                                            Context.getConceptService()
                                                    .getConceptByUuid("159935AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"),
                                            Dictionary.getConcept(Dictionary.YES), null, null, null,
                                            enconsultresultNew, null, v);
                                    handleOncePerPatientObs(patient,
                                            Dictionary.getConcept(Dictionary.ART_SIDE_EFFECTS_VALUES),
                                            sideffectsOfArt, null, null, null, enconsultresultNew, null, v);

                                }
                                if (!legacyData.get(31).isEmpty()) {

                                    String levelOfAdherence = legacyData.get(31);

                                    handleOncePerPatientObs(patient,
                                            Dictionary.getConcept(Dictionary.ART_ADHERENCE), null,
                                            levelOfAdherence, null, null, enconsultresultNew, null, v);

                                }
                                if (!legacyData.get(41).isEmpty()) {

                                    Concept temporaryreferal = Context.getConceptService()
                                            .getConcept(Integer.parseInt(legacyData.get(41)));

                                    handleOncePerPatientObs(patient,
                                            Context.getConceptService()
                                                    .getConceptByUuid("5e05d243-e039-4f04-9988-18d5a499329e"),
                                            Dictionary.getConcept(Dictionary.YES), null, null, null,
                                            enconsultresultNew, null, v);
                                    handleOncePerPatientObs(patient,
                                            Context.getConceptService()
                                                    .getConceptByUuid("c648f69b-7065-4255-9af2-6076348c87dc"),
                                            temporaryreferal, null, null, null, enconsultresultNew, null, v);

                                }
                                if (!legacyData.get(28).isEmpty()) {

                                    Concept tbOutcome = new Concept();
                                    String performance = legacyData.get(28);
                                    if (performance.equals("A")) {
                                        tbOutcome = Dictionary.getConcept(Dictionary.PERFSCALE_A);
                                    } else if (performance.equals("B")) {
                                        tbOutcome = Dictionary.getConcept(Dictionary.PERFSCALE_B);
                                    } else {
                                        tbOutcome = Dictionary.getConcept(Dictionary.PERFSCALE_C);
                                    }
                                    handleOncePerPatientObs(patient,
                                            Dictionary.getConcept(Dictionary.PERFORMANCE), tbOutcome, null,
                                            null, null, entbOIresultNew, null, v);
                                }

                                if (!legacyData.get(29).isEmpty()) {

                                    Concept tbOutcome = new Concept();
                                    String stage = legacyData.get(29);
                                    if (stage.equals("IV")) {
                                        tbOutcome = Dictionary.getConcept(Dictionary.WHO_STAGE_4_ADULT);
                                    } else if (stage.equals("III")) {
                                        tbOutcome = Dictionary.getConcept(Dictionary.WHO_STAGE_3_ADULT);
                                    } else if (stage.equals("II")) {
                                        tbOutcome = Dictionary.getConcept(Dictionary.WHO_STAGE_2_ADULT);
                                    } else {
                                        tbOutcome = Dictionary.getConcept(Dictionary.WHO_STAGE_1_ADULT);
                                    }
                                    handleOncePerPatientObs(patient,
                                            Dictionary.getConcept(Dictionary.CURRENT_WHO_STAGE), tbOutcome,
                                            null, null, null, entbOIresultNew, null, v);

                                }
                                EncounterType nextAppointEncType = MetadataUtils.existing(EncounterType.class,
                                        CommonMetadata._EncounterType.CONSULTATION);
                                Encounter nextAppointEncounter = new Encounter();

                                nextAppointEncounter.setEncounterType(nextAppointEncType);
                                nextAppointEncounter.setPatient(patient);

                                nextAppointEncounter.setDateCreated(curDate);
                                nextAppointEncounter.setEncounterDatetime(dateVisit);
                                nextAppointEncounter.setLocation(
                                        Context.getService(KenyaEmrService.class).getDefaultLocation());
                                nextAppointEncounter.setVisit(v);
                                nextAppointEncounter.setVoided(false);
                                Encounter ennextAppointresultNew = new Encounter();
                                if (!legacyData.get(32).isEmpty()) {
                                    ennextAppointresultNew = Context.getEncounterService()
                                            .saveEncounter(nextAppointEncounter);
                                }
                                if (!legacyData.get(32).isEmpty()) {
                                    SimpleDateFormat sdf = new SimpleDateFormat("E MMM dd HH:mm:ss Z yyyy");
                                    Date nextAppointDate = new Date();
                                    try {
                                        nextAppointDate = (Date) formatter.parse(legacyData.get(32));

                                    } catch (ParseException e) {
                                        e.printStackTrace();
                                    }

                                    handleOncePerPatientObs(patient,
                                            Dictionary.getConcept(Dictionary.RETURN_VISIT_DATE), null, null,
                                            nextAppointDate, null, ennextAppointresultNew, null, v);
                                }

                                // For OI or PROPHYLAXIS
                                if (!legacyData.get(33).isEmpty() || !legacyData.get(34).isEmpty()) {

                                    // For Duration of Medication
                                    if (!legacyData.get(6).isEmpty()) {

                                        EncounterType otherMedicationEnrollEncType = MetadataUtils.existing(
                                                EncounterType.class,
                                                CommonMetadata._EncounterType.CONSULTATION);
                                        Encounter otherMedEncounter = new Encounter();

                                        otherMedEncounter.setEncounterType(otherMedicationEnrollEncType);
                                        otherMedEncounter.setPatient(patient);

                                        otherMedEncounter.setDateCreated(curDate);
                                        otherMedEncounter.setEncounterDatetime(dateVisit);
                                        otherMedEncounter.setLocation(
                                                Context.getService(KenyaEmrService.class).getDefaultLocation());

                                        otherMedEncounter.setForm(MetadataUtils.existing(Form.class,
                                                CommonMetadata._Form.OTHER_MEDICATIONS));
                                        otherMedEncounter.setVisit(v);
                                        otherMedEncounter.setVoided(false);
                                        Encounter enotherresultNew = Context.getEncounterService()
                                                .saveEncounter(otherMedEncounter);

                                        String duration = legacyData.get(6);
                                        Double durationDouble = Double.parseDouble(duration);
                                        int durationInteger = Integer.parseInt(legacyData.get(6));

                                        /*
                                         * PROPHYLAXIS start
                                         */

                                        if (!legacyData.get(33).isEmpty()) {

                                            String value = legacyData.get(33);

                                            String[] valueList = value.split("\\s*,\\s*");

                                            for (String prop : valueList) {
                                                // Group for each Drug
                                                String text = "";
                                                Obs prophylGroup = new Obs();
                                                prophylGroup.setPerson(patient);
                                                prophylGroup.setConcept(
                                                        Context.getConceptService().getConceptByUuid(
                                                                "163022AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"));
                                                prophylGroup.setObsDatetime(
                                                        enotherresultNew.getEncounterDatetime());
                                                prophylGroup.setValueCoded(null);
                                                prophylGroup.setValueText(text);
                                                prophylGroup
                                                        .setLocation(Context.getService(KenyaEmrService.class)
                                                                .getDefaultLocation());

                                                prophylGroup.setEncounter(enotherresultNew);
                                                prophylGroup.setComment("1");
                                                Obs prophyl = Context.getObsService().saveObs(prophylGroup,
                                                        "KenyaEMR History Details");

                                                Concept oivalue = Context.getConceptService().getConcept(prop);

                                                // CPT for CTX
                                                if (oivalue.getUuid().toString()
                                                        .equals("105281AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA")) {
                                                    handleOncePerPatientObs(patient,
                                                            Dictionary.getConcept(Dictionary.CPT_VALUE),
                                                            Context.getConceptService().getConcept(1065), "",
                                                            null, null, enotherresultNew, null, v);
                                                }

                                                // IPT for Isoniazid
                                                if (oivalue.getUuid().toString()
                                                        .equals("78280AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA")) {
                                                    handleOncePerPatientObs(patient,
                                                            Dictionary.getConcept(Dictionary.IPT_VALUE),
                                                            Context.getConceptService().getConcept(1065), "",
                                                            null, null, enotherresultNew, null, v);
                                                }

                                                handleOncePerPatientObs(patient,
                                                        Dictionary.getConcept(Dictionary.PROPHYLAXIS), oivalue,
                                                        "", null, null, enotherresultNew, prophyl, v);

                                                handleOncePerPatientObs(patient,
                                                        Dictionary.getConcept(Dictionary.MEDICATION_DURATION),
                                                        null, "", null, durationDouble, enotherresultNew,
                                                        prophyl, v);

                                                // Capture Drug in Drug obs
                                                // processed
                                                DrugObsProcessed dop = new DrugObsProcessed();
                                                dop.setObs(prophyl);
                                                dop.setCreatedDate(curDate);
                                                dop.setPatient(patient);
                                                dop.setProcessedDate(dateVisit);
                                                dop.setQuantityPostProcess(durationInteger);

                                                KenyaEmrService kes = (KenyaEmrService) Context
                                                        .getService(KenyaEmrService.class);
                                                kes.saveDrugObsProcessed(dop);
                                            }

                                        }

                                        /*
                                         * PROPHYLAXIS End
                                         */

                                        if (!legacyData.get(34).isEmpty()) {

                                            String value = legacyData.get(34);

                                            String[] valueList = value.split("\\s*,\\s*");

                                            for (String oil : valueList) {
                                                // Group for each Drug
                                                String text = "";
                                                Obs oitreatmentGroup = new Obs();
                                                oitreatmentGroup.setPerson(patient);
                                                oitreatmentGroup.setConcept(
                                                        Context.getConceptService().getConceptByUuid(
                                                                "163021AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"));

                                                oitreatmentGroup.setObsDatetime(
                                                        enotherresultNew.getEncounterDatetime());

                                                oitreatmentGroup.setValueCoded(null);
                                                oitreatmentGroup.setValueText(text);
                                                oitreatmentGroup
                                                        .setLocation(Context.getService(KenyaEmrService.class)
                                                                .getDefaultLocation());

                                                oitreatmentGroup.setEncounter(enotherresultNew);
                                                oitreatmentGroup.setComment("1");
                                                Obs oitreat = Context.getObsService().saveObs(oitreatmentGroup,
                                                        "KenyaEMR History Details");

                                                Concept oivalue = Context.getConceptService().getConcept(oil);

                                                handleOncePerPatientObs(patient,
                                                        Dictionary.getConcept(Dictionary.OI_TREATMENT_DRUG),
                                                        oivalue, "", null, null, enotherresultNew, oitreat, v);

                                                handleOncePerPatientObs(patient,
                                                        Dictionary.getConcept(Dictionary.MEDICATION_DURATION),
                                                        null, "", null, durationDouble, enotherresultNew,
                                                        oitreat, v);

                                                // Capture Drug in Drug obs
                                                // processed
                                                DrugObsProcessed dop = new DrugObsProcessed();
                                                dop.setObs(oitreat);
                                                dop.setCreatedDate(curDate);
                                                dop.setPatient(patient);
                                                dop.setProcessedDate(dateVisit);
                                                dop.setQuantityPostProcess(durationInteger);

                                                KenyaEmrService kes = (KenyaEmrService) Context
                                                        .getService(KenyaEmrService.class);
                                                kes.saveDrugObsProcessed(dop);
                                            }
                                        }
                                    }
                                }

                                EncounterType recordEncType = MetadataUtils.existing(EncounterType.class,
                                        CommonMetadata._EncounterType.CONSULTATION);
                                Encounter recordEncounter = new Encounter();

                                recordEncounter.setEncounterType(recordEncType);
                                recordEncounter.setPatient(patient);

                                recordEncounter.setDateCreated(curDate);
                                recordEncounter.setEncounterDatetime(dateVisit);
                                recordEncounter.setLocation(
                                        Context.getService(KenyaEmrService.class).getDefaultLocation());

                                recordEncounter.setForm(
                                        MetadataUtils.existing(Form.class, CommonMetadata._Form.TRIAGE));
                                recordEncounter.setVisit(v);
                                recordEncounter.setVoided(false);
                                Encounter enrecordvitalresultNew = Context.getEncounterService()
                                        .saveEncounter(recordEncounter);
                                if (!legacyData.get(25).isEmpty()) {

                                    String labResult = legacyData.get(25);
                                    Double lab = Double.parseDouble(labResult);

                                    handleOncePerPatientObs(patient,
                                            Dictionary.getConcept(Dictionary.WEIGHT_KG), null, null, null, lab,
                                            enrecordvitalresultNew, null, v);

                                }

                                if (!legacyData.get(26).isEmpty()) {

                                    String labResult = legacyData.get(26);
                                    Double lab = Double.parseDouble(labResult);

                                    handleOncePerPatientObs(patient,
                                            Dictionary.getConcept(Dictionary.HEIGHT_CM), null, null, null, lab,
                                            enrecordvitalresultNew, null, v);

                                }

                                EncounterType hivEnrollEncType = MetadataUtils.existing(EncounterType.class,
                                        HivMetadata._EncounterType.HIV_ENROLLMENT);
                                EncounterType registrationEncType = MetadataUtils.existing(EncounterType.class,
                                        CommonMetadata._EncounterType.REGISTRATION);
                                Encounter obstericEncounter = new Encounter();

                                obstericEncounter.setEncounterType(registrationEncType);
                                obstericEncounter.setPatient(patient);

                                obstericEncounter.setDateCreated(curDate);
                                obstericEncounter.setEncounterDatetime(dateVisit);
                                obstericEncounter.setLocation(
                                        Context.getService(KenyaEmrService.class).getDefaultLocation());

                                obstericEncounter.setForm(
                                        MetadataUtils.existing(Form.class, Metadata.Form.OBSTETRIC_HISTORY));
                                obstericEncounter.setVisit(v);
                                obstericEncounter.setVoided(false);
                                Encounter enobstericrecordresultNew = Context.getEncounterService()
                                        .saveEncounter(obstericEncounter);
                                if (!legacyData.get(42).isEmpty()) {

                                    Concept pregstatus = Context.getConceptService()
                                            .getConcept(Integer.parseInt(legacyData.get(42)));
                                    handleOncePerPatientObs(patient,
                                            Dictionary.getConcept(Dictionary.PREGNANCY_STATUS), pregstatus, "",
                                            null, null, enobstericrecordresultNew, null, v);

                                }
                                if (!legacyData.get(43).isEmpty()) {

                                    Concept familyplanningstatus = Dictionary.getConcept(Dictionary.YES);

                                    handleOncePerPatientObs(patient,
                                            Context.getConceptService()
                                                    .getConceptByUuid("5271AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"),
                                            familyplanningstatus, "", null, null, enobstericrecordresultNew,
                                            null, v);

                                }
                                if (!legacyData.get(43).isEmpty()) {

                                    Concept familyplanningvalue = Context.getConceptService()
                                            .getConcept(Integer.parseInt(legacyData.get(43)));

                                    handleOncePerPatientObs(patient,
                                            Dictionary.getConcept(Dictionary.METHOD_OF_FAMILY_PLANNING),
                                            familyplanningvalue, "", null, null, enobstericrecordresultNew,
                                            null, v);

                                }

                                DateFormat visitDatesInExcel = new SimpleDateFormat("dd-MMM-yyyy");
                                String dateChecks = visitDatesInExcel.format(dateVisit);
                                if (legacyData.get(3) != null) {
                                    Date Datenew = new Date();
                                    try {
                                        dateVisit = mysqlDateTimeFormatter
                                                .parse(dateChecks + " " + Datenew.getHours() + ":"
                                                        + Datenew.getMinutes() + ":" + Datenew.getSeconds());

                                    } catch (ParseException e) {
                                        dateVisit = Datenew;

                                        e.printStackTrace();
                                    }
                                }

                                v.setStopDatetime(dateVisit);

                                Context.getVisitService().saveVisit(v);

                                if (flag == 1) {
                                    person.setDead(true);
                                    person.setDeathDate(dateVisit);
                                    person.setCauseOfDeath(Dictionary.getConcept(Dictionary.UNKNOWN));
                                    Context.getPersonService().savePerson(person);
                                }
                            }

                        }

                        catch (IndexOutOfBoundsException e) {
                            e.printStackTrace();
                        }
                    } else {
                        break;
                    }
                }
            } catch (IndexOutOfBoundsException e) {
                break;
            }

            rowCountVisit++;
        }
    }

    inputStream.close();
    // workbook.close();
    return new SuccessResult("Saved Patient Data");
}

From source file:pcgen.core.Equipment.java

/**
 * Gets the acModAdjustedForSize attribute of the Equipment object
 * //from w ww  .  j  ava  2  s.  c  om
 * @param aPC    The PC with the Equipment
 * @param baseEq The unmodified Equipment
 * @param newSA  The size to adjust for
 */
private void adjustACForSize(final PlayerCharacter aPC, final Equipment baseEq, final SizeAdjustment newSA) {
    if ((getRawBonusList(aPC) != null) && isArmor()) {
        double mult = 1.0;
        final SizeAdjustment currSA = baseEq.getSafe(ObjectKey.SIZE).get();

        if ((newSA != null) && aPC != null) {
            mult = aPC.getSizeBonusTo(newSA, "ACVALUE", baseEq.typeList(), 1.0)
                    / aPC.getSizeBonusTo(currSA, "ACVALUE", baseEq.typeList(), 1.0);
        }

        final List<BonusObj> baseEqBonusList = baseEq.getRawBonusList(aPC);
        final List<BonusObj> eqBonusList = getRawBonusList(aPC);

        //
        // Go through the bonus list looking for COMBAT|AC|x and resize
        // bonus
        // Assumption: baseEq.bonusList and this.bonusList only differ in
        // COMBAT|AC|x bonuses
        //
        for (int i = eqBonusList.size() - 1; i >= 0; --i) {
            final BonusObj aBonus = eqBonusList.get(i);
            String aString = aBonus.toString();

            if (aString.startsWith("COMBAT|AC|")) {
                final int iOffs = aString.indexOf('|', 10);

                if (iOffs > 10) {
                    /*
                     * TODO This is bad behavior to alter this list, 
                     * which - theoretically - shouldn't be altered 
                     * after data load.  However, given .REPLACE
                     * potential in BONUS objects, I can't find
                     * another quick solution to this problem
                     * - thpr 10/9/08
                     */
                    removeFromListFor(ListKey.BONUS, aBonus);
                }
            }
        }

        for (final BonusObj aBonus : baseEqBonusList) {
            String aString = aBonus.toString();

            if (aString.startsWith("COMBAT|AC|")) {
                final int iOffs = aString.indexOf('|', 10);

                if (iOffs > 10) {
                    Integer acCombatBonus = Integer.valueOf(aString.substring(10, iOffs));
                    double d = acCombatBonus.doubleValue() * mult;
                    acCombatBonus = (int) d;
                    aString = aString.substring(0, 10) + acCombatBonus.toString() + aString.substring(iOffs);
                    /*
                     * TODO This is bad behavior to alter this list, 
                     * which - theoretically - shouldn't be altered 
                     * after data load.  However, given .REPLACE
                     * potential in BONUS objects, I can't find
                     * another quick solution to this problem
                     * - thpr 10/9/08
                     */
                    BonusObj b = Bonus.newBonus(Globals.getContext(), aString);
                    if (b != null) {
                        addToListFor(ListKey.BONUS, b);
                    }
                }
            }
        }
    }
}

From source file:com.lp.server.fertigung.ejbfac.FertigungFacBean.java

public void aendereLosgroesse(Integer losIId, Integer neueLosgroesse,
        boolean bUeberzaehligesMaterialZurueckgeben, TheClientDto theClientDto) {
    LosDto losDto = losFindByPrimaryKey(losIId);
    if (losDto.getStatusCNr().equals(FertigungFac.STATUS_AUSGEGEBEN)
            || losDto.getStatusCNr().equals(FertigungFac.STATUS_IN_PRODUKTION)
            || losDto.getStatusCNr().equals(FertigungFac.STATUS_GESTOPPT)
            || losDto.getStatusCNr().equals(FertigungFac.STATUS_TEILERLEDIGT)) {

        if (!losDto.getNLosgroesse().equals(new BigDecimal(neueLosgroesse))) {

            BigDecimal bdErledigte = getErledigteMenge(losDto.getIId(), theClientDto);

            if (bdErledigte.doubleValue() > neueLosgroesse.doubleValue()) {
                throw new EJBExceptionLP(
                        EJBExceptionLP.FEHLER_FERTIGUNG_AENDERUNG_LOGROESSE_ZUVIELEABLIEFERUNGEN,
                        new Exception("bdErledigte.doubleValue()>neueLosgroesse.doubleValue()"));
            }/*www  .j  a  va 2s.  c om*/

            Los los = em.find(Los.class, losDto.getIId());
            los.setNLosgroesse(new BigDecimal(neueLosgroesse));
            em.merge(los);
            em.flush();

            // Material
            LossollmaterialDto[] dtos = lossollmaterialFindByLosIId(losIId);
            for (int i = 0; i < dtos.length; i++) {
                LossollmaterialDto dto = dtos[i];
                // Sollmengen aendern
                BigDecimal sollsatzgroesse = dto.getNMenge().divide(losDto.getNLosgroesse(), 10,
                        BigDecimal.ROUND_HALF_EVEN);
                dto.setNMenge(
                        Helper.rundeKaufmaennisch(sollsatzgroesse.multiply(new BigDecimal(neueLosgroesse)), 3));
                updateLossollmaterial(dto, theClientDto);

                // Wenn kleiner je nach parameter
                // bUeberzaehligesMaterialZurueckgeben material
                // zurueckbuchen
                if (neueLosgroesse.doubleValue() < losDto.getNLosgroesse().doubleValue()
                        && bUeberzaehligesMaterialZurueckgeben == true) {
                    BigDecimal bdAusgegeben = getAusgegebeneMenge(dto.getIId(), null, theClientDto);
                    BigDecimal diff = bdAusgegeben.subtract(dto.getNMenge());
                    if (diff.doubleValue() > 0) {

                        LosistmaterialDto[] dtosLosist = losistmaterialFindByLossollmaterialIId(dto.getIId());

                        for (int j = 0; j < dtosLosist.length; j++) {
                            if (diff.doubleValue() > 0) {
                                BigDecimal istmenge = dtosLosist[j].getNMenge();

                                BigDecimal bdMengeNeu = null;

                                if (diff.doubleValue() > istmenge.doubleValue()) {
                                    bdMengeNeu = new BigDecimal(0);
                                    diff = diff.subtract(istmenge);
                                } else {
                                    bdMengeNeu = istmenge.subtract(diff);
                                    diff = new BigDecimal(0);
                                }

                                updateLosistmaterialMenge(dtosLosist[j].getIId(), bdMengeNeu, theClientDto);
                            }
                        }
                    }
                }

                // Fehlmengen aktualisieren
                try {
                    getFehlmengeFac().aktualisiereFehlmenge(LocaleFac.BELEGART_LOS, dto.getIId(), false,
                            theClientDto);
                } catch (RemoteException e) {
                    throwEJBExceptionLPRespectOld(e);
                }
            }

            // Arbeitsplan
            LossollarbeitsplanDto[] arbeitsplan = lossollarbeitsplanFindByLosIId(losIId);
            for (int i = 0; i < arbeitsplan.length; i++) {
                LossollarbeitsplanDto dto = arbeitsplan[i];
                // Gesamtzeit wird austomatisch aktualisiert
                updateLossollarbeitsplan(dto, theClientDto);

            }

        }

    } else {
        if (losDto.getStatusCNr().equals(FertigungFac.STATUS_STORNIERT)) {
            throw new EJBExceptionLP(EJBExceptionLP.FEHLER_FERTIGUNG_DAS_LOS_IST_STORNIERT,
                    new Exception("los " + losDto.getCNr() + " ist storniert"));
        } else if (losDto.getStatusCNr().equals(FertigungFac.STATUS_ERLEDIGT)) {
            throw new EJBExceptionLP(EJBExceptionLP.FEHLER_FERTIGUNG_DAS_LOS_IST_BEREITS_ERLEDIGT,
                    new Exception("los " + losDto.getCNr() + " ist bereits erledigt"));
        } else if (losDto.getStatusCNr().equals(FertigungFac.STATUS_ANGELEGT)) {
            throw new EJBExceptionLP(EJBExceptionLP.FEHLER_FERTIGUNG_DAS_LOS_IST_NOCH_NICHT_AUSGEGEBEN,
                    new Exception("los " + losDto.getCNr() + " ist noch nicht ausgegeben"));
        }
    }
}