|
// Funcion copiada vilmente desde http://phpjs.org/functions/get_html_translation_table:416 |
|
function get_html_translation_table (table, quote_style) { |
|
// http://kevin.vanzonneveld.net |
|
// + original by: Philip Peterson |
|
// + revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) |
|
// + bugfixed by: noname |
|
// + bugfixed by: Alex |
|
// + bugfixed by: Marco |
|
// + bugfixed by: madipta |
|
// + improved by: KELAN |
|
// + improved by: Brett Zamir (http://brett-zamir.me) |
|
// + bugfixed by: Brett Zamir (http://brett-zamir.me) |
|
// + input by: Frank Forte |
|
// + bugfixed by: T.Wild |
|
// + input by: Ratheous |
|
// % note: It has been decided that we're not going to add global |
|
// % note: dependencies to php.js, meaning the constants are not |
|
// % note: real constants, but strings instead. Integers are also supported if someone |
|
// % note: chooses to create the constants themselves. |
|
// * example 1: get_html_translation_table('HTML_SPECIALCHARS'); |
|
// * returns 1: {'"': '"', '&': '&', '<': '<', '>': '>'} |
|
var entities = {}, |
|
hash_map = {}, |
|
decimal = 0, |
|
symbol = ''; |
|
var constMappingTable = {}, |
|
constMappingQuoteStyle = {}; |
|
var useTable = {}, |
|
useQuoteStyle = {}; |
|
|
|
// Translate arguments |
|
constMappingTable[0] = 'HTML_SPECIALCHARS'; |
|
constMappingTable[1] = 'HTML_ENTITIES'; |
|
constMappingQuoteStyle[0] = 'ENT_NOQUOTES'; |
|
constMappingQuoteStyle[2] = 'ENT_COMPAT'; |
|
constMappingQuoteStyle[3] = 'ENT_QUOTES'; |
|
|
|
useTable = !isNaN(table) ? constMappingTable[table] : table ? table.toUpperCase() : 'HTML_SPECIALCHARS'; |
|
useQuoteStyle = !isNaN(quote_style) ? constMappingQuoteStyle[quote_style] : quote_style ? quote_style.toUpperCase() : 'ENT_COMPAT'; |
|
|
|
if (useTable !== 'HTML_SPECIALCHARS' && useTable !== 'HTML_ENTITIES') { |
|
throw new Error("Table: " + useTable + ' not supported'); |
|
// return false; |
|
} |
|
|
|
entities['38'] = '&'; |
|
if (useTable === 'HTML_ENTITIES') { |
|
entities['160'] = ' '; |
|
entities['161'] = '¡'; |
|
entities['162'] = '¢'; |
|
entities['163'] = '£'; |
|
entities['164'] = '¤'; |
|
entities['165'] = '¥'; |
|
entities['166'] = '¦'; |
|
entities['167'] = '§'; |
|
entities['168'] = '¨'; |
|
entities['169'] = '©'; |
|
entities['170'] = 'ª'; |
|
entities['171'] = '«'; |
|
entities['172'] = '¬'; |
|
entities['173'] = '­'; |
|
entities['174'] = '®'; |
|
entities['175'] = '¯'; |
|
entities['176'] = '°'; |
|
entities['177'] = '±'; |
|
entities['178'] = '²'; |
|
entities['179'] = '³'; |
|
entities['180'] = '´'; |
|
entities['181'] = 'µ'; |
|
entities['182'] = '¶'; |
|
entities['183'] = '·'; |
|
entities['184'] = '¸'; |
|
entities['185'] = '¹'; |
|
entities['186'] = 'º'; |
|
entities['187'] = '»'; |
|
entities['188'] = '¼'; |
|
entities['189'] = '½'; |
|
entities['190'] = '¾'; |
|
entities['191'] = '¿'; |
|
entities['192'] = 'À'; |
|
entities['193'] = 'Á'; |
|
entities['194'] = 'Â'; |
|
entities['195'] = 'Ã'; |
|
entities['196'] = 'Ä'; |
|
entities['197'] = 'Å'; |
|
entities['198'] = 'Æ'; |
|
entities['199'] = 'Ç'; |
|
entities['200'] = 'È'; |
|
entities['201'] = 'É'; |
|
entities['202'] = 'Ê'; |
|
entities['203'] = 'Ë'; |
|
entities['204'] = 'Ì'; |
|
entities['205'] = 'Í'; |
|
entities['206'] = 'Î'; |
|
entities['207'] = 'Ï'; |
|
entities['208'] = 'Ð'; |
|
entities['209'] = 'Ñ'; |
|
entities['210'] = 'Ò'; |
|
entities['211'] = 'Ó'; |
|
entities['212'] = 'Ô'; |
|
entities['213'] = 'Õ'; |
|
entities['214'] = 'Ö'; |
|
entities['215'] = '×'; |
|
entities['216'] = 'Ø'; |
|
entities['217'] = 'Ù'; |
|
entities['218'] = 'Ú'; |
|
entities['219'] = 'Û'; |
|
entities['220'] = 'Ü'; |
|
entities['221'] = 'Ý'; |
|
entities['222'] = 'Þ'; |
|
entities['223'] = 'ß'; |
|
entities['224'] = 'à'; |
|
entities['225'] = 'á'; |
|
entities['226'] = 'â'; |
|
entities['227'] = 'ã'; |
|
entities['228'] = 'ä'; |
|
entities['229'] = 'å'; |
|
entities['230'] = 'æ'; |
|
entities['231'] = 'ç'; |
|
entities['232'] = 'è'; |
|
entities['233'] = 'é'; |
|
entities['234'] = 'ê'; |
|
entities['235'] = 'ë'; |
|
entities['236'] = 'ì'; |
|
entities['237'] = 'í'; |
|
entities['238'] = 'î'; |
|
entities['239'] = 'ï'; |
|
entities['240'] = 'ð'; |
|
entities['241'] = 'ñ'; |
|
entities['242'] = 'ò'; |
|
entities['243'] = 'ó'; |
|
entities['244'] = 'ô'; |
|
entities['245'] = 'õ'; |
|
entities['246'] = 'ö'; |
|
entities['247'] = '÷'; |
|
entities['248'] = 'ø'; |
|
entities['249'] = 'ù'; |
|
entities['250'] = 'ú'; |
|
entities['251'] = 'û'; |
|
entities['252'] = 'ü'; |
|
entities['253'] = 'ý'; |
|
entities['254'] = 'þ'; |
|
entities['255'] = 'ÿ'; |
|
} |
|
|
|
if (useQuoteStyle !== 'ENT_NOQUOTES') { |
|
entities['34'] = '"'; |
|
} |
|
if (useQuoteStyle === 'ENT_QUOTES') { |
|
entities['39'] = '''; |
|
} |
|
entities['60'] = '<'; |
|
entities['62'] = '>'; |
|
|
|
// Agrego los entities que faltan de IRA |
|
entities['8804'] = '≤'; |
|
entities['8805'] = '≥'; |
|
entities['946'] = 'β'; |
|
|
|
// ascii decimals to real symbols |
|
for (decimal in entities) { |
|
symbol = String.fromCharCode(decimal); |
|
hash_map[symbol] = entities[decimal]; |
|
} |
|
|
|
return hash_map; |
|
} |
|
|
|
// Funcion copiada vilmente desde http://phpjs.org/functions/html_entity_decode:424 |
|
function html_entity_decode (string, quote_style) { |
|
// http://kevin.vanzonneveld.net |
|
// + original by: john (http://www.jd-tech.net) |
|
// + input by: ger |
|
// + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) |
|
// + revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) |
|
// + bugfixed by: Onno Marsman |
|
// + improved by: marc andreu |
|
// + revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) |
|
// + input by: Ratheous |
|
// + bugfixed by: Brett Zamir (http://brett-zamir.me) |
|
// + input by: Nick Kolosov (http://sammy.ru) |
|
// + bugfixed by: Fox |
|
// - depends on: get_html_translation_table |
|
// * example 1: html_entity_decode('Kevin & van Zonneveld'); |
|
// * returns 1: 'Kevin & van Zonneveld' |
|
// * example 2: html_entity_decode('&lt;'); |
|
// * returns 2: '<' |
|
var hash_map = {}, |
|
symbol = '', |
|
tmp_str = '', |
|
entity = ''; |
|
tmp_str = string.toString(); |
|
|
|
if (false === (hash_map = this.get_html_translation_table('HTML_ENTITIES', quote_style))) { |
|
return false; |
|
} |
|
|
|
// fix & problem |
|
// http://phpjs.org/functions/get_html_translation_table:416#comment_97660 |
|
delete(hash_map['&']); |
|
hash_map['&'] = '&'; |
|
|
|
for (symbol in hash_map) { |
|
entity = hash_map[symbol]; |
|
tmp_str = tmp_str.split(entity).join(symbol); |
|
} |
|
tmp_str = tmp_str.split(''').join("'"); |
|
|
|
return tmp_str; |
|
} |
|
|
|
function param_sencillo(param, col, db2){ |
|
// Funcion para procesar un parametro sencillo |
|
// @param: param Object Recibe un JSON con un cod_param de la tabla parametros |
|
// @param: col String Nombre de la collecion donde guardar este parametro |
|
// @param: db2 Object Enlace a la nueva Base de Datos. |
|
// return: ret Array Matriz de objetos con el nuevoId de la nueva BD |
|
|
|
var ret = []; |
|
|
|
db.vlr_param.find({cod_param1:param.cod_param}).forEach(function(param_valor){ |
|
var registro = {}; |
|
registro.cod1 = param_valor.cod_param1; |
|
registro.vlr1 = param_valor.cod_vlrparam1; |
|
registro.nombre = html_entity_decode(param_valor.descrip_vlrparam); |
|
var reg = {nombre:registro.nombre}; |
|
db2[col].save(reg); |
|
registro.nuevoId = reg._id.toString(); |
|
registro.col = col; |
|
ret.push(registro); |
|
db2.registro_migracion.save(registro); |
|
}) |
|
return ret; |
|
} |
|
|
|
function param_compuesto(idPadre, param, col, db2){ |
|
// Funcion para procesar un parametro compuesto |
|
// @param: idPadre String id del parametro padre segun la organizacion vieja |
|
// @param: param Object Recibe un JSON con un cod_param de la tabla parametros |
|
// @param: col String Nombre de la collecion donde guardar este parametro |
|
// @param: db2 Object Enlace a la nueva Base de Datos. |
|
// return: ret Array Matriz de objetos con el nuevoId de la nueva BD |
|
|
|
var ret = []; |
|
|
|
db.vlr_param.find({cod_param1:idPadre,cod_param2:param.cod_param1, cod_vlrparam2:param.cod_vlrparam1}) |
|
.forEach(function(valor){ |
|
var registro = {}; |
|
registro.cod1 = valor.cod_param1; |
|
registro.vlr1 = valor.cod_vlrparam1; |
|
registro.cod2 = valor.cod_param2; |
|
registro.vlr2 = valor.cod_vlrparam2; |
|
registro.nombre = html_entity_decode(valor.descrip_vlrparam); |
|
var reg = {nombre:registro.nombre}; |
|
db2[col].save(reg); |
|
registro.nuevoId = reg._id.toString(); |
|
registro.col = col; |
|
ret.push(registro); |
|
db2.registro_migracion.save(registro); |
|
}) |
|
return ret; |
|
} |
|
|
|
function migrar_anexos(dir, col, db2){ |
|
// Funcion que se encarga de migrar los adjuntos y retornar un array con las asociaciones nuevas |
|
// @param: dir String Path donde se van a guardar los PDFs |
|
// @param: col String Nombre de la collecion donde guardar este parametro |
|
// @param: db2 Object Enlace a la nueva Base de Datos. |
|
// return: ret Array Matriz de objetos con el nuevoId de la nueva BD |
|
|
|
var ret = []; |
|
|
|
db.vlr_adjuntos.find().forEach(function(anexo){ |
|
var registro = {}; |
|
registro.cod_param = anexo.cod_param; |
|
registro.cod_adjunto = anexo.cod_adjunto; |
|
registro.nombre = html_entity_decode(anexo.descrip_adjunto); |
|
var reg = { nombre:anexo.url_archivo, |
|
descripcion:registro.nombre, |
|
archivo_path:dir+'/'+anexo.url_archivo, |
|
mime:'application/pdf' |
|
} |
|
db2[col].save(reg); |
|
registro.nuevoId = reg._id.toString(); |
|
registro.col = col; |
|
ret.push(registro); |
|
db2.registro_migracion.save(registro); |
|
}); |
|
return ret; |
|
} |
|
|
|
// Enlace de conexion con la nueva DB |
|
// Cambie aqui el nombre de la DB de destino |
|
var ndb = db.getMongo().getDB('ira-sipds-migrada'); |
|
|
|
print('-------- MIGRANDO PARAMETROS --------'); |
|
db.parametros.find().forEach(function(param){ |
|
if (param.cod_paramt != 'NULL'){ |
|
db.parametros.find({cod_param:param.cod_paramt}).forEach(function(real){ |
|
db.vlr_param.find({cod_param1:real.cod_param}).forEach(function(parametro){ |
|
if (parametro.cod_param1 == 21 && parametro.cod_vlrparam1 == 1){ |
|
// Migramos las condiciones del Paciente |
|
print(' -- Condiciones del Paciente --'); |
|
var cond_pac = param_compuesto(param.cod_param, parametro, 'condicionpacs', ndb); |
|
print(' Fueron creadas '+cond_pac.length+' condiciones'); |
|
} |
|
|
|
if (parametro.cod_param1 == 21 && parametro.cod_vlrparam1 == 2){ |
|
// MIgramos las condiciones generales de la prueba |
|
print(' -- Condiciones Generales de la prueba --'); |
|
var cond_gen = param_compuesto(param.cod_param, parametro, 'condicions', ndb); |
|
print(' Fueron creadas '+cond_gen.length+' condiciones'); |
|
} |
|
|
|
if (parametro.cod_param1 == 22 && parametro.cod_vlrparam1 == 1){ |
|
// Migramos las condiciones de recoleccion |
|
print(' -- Condiciones de Recoleccion --'); |
|
var cond_reco = param_compuesto(param.cod_param, parametro, 'condicionrecos', ndb); |
|
print(' Fueron creadas '+cond_reco.length+' condiciones'); |
|
} |
|
|
|
if (parametro.cod_param1 == 22 && parametro.cod_vlrparam1 == 2){ |
|
// MIgramos las condiciones de envio |
|
print(' -- Condiciones de Envio --'); |
|
var cond_envio = param_compuesto(param.cod_param, parametro, 'condicionenvios', ndb); |
|
print(' Fueron creadas '+cond_envio.length+' condiciones'); |
|
} |
|
|
|
if ((parametro.cod_param1 == '23' && parametro.cod_vlrparam1 == '001') || |
|
(parametro.cod_param1 == 23 && parametro.cod_vlrparam1 == 1)){ |
|
// Migramos las redes de apoyo nacional |
|
print(' -- Redes Apoyo Nacional --'); |
|
var red_nal = param_compuesto(param.cod_param, parametro, 'rednals', ndb); |
|
print(' Fueron cradas '+red_nal.length+' redes nacionales'); |
|
} |
|
|
|
if ((parametro.cod_param1 == '23' && parametro.cod_vlrparam1 == '002') || |
|
(parametro.cod_param1 == 23 && parametro.cod_vlrparam1 == 2)){ |
|
// Migramos las redes de apoyo internacional |
|
print(' -- Redes Apoyo Internacional --'); |
|
var red_inter = param_compuesto(param.cod_param, parametro, 'redinters', ndb); |
|
print(' Fueron cradas '+red_inter.length+' redes internacionales'); |
|
} |
|
|
|
if ((parametro.cod_param1 == '24' && parametro.cod_vlrparam1 == '001') || |
|
(parametro.cod_param1 == 24 && parametro.cod_vlrparam1 == 1)){ |
|
// Migramos las unidades de cantidad |
|
print(' -- Unidades de Cantidad --'); |
|
var uni_cant = param_compuesto(param.cod_param, parametro, 'unidadcants', ndb); |
|
print(' Fueron creadas '+uni_cant.length+' unidades'); |
|
} |
|
|
|
if ((parametro.cod_param1 == '24' && parametro.cod_vlrparam1 == '002') || |
|
(parametro.cod_param1 == 24 && parametro.cod_vlrparam1 == 2)){ |
|
// Migramos las unidades de tiempo |
|
print(' -- Unidades de Tiempo --'); |
|
var uni_tiempo = param_compuesto(param.cod_param, parametro, 'unidadtiempos', ndb); |
|
print(' Fueron creadas '+uni_tiempo.length+' unidades'); |
|
} |
|
}) |
|
}) |
|
} else { |
|
switch(param.cod_param){ |
|
case '12': |
|
case 12: |
|
print(' -- Metodos --'); |
|
var metodos = param_sencillo(param, 'metodos', ndb); |
|
print(' Fueron creados '+metodos.length+' metodos'); |
|
break; |
|
case '13': |
|
case 13: |
|
print(' -- Aditivos --'); |
|
var aditivos = param_sencillo(param, 'aditivos', ndb); |
|
print(' Fueron creados '+aditivos.length+' aditivos'); |
|
break; |
|
case '15': |
|
case '08': |
|
case 8: |
|
case 15: |
|
print(' -- Dias de Procesamiento --'); |
|
var dias_proc = param_sencillo(param, 'diasprocs', ndb); |
|
print(' Fueron creados '+dias_proc.length+' dias de procesamiento'); |
|
break; |
|
case '17': |
|
case 17: |
|
print(' -- Secciones --'); |
|
var secciones = param_sencillo(param, 'seccions', ndb); |
|
print(' Fueron creadas '+secciones.length+' secciones'); |
|
break; |
|
case '18': |
|
case 18: |
|
print(' -- Signos --'); |
|
var signos = param_sencillo(param, 'signos', ndb); |
|
print(' Fueron creados '+signos.length+' signos'); |
|
break; |
|
case '19': |
|
case 19: |
|
print(' -- Valores de Referencia --'); |
|
var val_ref = param_sencillo(param, 'valoresreferencias', ndb); |
|
print(' Fueron creados '+val_ref.length+' valores de referencia'); |
|
break; |
|
case '20': |
|
case 20: |
|
print(' -- Archivos Anexos --'); |
|
var anexos = migrar_anexos('/home/iralabs/archivos_anexos', 'anexos', ndb); |
|
print(' Fueron creados '+anexos.length+' anexos'); |
|
break; |
|
case '25': |
|
case 25: |
|
print(' -- Muestras --'); |
|
var muestras = param_sencillo(param, 'muestras', ndb); |
|
print(' Fueron creadas '+muestras.length+' muestras'); |
|
break; |
|
case '4': |
|
case 4: |
|
print(' -- Unidades Cantidad Cuantitativa --'); |
|
var undCantCuali = param_sencillo(param, 'unidadcants', ndb); |
|
print(' Fueron creadas '+undCantCuali.length+' unidades cuantitativas'); |
|
break; |
|
default: |
|
print('CODIGO DE PARAMETRO DESCONOCIDO!!!'); |
|
printjson(param); |
|
break; |
|
} |
|
} |
|
}); |
|
|
|
// Migro los sinonimos |
|
print('---- MIGRANDO SINONIMOS ----'); |
|
db.sinonimos.find({definitiva:'Si'}).forEach(function(sin){ |
|
var s = {nombre:html_entity_decode(sin.descrip_sinon)}; |
|
ndb.sinonimos.save(s); |
|
sin.nuevoId = s._id.toString(); |
|
ndb.registro_sinonimos.save(sin); |
|
//printjson({reg:s, orig:sin}); |
|
}); |
|
var cantSinonimos = ndb.sinonimos.find().count(); |
|
print(' MIgrados '+cantSinonimos+' Sinonimos'); |
|
|
|
print('------ MIGRACION DE PRUEBAS ------'); |
|
db.pruebas.find({definitiva:'Si'}).forEach(function(prueba){ |
|
var nuevaPrueba = {}; |
|
//printjson(prueba); |
|
|
|
// Empiezo a definir las propiedades de las pruebas |
|
nuevaPrueba.cod_prueba = prueba.cod_pru; |
|
nuevaPrueba.nombre = ((prueba.descrip_pru) ? html_entity_decode(prueba.descrip_pru) : ''); |
|
nuevaPrueba.disponible = false; |
|
if (prueba.disponible == 'Si') nuevaPrueba.disponible = 'true'; |
|
nuevaPrueba.perfil = false; |
|
if (prueba.perfil == 'Si') nuevaPrueba.perfil = 'true'; |
|
nuevaPrueba.estabilidad_comun = false; |
|
if (prueba.estabcomun == 'Si') nuevaPrueba.estabilidad_comun = 'true'; |
|
nuevaPrueba.referencia_comun = false; |
|
if (prueba.vrcomun == 'Si') nuevaPrueba.referencia_comun = 'true'; |
|
nuevaPrueba.utilidad_clinica = ((prueba.utilidadc) ? html_entity_decode(prueba.utilidadc) : ''); |
|
nuevaPrueba.condiciones_paciente = []; |
|
nuevaPrueba.condiciones_generales = []; |
|
nuevaPrueba.lugar_procesamiento = ''; |
|
nuevaPrueba.lugar_procesamiento_valor = ''; |
|
nuevaPrueba.metodos = []; |
|
nuevaPrueba.muestras = []; |
|
nuevaPrueba.seccion = []; |
|
|
|
// Agrego la seccion de la prueba |
|
//print(' Seccion:'+prueba.cod_param_seccion+' y '+prueba.cod_vlrparam_seccion); |
|
ndb.registro_migracion.find({cod1:prueba.cod_param_seccion,vlr1:prueba.cod_vlrparam_seccion,col:'seccions'}).forEach(function(sec){ |
|
nuevaPrueba.seccion.push(sec.nuevoId); |
|
}); |
|
|
|
// Agrego el sinonimo a la prueba |
|
var sinonimos = []; |
|
ndb.registro_sinonimos.find({cod_pru:prueba.cod_pru}).forEach(function(s){ |
|
ndb.sinonimos.find({_id:ObjectId(s.nuevoId)}).forEach(function(sin){ |
|
sinonimos.push(sin.nombre); |
|
}); |
|
}); |
|
nuevaPrueba.sinonimo = sinonimos.join(', '); |
|
|
|
// Busco los parametros guardados en pru_param |
|
db.pru_param.find({cod_pru:prueba.cod_pru, definitiva:'Si'}).forEach(function(param){ |
|
db.vlr_param.find({cod_param1:param.cod_param, cod_vlrparam1:param.cod_vlrparam}).forEach(function(otroparam){ |
|
if (otroparam.cod_param2 != 'NULL') { |
|
//print('Consultando segundo param: '); |
|
//printjson(otroparam); |
|
ndb.registro_migracion.find({cod1:otroparam.cod_param1, |
|
vlr1:otroparam.cod_vlrparam1, |
|
cod2:otroparam.cod_param2, |
|
vlr2:otroparam.cod_vlrparam2 |
|
}).forEach(function(result){ |
|
//print('REsultado: '); |
|
//printjson(result); |
|
switch(result.cod2){ |
|
case '21': |
|
case 21: |
|
if (result.vlr2 == '001' || result.vlr2 == 1){ |
|
// Agrego una condicion del paciente a la prueba |
|
nuevaPrueba.condiciones_paciente.push(result.nuevoId); |
|
} else if (result.vlr2 == '002' || result.vlr2 == 2){ |
|
// Agrego una condicion general de la prueba |
|
nuevaPrueba.condiciones_generales.push(result.nuevoId); |
|
} else { |
|
print('OJO HAY UNA PRUEBA CON UN PARAMETRO DESCONOCIDO - 21'); |
|
} |
|
break; |
|
case '23': |
|
case 23: |
|
if (result.vlr2 == '001' || result.vlr2 == 1){ |
|
// Agrego una red de apoyo nacional |
|
nuevaPrueba.lugar_procesamiento = 'red_nacional'; |
|
nuevaPrueba.lugar_procesamiento_valor = result.nuevoId; |
|
} else if (result.vlr2 == '002' || result.vlr2 == 2){ |
|
// Agrego una red de apoyo internacional |
|
nuevaPrueba.lugar_procesamiento = 'red_internacional'; |
|
nuevaPrueba.lugar_procesamiento_valor = result.nuevoId; |
|
} else { |
|
print('OJO HAY UNA PRUEBA CON UN PARAMETRO DESCONOCIDO - 23'); |
|
} |
|
break; |
|
default: |
|
print('ENCONMTRO OTRA COSA, revise arriba de este msg'); |
|
break; |
|
} |
|
}) |
|
} else { |
|
//print('Consultando primer param:'); |
|
//printjson(otroparam); |
|
ndb.registro_migracion.find({cod1:otroparam.cod_param1,vlr1:otroparam.cod_vlrparam1}).forEach(function(resultado){ |
|
switch (resultado.cod1) { |
|
case 8: |
|
// Agrego el tiempo de informe |
|
nuevaPrueba.tiempo_informe_otros = resultado.nuevoId; |
|
break; |
|
case 12: |
|
// Agrego los metodos |
|
nuevaPrueba.metodos.push(resultado.nuevoId); |
|
break; |
|
default: |
|
print('OJO QUE NO COINCIDIO EL PARAMETRO CON METODOS'); |
|
print('Resultado: '); |
|
printjson(resultado); |
|
break; |
|
} |
|
}); |
|
} |
|
}) |
|
}); |
|
|
|
// Reviso las muestras que tenga asociada la prueba |
|
var muestras = {}; |
|
print(' Inicio las Muestras'); |
|
db.cond_muestra.find({cod_pru:prueba.cod_pru, definitiva:'Si'}).forEach(function(muestra){ |
|
//print('Muestra: '); |
|
//printjson(muestra); |
|
var muestra_det = {}; |
|
if (muestra){ |
|
// Nombre de la muestra |
|
if (muestra.cod_param_tmues){ |
|
ndb.registro_migracion.find({cod1:muestra.cod_param_tmues, vlr1:muestra.cod_vlrparam_tmues}).forEach(function(r){ |
|
nuevaPrueba.muestras.push(r.nuevoId); |
|
}); |
|
} |
|
|
|
// Temperatura Ambiente |
|
if (muestra.cod_param_utamb){ |
|
ndb.registro_migracion.find({cod1:muestra.cod_param_utamb,vlr1:muestra.cod_vlrparam_utamb}).forEach(function(r){ |
|
muestra_det.temp_ambiente = muestra.qtamb; |
|
muestra_det.temp_ambiente_unidad = r.nuevoId; |
|
}); |
|
} |
|
|
|
// Temperatura Refrigerada |
|
if(muestra.cod_param_utrefrig){ |
|
ndb.registro_migracion.find({cod1:muestra.cod_param_utrefrig, vlr1:muestra.cod_vlrparam_utrefrig}).forEach(function(r){ |
|
muestra_det.temp_refrigerada = muestra.qtrefrig; |
|
muestra_det.temp_refrigerada_unidad = r.nuevoId; |
|
}) |
|
} |
|
|
|
// Temperatura Congelada |
|
if (muestra.cod_param_utcong){ |
|
ndb.registro_migracion.find({cod1:muestra.cod_param_utcong, vlr1:muestra.cod_vlrparam_utcong}).forEach(function(r){ |
|
muestra_det.temp_congelada = muestra.qtcong; |
|
muestra_det.temp_congelada_unidad = r.nuevoId; |
|
}) |
|
} |
|
|
|
// Cantidad cuantitativa |
|
if (muestra.cod_param_ucant_condm){ |
|
ndb.registro_migracion.find({cod1:muestra.cod_param_ucant_condm, vlr1:muestra.cod_vlrparam_ucant_condm}).forEach(function(r){ |
|
muestra_det.cant_cuantitativa = muestra.qcant_condm; |
|
muestra_det.cant_cuantitativa_unidad = r.nuevoId; |
|
}) |
|
} |
|
|
|
// Cantidad cualitativa |
|
if (muestra.cod_param_qcual){ |
|
ndb.registro_migracion.find({cod1:muestra.cod_param_qcual, vlr1:muestra.cod_vlrparam_qcual}).forEach(function(r){ |
|
if (muestra.qcant_condm != 'NULL') { |
|
muestra_det.cant_cualitativa = muestra.qcant_condm; |
|
} |
|
muestra_det.cant_cualitativa_unidad = r.nuevoId; |
|
}) |
|
} |
|
|
|
// Aditivos |
|
muestra_det.aditivo_valor = []; |
|
muestra_det.aditivo_unidad = []; |
|
print(' Consultando aditivos'); |
|
db.condm_aditivo.find({cod_pru:muestra.cod_pru, cod_condm:muestra.cod_condm}).forEach(function(listaAditivo){ |
|
//print('REspuesta: '); |
|
//printjson(listaAditivo); |
|
if (listaAditivo){ |
|
db.vlr_aditivos.find({cod_param:listaAditivo.cod_param, cod_aditivo:listaAditivo.cod_aditivo}) |
|
.forEach(function(codAditivo){ |
|
//print('VALOR'); |
|
//printjson(codAditivo); |
|
if (codAditivo){ |
|
ndb.registro_migracion.find({cod1:codAditivo.cod_param_nombreaditivo, vlr1:codAditivo.cod_vlrparam_nombreaditivo}) |
|
.forEach(function(nombreAditivo){ |
|
//print('NOMBRE'); |
|
//printjson(nombreAditivo); |
|
muestra_det.aditivo_unidad.push(nombreAditivo.nuevoId); |
|
}); |
|
|
|
ndb.registro_migracion.find({cod1:codAditivo.cod_param_ucant_aditivo, vlr1:codAditivo.cod_vlrparam_ucant_aditivo}) |
|
.forEach(function(cantAditivo){ |
|
//print('CAnti'); |
|
//printjson(cantAditivo); |
|
muestra_det.aditivo_valor.push(cantAditivo.nombre); |
|
}); |
|
} |
|
}); |
|
} |
|
}); |
|
|
|
// Condiciones de Envio y Recoleccion |
|
muestra_det.cond_envio = []; |
|
muestra_det.cond_recoleccion = []; |
|
print(' Condiciones envio y recoleccion'); |
|
db.condm_param.find({cod_pru:muestra.cod_pru, cod_condm:muestra.cod_condm}).forEach(function(condicion){ |
|
//print('Consulta'); |
|
//printjson(condicion); |
|
ndb.registro_migracion.find({cod1:condicion.cod_param, vlr1:condicion.cod_vlrparam}).forEach(function(tipoCond){ |
|
//print('respuesta'); |
|
//printjson(tipoCond); |
|
switch(tipoCond.vlr2){ |
|
case '001': |
|
case 1: |
|
// Condicion de Recoleccion |
|
muestra_det.cond_recoleccion.push(tipoCond.nuevoId); |
|
break; |
|
case '002': |
|
case 2: |
|
// Condicion de Envio |
|
muestra_det.cond_envio.push(tipoCond.nuevoId); |
|
break; |
|
default: |
|
print('OJO HAY UNA PRUEBA SIN UN PARAMETRO BIEN RELACIONADO'); |
|
break; |
|
} |
|
}) |
|
}) |
|
|
|
|
|
var ind = muestra.cod_condm - 1; |
|
muestras[ind.toString()] = muestra_det; |
|
} |
|
|
|
}); |
|
nuevaPrueba.muestra = muestras; |
|
|
|
// Dias de procesamiento |
|
var dias = []; |
|
|
|
if (prueba.lu == 'Si') dias.push('Lunes'); |
|
if (prueba.ma == 'Si') dias.push('Martes'); |
|
if (prueba.mi == 'Si') dias.push('Miércoles'); |
|
if (prueba.ju == 'Si') dias.push('Jueves'); |
|
if (prueba.vi == 'Si') dias.push('Viernes'); |
|
if (prueba.sa == 'Si') dias.push('Sabado'); |
|
if (prueba.do == 'Si') dias.push('Domingo'); |
|
//print('DIAS PROC - '+prueba.cod_pru); |
|
//printjson(dias); |
|
nuevaPrueba.dias_procesamiento = dias; |
|
|
|
if (prueba.cod_vlrparam_diaotro == 'NULL'){ |
|
//print('fue nulo'); |
|
} else { |
|
//print('Son otros'); |
|
//print(prueba.cod_vlrparam_diaotro); |
|
if (prueba.cod_vlrparam_diaotro){ |
|
ndb.registro_migracion.find({cod1:prueba.cod_param_diaotro,vlr1:prueba.cod_vlrparam_diaotro}).forEach(function(otroDia){ |
|
//printjson(otroDia); |
|
if (otroDia){ |
|
nuevaPrueba.dia_procesamiento_otro = otroDia.nuevoId; |
|
} |
|
}); |
|
} |
|
} |
|
|
|
// Tiempo de Informe |
|
if (prueba.qtinform && prueba.qtinform != 'NULL'){ |
|
ndb.registro_migracion.find({cod1:prueba.cod_param_utinform, vlr1:prueba.cod_vlrparam_utinform}).forEach(function(tiempoInforme){ |
|
if (tiempoInforme) { |
|
nuevaPrueba.tiempo_informe_valor = prueba.qtinform; |
|
nuevaPrueba.tiempo_informe_unidad = tiempoInforme.nuevoId; |
|
} |
|
}); |
|
} |
|
|
|
// Valores de referencia/ |
|
var val_refs = []; |
|
print(' Valores de Referencia'); |
|
db.lineas_vr.find({cod_pru:prueba.cod_pru}).forEach(function(linea){ |
|
//print('Linea:'); |
|
//printjson(linea); |
|
if (linea.cod_vlrparam_texto != 'NULL') { |
|
var valor = {}; |
|
valor.valores = []; |
|
ndb.registro_migracion.find({cod1:linea.cod_param_texto,vlr1:linea.cod_vlrparam_texto}).forEach(function(nombreVal){ |
|
//print('Respuesta:'); |
|
//printjson(nombreVal); |
|
valor.val_ref = nombreVal.nuevoId; |
|
}); |
|
var ind = linea.cod_linvr - 1; |
|
} else if (val_refs.length > 0){ |
|
var ind = val_refs.length - 1; |
|
print(' TOMANDO ANTERIOR'); |
|
var valor = val_refs[ind]; |
|
} else { |
|
var valor = {val_ref:false,texto:html_entity_decode(linea.textoinput),valores:[]}; |
|
if (linea.cod_linvr) |
|
var ind = linea.cod_linvr - 1; |
|
else |
|
var ind = 0; |
|
} |
|
|
|
var valores = {}; |
|
valores.rango_edad_inicial = linea.edadi; |
|
valores.rango_edad_final = linea.edadf; |
|
ndb.registro_migracion.find({cod1:linea.cod_param_signo_linvr, vlr1:linea.cod_vlrparam_signo_linvr}) |
|
.forEach(function(signoEdad){ |
|
valores.signo_edad = signoEdad.nuevoId; |
|
}); |
|
ndb.registro_migracion.find({cod1:linea.cod_param_ucantf, vlr1:linea.cod_vlrparam_ucantf}).forEach(function(uniEdad){ |
|
valores.rango_edad_unidad = uniEdad.nuevoId; |
|
}); |
|
db.columnas_vr.find({cod_pru:prueba.cod_pru,cod_linvr:linea.cod_linvr}).forEach(function(columna){ |
|
//print('Respuesta a columna'); |
|
//printjson(columna); |
|
if (columna){ |
|
valores.rango_valor_inicial = columna.valori; |
|
valores.rango_valor_final = columna.valorf; |
|
ndb.registro_migracion.find({cod1:columna.cod_param_signo_columvr, vlr1:columna.cod_vlrparam_signo_columvr}) |
|
.forEach(function(signoValor){ |
|
valores.signo_valor = signoValor.nuevoId; |
|
}) |
|
ndb.registro_migracion.find({cod1:columna.cod_param_ucant_columvr,vlr1:columna.cod_vlrparam_ucant_columvr}) |
|
.forEach(function(uniValor){ |
|
valores.rango_valor_unidad = uniValor.nuevoId; |
|
}) |
|
} |
|
}); |
|
|
|
valor.valores.push(valores); |
|
val_refs[ind] = valor; |
|
//printjson({indice:ind, valores:val_refs}); |
|
}); |
|
|
|
// Agrego los valores de referencia a la nueva prueba |
|
nuevaPrueba.valores_referencia = val_refs; |
|
|
|
// Busco el estado para la nueva prueba |
|
db.vlr_param.find({cod_param1:prueba.cod_param_estado,cod_vlrparam1:prueba.cod_vlrparam_estado}).forEach(function(estado){ |
|
nuevaPrueba.estado = html_entity_decode(estado.descrip_vlrparam); |
|
}); |
|
|
|
ndb.pruebas.save(nuevaPrueba); |
|
if (nuevaPrueba._id){ |
|
print('Prueba: '+nuevaPrueba.cod_prueba+' migrada con exito'); |
|
} |
|
}); |
|
|
|
ndb.usuarios.save({ |
|
nombre:'Administrador', |
|
bloqueado:false, |
|
username:'admin', |
|
clave_cifrada:'a0664cb101d6503a66c0fd7d567e2d80f83151c7', |
|
salt:'438759344570', |
|
correo:'[email protected]', |
|
rol:'admin' |
|
}) |