Trazabilidad de Medicamentos - WS TrazaMed ANMAT/PAMI
Factura Electrónica y Servicios Web AFIP, ARBA y ANMAT
- PyAfipWs: Interfase con otros lenguajes (VB, VFP, Cobol ...) Costos y Condiciones
- Manual: Documentación, Información Importante, Certificados, Errores Frecuentes
- Interfaz simil SIAP/RECE: archivos de texto ("Cobol") o DBF (dBase, FoxPro, ...)
- PyFEPDF: Generador de facturas en formato PDF
- Factura Electrónica en Python: Información Técnica (SOAP, XML)
- Bonos Fiscales Electrónicos: Bienes de Capital (RG2557)
- Factura Electrónica Exportación: Exportadores (RG2758)
- Factura Electrónica MTX: Mercado Interno (RG2904)
- Proyecto Factura Electrónica Versión 1: Mercado Interno (RG2904, RG2757)
- Código de Autorización Electrónico Anticipado: CAEA (RG2926, RG2904)
- Código Trazabilidad de Granos: Transporte de granos (RG2806)
- Código de Operaciones de Translado: COT Remito Electronico (ARBA) ¡Nuevo!
- Consulta de Operaciones Cambiarias: Compra de Divisas (WSCOC) ¡Nuevo!
- Trazabilidad de Medicamentos: ANMAT Disposición 3683/2011 ¡Nuevo!
- PyRece: Aplicativo simil SIAP - RECE (CSV, PDF, Email) Costos y Condiciones
- FE.py: Herramienta universal, unificada e integrada
- FacturaLibre: Aplicacion online (web2py)
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
- Instalador: instalador-TrazaMed-1.02a-homo.exe (homologación) preliminar
- Documentación Oficial: especificación técnica, set de datos
- Ejemplo en VB: trazamed.bas
- Código Fuente (Python): trazamed.py
URL
- Pruebas: https://186.153.145.2:9050/trazamed.WebService
- Producción: https://trazabilidad.pami.org.ar:9050/trazamed.WebService
- WSDL: https://trazabilidad.pami.org.ar:9050/trazamed.WebService?wsdl
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.
- URL: https://186.153.145.2:9050/trazamed.WebService
- Descripción de capacidades: https://186.153.145.2:9050/trazamed.WebService?wsdl
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.
- Debe informar un lote de 20 productos recibidos desde un eslabón anterior.
- Debe informar un lote de 20 productos como entrega de producto en carácter de devolución.
- Debe informar un lote de 20 productos como robados / extraviados.
- Debe informar un lote de 20 productos como vencidos.
- Debe informar un lote de 8 productos como DEVOLUCION POR PROHIBICION.
Agentes de prueba
| GLN | Tipo de Agente |
| GLNWS | LABORATORIO |
| 9999999999918 | Laboratorio |
| 9999999999925 | Distribuidora |
| 9999999999932 | Operador Logístico |
| 9999999999949 | Droguería |
| 9999999999956 | Farmacia |
| 9999999999963 | Establecimiento Asistencial |
| 9999999999970 | Laboratorio 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