@Override public void writeCompleteDataSetRegistrationsJson( Date lastUpdated, OutputStream outputStream, IdSchemes idSchemes ) { String dsScheme = idSchemes.getDataSetIdScheme().getIdentifiableString().toLowerCase(); String ouScheme = idSchemes.getOrgUnitIdScheme().getIdentifiableString().toLowerCase(); String ocScheme = idSchemes.getCategoryOptionComboIdScheme().getIdentifiableString().toLowerCase(); CompleteDataSetRegistrations completeDataSetRegistrations = new StreamingJsonCompleteDataSetRegistrations( outputStream ); final String completenessSql = "select ds." + dsScheme + " as dsid, pe.startdate as pestart, pt.name as ptname, ou." + ouScheme + " as ouid, aoc." + ocScheme + " as aocid, " + "cdr.date, cdr.storedby, cdr.lastupdatedby, cdr.lastupdated, cdr.completed as iscompleted " + "from completedatasetregistration cdr " + "join dataset ds on ( cdr.datasetid=ds.datasetid ) " + "join period pe on ( cdr.periodid=pe.periodid ) " + "join periodtype pt on ( pe.periodtypeid=pt.periodtypeid ) " + "join organisationunit ou on ( cdr.sourceid=ou.organisationunitid ) " + "join categoryoptioncombo aoc on ( cdr.attributeoptioncomboid=aoc.categoryoptioncomboid ) " + "where cdr.lastupdated >= '" + DateUtils.getLongDateString( lastUpdated ) + "'"; writeCompleteness( completenessSql, completeDataSetRegistrations ); }
@Override public void writeDataValueSetJson( Date lastUpdated, OutputStream outputStream, IdSchemes idSchemes ) { String deScheme = idSchemes.getDataElementIdScheme().getIdentifiableString().toLowerCase(); String ouScheme = idSchemes.getOrgUnitIdScheme().getIdentifiableString().toLowerCase(); String ocScheme = idSchemes.getCategoryOptionComboIdScheme().getIdentifiableString().toLowerCase(); DataValueSet dataValueSet = new StreamingJsonDataValueSet( outputStream ); final String sql = "select de." + deScheme + " as deid, pe.startdate as pestart, pt.name as ptname, ou." + ouScheme + " as ouid, " + "coc." + ocScheme + " as cocid, aoc." + ocScheme + " as aocid, " + "dv.value, dv.storedby, dv.created, dv.lastupdated, dv.comment, dv.followup, dv.deleted " + "from datavalue dv " + "join dataelement de on (dv.dataelementid=de.dataelementid) " + "join period pe on (dv.periodid=pe.periodid) " + "join periodtype pt on (pe.periodtypeid=pt.periodtypeid) " + "join organisationunit ou on (dv.sourceid=ou.organisationunitid) " + "join categoryoptioncombo coc on (dv.categoryoptioncomboid=coc.categoryoptioncomboid) " + "join categoryoptioncombo aoc on (dv.attributeoptioncomboid=aoc.categoryoptioncomboid) " + "where dv.lastupdated >= '" + DateUtils.getLongDateString( lastUpdated ) + "'"; writeDataValueSet( sql, new DataExportParams(), null, dataValueSet ); }
@Override public void writeDataValueSetJson( Date lastUpdated, OutputStream outputStream, IdSchemes idSchemes, int pageSize, int page ) { String deScheme = idSchemes.getDataElementIdScheme().getIdentifiableString().toLowerCase(); String ouScheme = idSchemes.getOrgUnitIdScheme().getIdentifiableString().toLowerCase(); String ocScheme = idSchemes.getCategoryOptionComboIdScheme().getIdentifiableString().toLowerCase(); DataValueSet dataValueSet = new StreamingJsonDataValueSet( outputStream ); int offset = (page - 1) * pageSize; final String sql = "select de." + deScheme + " as deid, pe.startdate as pestart, pt.name as ptname, ou." + ouScheme + " as ouid, " + "coc." + ocScheme + " as cocid, aoc." + ocScheme + " as aocid, " + "dv.value, dv.storedby, dv.created, dv.lastupdated, dv.comment, dv.followup, dv.deleted " + "from datavalue dv " + "join dataelement de on (dv.dataelementid=de.dataelementid) " + "join period pe on (dv.periodid=pe.periodid) " + "join periodtype pt on (pe.periodtypeid=pt.periodtypeid) " + "join organisationunit ou on (dv.sourceid=ou.organisationunitid) " + "join categoryoptioncombo coc on (dv.categoryoptioncomboid=coc.categoryoptioncomboid) " + "join categoryoptioncombo aoc on (dv.attributeoptioncomboid=aoc.categoryoptioncomboid) " + "where dv.lastupdated >= '" + DateUtils.getLongDateString( lastUpdated ) + "' " + "order by pe.startdate asc, dv.created asc, deid asc limit " + pageSize + " offset " + offset; writeDataValueSet( sql, new DataExportParams(), null, dataValueSet ); }
/** * Limit valid IdSchemes for export to UID, CODE, NAME */ private static void limitToValidIdSchemes( ExportParams params ) { IdSchemes schemes = params.getOutputIdSchemes(); // If generic IdScheme is set to ID -> override to UID, for others: nullify field (inherits from generic scheme) if ( !EXPORT_ID_SCHEMES.contains( schemes.getIdScheme() ) ) { schemes.setIdScheme( IdScheme.UID.getIdentifiableString() ); } if ( !EXPORT_ID_SCHEMES.contains( schemes.getDataSetIdScheme() ) ) { schemes.setDataSetIdScheme( IdScheme.UID.getIdentifiableString() ); } if ( !EXPORT_ID_SCHEMES.contains( schemes.getOrgUnitIdScheme() ) ) { schemes.setOrgUnitIdScheme( IdScheme.UID.getIdentifiableString() ); } if ( !EXPORT_ID_SCHEMES.contains( schemes.getAttributeOptionComboIdScheme() ) ) { schemes.setAttributeOptionComboIdScheme( IdScheme.UID.getIdentifiableString() ); } params.setOutputIdSchemes( schemes ); }
private static String createQuery( ExportParams params ) { IdSchemes idSchemes = params.getOutputIdSchemes() != null ? params.getOutputIdSchemes() : new IdSchemes(); ImmutableMap.Builder<String, String> namedParamsBuilder = ImmutableMap.<String, String>builder() .put( DATA_SET_SCHEME, idSchemes.getDataSetIdScheme().getIdentifiableString().toLowerCase() ) .put( ORG_UNIT_SCHEME, idSchemes.getOrgUnitIdScheme().getIdentifiableString().toLowerCase() ) .put( ATTR_OPT_COMBO_SCHEME, idSchemes.getAttributeOptionComboIdScheme().getIdentifiableString().toLowerCase() ); String sql = "SELECT ds.${dsScheme} AS dsid, pe.startdate AS pe_start, pt.name AS ptname, ou.${ouScheme} AS ouid, " + "aoc.${aocScheme} AS aocid, cdsr.storedby AS storedby, cdsr.date AS created " + "FROM completedatasetregistration cdsr " + "INNER JOIN dataset ds ON ( cdsr.datasetid=ds.datasetid ) " + "INNER JOIN period pe ON ( cdsr.periodid=pe.periodid ) " + "INNER JOIN periodtype pt ON ( pe.periodtypeid=pt.periodtypeid ) " + "INNER JOIN organisationunit ou ON ( cdsr.sourceid=ou.organisationunitid ) " + "INNER JOIN categoryoptioncombo aoc ON ( cdsr.attributeoptioncomboid = aoc.categoryoptioncomboid ) "; sql += createOrgUnitGroupJoin( params ); sql += createDataSetClause( params, namedParamsBuilder ); sql += createOrgUnitClause( params, namedParamsBuilder ); sql += createPeriodClause( params, namedParamsBuilder ); sql += createCreatedClause( params, namedParamsBuilder ); sql += createLimitClause( params, namedParamsBuilder ); sql = new StrSubstitutor( namedParamsBuilder.build(), "${", "}" ).replace( sql ); log.debug( "CompleteDataSetRegistrations query: " + sql ); return sql; }
String idScheme = ObjectUtils.firstNonNull( params.getOutputIdScheme(), IdScheme.UID ).getIdentifiableString().toLowerCase();
String deScheme = idScheme.getDataElementIdScheme().getIdentifiableString().toLowerCase(); String ouScheme = idScheme.getOrgUnitIdScheme().getIdentifiableString().toLowerCase(); String cocScheme = idScheme.getCategoryOptionComboIdScheme().getIdentifiableString().toLowerCase();