Trazabilidad de Medicamentos - WS TrazaMed ANMAT/PAMI


Interfaz para Servicio Web Código de Trazabilidad de Medicamentos (SOAP) correspondiente a la  Resolución 435/2011 del Ministerio de Salud y  Disposición 3683/2011 de A.N.M.A.T.: Sistema de Trazabilidad de medicamentos que deberán implementar las personas físicas o jurídicas que intervengan en la cadena de comercialización, distribución y dispensación de especialidades medicinales incluidas en el Registro de Especialidades Medicinales.

Índice


Introducción

Biblioteca para el web service de ANMAT/PAMI que permite automatizar la gestión de las trazabilidad de medicamentos:

  • Interfaz COM: Simil DLL/OCX, embebible para aplicaciones programadas en lenguajes visuales bajo windows (Visual Basic, Visual Fox Pro, SAP, etc.)
  • Interfaz por archivo de texto: similar a aplicativos SIAP para sistemas legados (ej. RM COBOL) multiplataforma (DOS, Windows, Unix) -proximamente-
  • Interfaz por tablas DBF: compatible con dBase, FoxPro, Clipper -proximamente-
  • Interfaz por base de datos: compatible con conectores ODBC (MS SQL Server), PostgreSQL y otros (Oracle, DB2) -proximamente-

Cubre totalmente el proceso, puede ser adaptado a programas existentes y no es requerido intervención del usuario.

Para más información ver PyAfipWs

Fechas de Aplicación

Implementación del sistema de trazabilidad para productos críticos:

Etapa 1:

  • Desde LABORATORIO hasta DROGUERIA: Hasta SEIS (6) MESES a partir del 15/06/2011
  • Desde DROGUERIA hasta FARMACIA: Hasta SEIS (6) MESES a partir del 15/06/2011

Etapa 2: VALIDACION DEL SISTEMA desde:

  • LABORATORIO TITULAR  DISTRIBUIDORA  DROGUERIA  FARMACIA/ESTABLECIMIENTO ASISTENCIAL  PACIENTE: Hasta DOCE (12) MESES a partir del 15/06/2011

Descargas

URL

Métodos

  • SendMedicamentos(usuario, password, f_evento, h_evento, gln_origen, gln_destino, n_remito, n_factura, vencimiento, gtin, lote, numero_serial, id_obra_social, id_evento, cuit_origen, cuit_destino, apellido, nombres, tipo_docmento, n_documento, sexo, direccion, numero, piso, depto, localidad, provincia, n_postal, fecha_nacimiento, telefono): Realiza el registro de una transacción de medicamentos
  • SendCancelacTransacc(usuario, password, codigo_transaccion): Realiza la cancelación de una transacción
  • SendMedicamentosDHSerie(usuario, password, f_evento, h_evento, gln_origen, gln_destino, n_remito, n_factura, vencimiento, gtin, lote, desde_numero_serial, hasta_numero_serial, id_obra_social, id_evento, cuit_origen, cuit_destino, apellido, nombres, tipo_docmento, n_documento, sexo, direccion, numero, piso, depto, localidad, provincia, n_postal, fecha_nacimiento, telefono,): Realiza el registro de una transacción de medicamentos. Envía un lote de medicamentos informando el desde-hasta número de serie (desde_numero_serial, hasta_numero_serial)

Los tres métodos devuelven True (verdadero) en caso de que se ejecuten correctamente (llamada remota), y establecen los atributos Resultado, Errores y CodigoTransaccion según corresponda.

En caso de falla (por ej. error de comunicación), devuelven False (falso) y se debe revisar atributos Excepcion y Traceback

Atributos

  • Username, Password: credenciales de seguridad para operar el webservice
  • CodigoTransaccion: número otorgado por el método remoto (en caso correcto)
  • Errores: lista de validaciones fallidas devueltas por el método remoto
  • Resultado: verdadero (True) si fue procesado correctamente
  • XmlRequest, XmlResponse: mensajes xml crudos sin procesar (para depuración)
  • Version, InstallDir: datos para depuración
  • Traceback, Excepcion: errores no esperados de comunicación o similar (por ej. SoapFault?)

Linea de Comandos

Para sistemas operativos legados (DOS bajo windows) y UNIX/Linux, es posible operar la herramienta de trazabilidad por consola. Recibe como parámetros los datos correspondientes a la llamada remota (ver métodos). Opcionalmente se puede especificar --testing para pruebas (usar xml de muestra como respuesta si no se tiene acceso a homologación) y --trace para imprimir por pantalla los datos enviados y recibidos.

Ejemplo de uso:

C:\PYANMAT>trazamed.exe "pruebasws" "pruebasws" "25/11/2011" "04:24" "glnws" "glnws" "1234" "1234" "30/11/2011" "GTIN1" "1111" "12347" "" 133 "20267565393" "20267565393" "Reingart" "Mariano" "96" "26756539" "M" "Saraza" "1234" "" "" "Hurlingham" "Buenos Aires" "B1688FDD" "01/01/2000" "5555-5555"
|Resultado  True|CodigoTransaccion     279695|Errores||

Consultar por interfaces DBF, XML o archivos de texto fijo (COBOL).

Ejemplo Intefase COM en VB (5/6)

Envio de Medicamentos:

Dim TrazaMed As Object, ok As Variant

' Crear la interfaz COM
Set TrazaMed = CreateObject("TrazaMed")

' Establecer credenciales de seguridad
TrazaMed.Username = "testwservice"
TrazaMed.Password = "testwservicepsw"

' Conectar al servidor (pruebas)
ok = TrazaMed.Conectar()

