martes, 8 de febrero de 2022

Ubicación del TNS_ADMIN en Oracle Administrado

 Cuando nos conectamos a una base de datos Oracle mediante el  proveedor de datos administrados de Oracle  (Oracle.ManagedDataAccess) contamos con la ventaja principal de que NO es necesario tener instalado el cliente de Oracle en nuestra máquina, pero podemos encontrarnos con algunos inconvenientes justo de esto hablaré en esta entrada y compartiré mi experiencia para poder afrontar estos inconvenientes. 


1.- No hay soporte para BulckCopy: Este inconveniente en realidad ha quedado superado pues en las versiones "mas recientes" ya está implementada esta función y aun que no la he utilizado asumo que se comportará bastante bien en temas de rendimiento. 

2.-No se puede resolver el HOST: Este problema puede tener varias causas pero una muy común es porque estamos acostumbrados a utilizar alias del servidor de base de datos (estos alias están registrados en el archivo (tnsname.ora que se genera cuando se instala el cliente de Oracle) pero cuando usamos el proveedor administrado entonces "es posible que debamos indicar dónde está ubicado este archivo y la manera de hacerlo es la siguiente: 


En el archivo de configuración de nuestra aplicación debemos colocar la entrada TNS_ADMIN y ahí indicar la ruta en la que se encuentra el archivo. 


<setting name="TNS_ADMIN" value="C:\oracle\product\11.2.0\client_x64\Network\Admin" />


  

lunes, 24 de febrero de 2020

DICOM

DICOM
Primer Aproximación

En esta entrada abordaré los conceptos más importantes de DICOM desde una perspectiva de programación informática la cual espero les sea de utilidad ademas, como siempre, espero  me puedan servir como apuntes para futuras referencias.


DICOM (Digital Imaging and Communications in Medicine)

Es un protocolo o estándar que define los mecanismos para:  obtener, intercambiar, almacenar, recuperar, revisar o imprimir  resultados de estudios médicos especialmente de aquellos estudios que produce imagen o video* tales como:
  • Rayos X
  • Ultrasonido
  • Resonancia Magnética
  • Tomografía Computarizada 


Historia
   
    Con el surgimiento de la tomografía computarizada y el auge de otras técnicas de diagnóstico basado en imágenes durante la  década de los 70's, salieron a la luz diversidad de dispositivos que producian imágenes para el apoyo en el diagnóstico cada uno con sus propios formatos sus propies reglas y casi siempre incompatibles unos sistemas con otros

Es así que en 1983  el ACR (American College of Radiology) junto con el NEMA (National Electrical Manufacturers Association) decidieron formar un comité para desarrollar un estándar que permitiera:

  •     El intercambio de  imágenes digitales entre dispositivos de diferentes fabricantes.
  •     Facilitar la administración (almacenamiento e intercambio)  de imágenes digitales y permitir la comunicación entre diferentes dispositivos del área médica. 
  •  
Uno de los mayores exitos de DICOM se debe a que fue visualizado para el cambio, la actualización y el mantenimiento y es por eso que hoy se encuentra tan vigtente, pues a lo largo de su hostoria ha recibido modificaciones revisiones y mejoras
  • 1988 Se publicó la versión 1 del protocolo
  • 1998 Se publicó la versión 2.0 del protocolo
  • 1993 Se revisó modificó y reemplazo el estándar ACR-NEMA 300 por el "nuevo" DICOM
  • 1995 Se agrega características para el manejo de imágenes cardiológicas.


Referencias

http://dicom.nema.org/medical/dicom/current/output/html/part01.html






sábado, 16 de noviembre de 2019

Web AAPI :net Core

Estructura

Como estructura generaremos los siguientes cuatro proyectis

3 Bibliotecas de clase .Net Core
   Models
   Data
   Dtos

1.-Solución WEB Net Core Vacía
   Api

En en el proyecto de Data ejecutaremos los siguientes comandos (desde la consola del administrador de paquetes NuGet.
 
Install-Package Microsoft.EntityFrameworkCore.SqlServer -version 2.2.6 
Install-Package Microsoft.EntityFrameworkCore.Tools -version 2.2.6
scaffold-dbcontext "Data Source=localhost\SQLEXPRESS;Initial Catalog=TuBD;Integrated Security=True;" Microsoft.EntityFrameworkCore.SqlServer 





lunes, 27 de mayo de 2019

Caracteres Extraños Oracle ñ

En algunos casos al trabajar con bases de datos Oracle nos encontramos con que algunos caracteres especiales tales como Ñ, Á ü, no son mostrados correctamente.

Lo más probable es que el error se esté generando debido a que el cliente y el servidor de la base de datos tiene configurado diferente Juego de caracteres.

Para corregir este problema es necesario igualar el juego de caracteres de la base de datos y del cliente que esta realizando la consulta , inserción y actualización (Es recomendable revisar y unificar la  juego de caracteres de cada uno de los clientes que se conecte a la BD. de lo contrario podría existir discrepancia entre lo que diferentes clientes pueden ver)

1.- Ejecuta la siguiente consulta en la base de datos Oracle  con la que estas experimentando el problema: 

SELECT *
FROM V$NLS_PARAMETERS
WHERE PARAMETER in ('NLS_LANGUAGE','NLS_TERRITORY','NLS_CHARACTERSET'); 


    El resultado de la consulta deberá ser similar al siguiente: 
   


2.- Genera una cadena con los tres  valores devueltos. La cadena deberá tener la siguiente estructura: [NS_LANGUAGE_[NLS_TERRITORY].[NLS_CHARACTERSET]


3.- Agrega una nueva entrada en las variables del entorno del sistema (Inicio>>Este Equipo>>(botón secundario)>>Propiedades>>Configuración Avanzada del sistema.>>Variables del Entorno)


Ejemplo: MEXICAN SPANISH_MEXICO.WE8ISO8859P1



4.- Reinicia el sistema





viernes, 1 de febrero de 2019

Cursores Implicitos Oracle

Los cursores no son mi herramienta favorita pero por alguna razón que no tengo muy clara la realidad es que en el mundo de Oracle es una de las formas más comunes de hacer las cosas .. Cursor para esto, cursor para aquello, todo se puede resolver con cursores y la verdad es que he de reconocer que tienen un gran poder sin embargo prefiero prescindir de ellos en la medida de lo posible.

Pero para aquellos casos en los que no hay más opciones o la manera rápida de hacerlo es mediante un cursos aqui les dejo la forma que considero más sencilla de trabajar con cursores son los cursores implicitos. Aqui dejo un ejemplo de como se pueden usar 



BEGIN
    FOR  REGISTRO IN  (SELECT CAMPO1, CAMPO2
                                   FROM   Tabla1                 T1
                                              Inner join Tabla2  T2 On T1.A = T2.B
                                         )
     LOOP
          DBMS_OUTPUT.put_line(registro.campo1);     
    END LOOP;        

END; 


En esta entrada comparto un script para poder enviar correos desde Power Shel es importante señalar que antes de poder realizar el envío desde cuentas de gmail u outlook es necesario habilitar el envío de Aquí puedes encontrar un manual de como hacerlo.

$EmailFrom = "pruebas@gmail.com"
$EmailPass = "1234"
$EmailTo = "pruebas@gmail.com"
$Subject = "Prueba de correo PowerShel"
$Body = "Cuertpo del correo"
$SMTPServer = "smtp.gmail.com"
$SMTPMessage = New-Object System.Net.Mail.MailMessage($EmailFrom,$EmailTo,$Subject,$Body)
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)
$SMTPClient.EnableSsl = $true
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential($EmailFrom, $EmailPass)
$SMTPCliente.EnableSsl = $true;
$SMTPClient.send($SMTPMessage)



Es posible que el antivirus bloquee el envío de correos en esta caso podrías recibir un error similar al siguiente:





Si este es el caso revisa

Para enviar el mismo correo varias veces puedes sustituir la ultima linea por estas tres lineas:

for($i=0; $i -lt 3; $i++)
{
   $SMTPClient.send($SMTPMessage)
}

jueves, 2 de agosto de 2018

Monitor de licencias ASPEL

Hoy me enfrente con que el servidor de licencias de ASPEL no funcionaba y no me permita entrar en ninguno de los equipo (trabajo en red) y después de muchos intentes finalmente lo conseguí hacer funcionar.


1.- Desinstala y instala el servicio windows de licencias de usuario
  Abre una consola de comandos (CMD)
  Ejecuta la siguiente instrucción : C:\windowsSysWOW64\servlicasp /uninstall
  Reinicia la maquina.

Abre una consola de comandos (CMD)   Ejecuta la siguiente instrucción : C:\windowsSysWOW64\servlicasp /install
  Reinicia la maquina y asegurate de que el servicio se este ejecutando (Inicio->Servicios).


2.-Registra la DLL midas.dll
   regsvr32.exe c:\windows\system32\midas.dll


3.-Verifica que todas las referencias a a la DLL Midas.dll estén correctas en el reg edit
   Entrar al Regedit , seleccionar MI PC luego menú Edición / Buscar / midas.dll
  Verificar que todas las etiquetas que encuentres tengan la misma ruta y sea correcta es posible que hagan referencia a una ruta que ya no existe.


En otro momento ampliaré esta información.