' datos de prueba
usuario = "pruebasws": Password = "pruebasws"
f_evento = "25/11/2011": h_evento = "04:24"
gln_origen = "glnws": gln_destino = "glnws"
n_remito = "1234": n_factura = "1234"
vencimiento = "30/11/2011": gtin = "GTIN1": lote = "1111"
numero_serial = "12348": id_obra_social = "": id_evento = 133
cuit_origen = "20267565393": cuit_destino = "20267565393":
apellido = "Reingart": nombres = "Mariano"
tipo_docmento = "96": n_documento = "26756539": sexo = "M"
direccion = "Saraza": numero = "1234": piso = "": depto = ""
localidad = "Hurlingham": provincia = "Buenos Aires"
n_postal = "B1688FDD": fecha_nacimiento = "01/01/2000"
telefono = "5555-5555"

' Enviar datos y procesar la respuesta:
ok = TrazaMed.SendMedicamentos(usuario, Password, _
                     f_evento, h_evento, gln_origen, gln_destino, _
                     n_remito, n_factura, vencimiento, gtin, lote, _
                     numero_serial, id_obra_social, id_evento, _
                     cuit_origen, cuit_destino, apellido, nombres, _
                     tipo_docmento, n_documento, sexo, _
                     direccion, numero, piso, depto, localidad, provincia, _
                     n_postal, fecha_nacimiento, telefono)

Debug.Print "Resultado:", TrazaMed.Resultado
Debug.Print "CodigoTransaccion:", TrazaMed.CodigoTransaccion
    
For Each er In TrazaMed.Errores
     MsgBox er, vbExclamation, "Error!"
Next
    
MsgBox "Resultado: " & TrazaMed.Resultado & vbCrLf & _
        "CodigoTransaccion: " & TrazaMed.CodigoTransaccion, _
        vbInformation, "Resultado"

Entrenamiento

IMPORTANTE: Solo usuarios habilitados. Consultar con técnicos de PAMI/ANMAT:  contactotrazabilidad@pami.org.ar

Para poder realizar la trazabilidad de medicamentos a través del WebService, deberá antes realizar el entrenamiento con datos ejemplo que lo ayudarán a comprender y probar el funcionamiento del servicio.

Deberá utilizar en esta etapa el usuario, contraseña y GLN asignado en la registración en el modo de entrenamiento por la web.

Los siguientes son los eventos que deberá realizar a través del webservice. Previamente deberá cumplimentar los pasos de entrenamiento descriptos en la página de trazabilidad. Tenga en cuenta que siempre podrá ver el estado actual de su entrenamiento ingresando a la opción Agentes / Mi puntuación.

  1. Debe informar un lote de 20 productos recibidos desde un eslabón anterior.
  2. Debe informar un lote de 20 productos como entrega de producto en carácter de devolución.
  3. Debe informar un lote de 20 productos como robados / extraviados.
  4. Debe informar un lote de 20 productos como vencidos.
  5. Debe informar un lote de 8 productos como DEVOLUCION POR PROHIBICION.

Agentes de prueba

GLNTipo de Agente
GLNWSLABORATORIO
9999999999918Laboratorio
9999999999925Distribuidora
9999999999932Operador Logístico
9999999999949Droguería
9999999999956Farmacia
9999999999963Establecimiento Asistencial
9999999999970Laboratorio de Mezcla

Errores

Fallas SOAP (SoapFault) en atributo Excepcion:

  • soap:Server: La aplicacion usuario:"testwservice" intento ingresar con el password invalido:"testwservicepsw": verificar atributos Username, Password y url en Conectar (ambiente testing o producción)
  • soap:Server: La aplicacion usuario:"testwservice" no esta registrado en el sistema: verificar atributos Username, Password y url en Conectar (ambiente testing o producción)
  • ns1:InvalidSecurity: An error was discovered processing the <wsse:Security> header: ha proporcionado incorrectamente las credenciales de acceso o la biblioteca no soporta los encabezados de seguridad requeridos.

Errores Internos del webservice en atributo Errores (lista):

  • 1: Error de autentificacion, verifique el usuario y/o contrase?a.: verificar usuario y contraseña pasada al método SendMedicamentos (para testing es "pruebasws1" "pruebasws")
  • 3014: No puede informar mas de una vez el mismo evento para el mismo número de serie.: verifique los datos enviados (numero_serial), solo se puede enviar los requerimientos una vez.
  • No ha informado la recepcion del medicamento que desea enviar: en ocasiones sucedía por una falla interna de los servidores, si se ha informado la recepción con SendMedicamentos, consultar con los técnicos de PAMI/ANMAT:  contactotrazabilidad@pami.org.ar
  • -1861: ORA-01861: literal does not match format string: corregir el formato de los campos (fechas, números, etc.)

Novedades

Se recuerda que esta disponible el  grupo de noticias ( http://groups.google.com.ar/group/pyafipws) donde se publicarán futuras novedades sobre PyAfipWS: servicios web de factura electrónica y sus interfases (se recomienda suscribirse)

Costos y Condiciones

Por soporte comercial consultar al (011) 4450-0716 o (011) 15-3048-9211 o por mail a  info@sistemasagiles.com.ar

Costos de soporte estimativos (puede variar dependiendo de las necesidades de cada implementación puntual):

  • Soporte Mínimo: $1125+IVA (1 mes máx., hasta 15 hs en total, solo instalación y acceso a actualizaciones por correcciones generales)
  • Soporte Básico: $2250+IVA (3 meses máx., hasta 30 hs en total, solo consultas menores)
  • Soporte Avanzado: desde $4500+IVA (6 meses máx., hasta 60 hs en total, incluyendo ajustes y desarrollo de ejemplos, documentación, pruebas, etc., contempla temas urgentes y/o grandes empresas/ciclos de desarrollo)

Importante: los costos son estimativos, consultar presupuesto.

Más información en PyAfipWs

MarianoReingart