Ofimedic Web Service (1.0.0)

Introducción

Especificaciones de los métodos que permiten interactuar con la información almacenada en las bases de datos de Ofimedic.

Especificaciones

  • La URL para acceder al servicio tendrá la siguiente estructura:
    • https://{URL}/services.asmx/{NombreMétodo}

  • Los parámetros de entrada que son obligatorios están marcados como tal.
    • Hay parámetros de entrada que pueden no estar marcados como obligatorios, pero que lo sean bajo ciertas condiciones, las cuales están indicadas.

  • Si un parámetro es opcional, hay que pasar un espacio en blanco.

  • Todas las llamadas que incluyen los parámetros fechaInicio y fechaFin están limitados a un periodo máximo de un año.

  • Si no se indica como parámetro el identificador único, solo se permiten llamadas entre las 21:00h y las 10:59h.

  • Todos los mensajes de respuesta estarán formateados en JSON.

  • En cada llamada hay que indicar como parámetro un código/token que se obtiene mediante 2FA vía email con la función SetAuth.

  • El token tiene una validez de 2 horas.

  • En todos los métodos de devolución de datos podemos indicar el parámetro fechaModificacion. Si se indica dicha fecha, se devolverán los registros modificados desde esa fecha (incluída) hasta el día actual.

Historial de cambios

Lista actualizada con los cambios realizados. Se indican las fechas y la descripción de los cambios. Se muestra del cambio más reciente al más antiguo.

05/05/2025

  • Modificación en GetDelegaciones: inclusión de todos los campos de Persona Jurídica y el campo textoLOPD

26/02/2025

  • Creación de GetPacienteId y GetPaises
  • Modificación en GetDoctores: inclusión de los campos titulacion, numColegiado, observaciones y fotografia

30/01/2025

  • Modificaciones en GetVisitas: inclusión de los campos observaciones, salaID y consultorioID
  • Modificación en GetPacientes: inclusión del campo observacionesHistoria

18/10/2024

  • Modificación en GetPacientes: inclusión del campo tipoPaciente

08/10/2024

  • Creación de SetLlamada
  • Modificación en GetDoctores

03/10/2024

  • Incorporación del parámetro pacienteID en GetVisitas, GetVentas, GetCobros, GetPresupuestos, GetPresupuestosLineas, GetBonos y GetVentasDirectas

06/08/2024

  • Modificación en GetPacientes: inclusión del campo fechaAlta

29/07/2024

  • Modificación en GetDocumentos: inclusión del campo ext

26/07/2024

  • Creación de GetDocumentos

19/06/2024

  • Ampliación de GetDoctores, GetDelegaciones, GetVisitas, GetPresupuestos y GetTarifas
  • Creación de GetConsultorios y GetPresupuestosLineas

08/05/2024

  • Ampliación de GetVisitas

12/04/2024

  • Ampliación de GetPacientes

26/02/2024

  • Modificación en GetPacientes, incluyendo paginación de resultados

19/02/2024

  • Incorporación del parámetro de entrada fechaModificacion a todos los métodos de devolución de datos

15/02/2024

  • Modificación de fechas

30/01/2024

  • Modificación horario permitido de llamadas
  • Añadido 2FA para todas las llamadas

19/12/2023

  • Creación del documento
Languages
Servers
Test

https://ws.ofimedic.com/ofimedicws/test/services.asmx/

Autenticación

Autenticación con el servidor.

Operations

Obtención de datos

Obtiene las listas con los datos a partir de los valores especificados.

Operations

Usuarios y facultativos

Request

Obtiene los usuarios/facultativos de Ofimedic.

Query
tokenstringrequired

Código o Token de la sesión.

Example: token=1234
doctorIDstring

Identificador del facultativo.

Example: doctorID=1
showBajasstring

Vacío o “1” para devolver todos los registros. “0” para devolver solo los registros dados de alta.

Example: showBajas=1
fechaModificacionstring(date)

Fecha de modificación.

Example: fechaModificacion=01/01/1970
curl -i -X GET \
  -u <username>:<password> \
  'https://ws.ofimedic.com/ofimedicws/test/services.asmx/GetDoctores?doctorID=1&fechaModificacion=01%2F01%2F1970&showBajas=1&token=1234'

Responses

Relación de facultativos

Bodyapplication/jsonArray [
idinteger

Identificador del facultativo.

Example: 1
esUsuarioboolean

“True” si es usuario, “False” si no es usuario.

Example: true
esDoctorboolean

“True” si es facultativo, “False” si no es facultativo.

Example: false
usuariostring

Nombre del usuario en caso de que esUsuario sea “True”.

Example: "nombre.usuario"
nombrestring

Nombre del facultativo.

Example: "(Nombre)"
apellidosstring

Apellidos del facultativo.

Example: "(Apellidos)"
dnistring

DNI del facultativo.

Example: "00000000A"
direccionstring

Dirección del facultativo.

Example: "Gran Via 1"
poblacionstring

Población del facultativo.

Example: "Barcelona"
cpstring

Código postal del facultativo.

Example: "01234"
provinciastring

Provincia del facultativo.

Example: "Barcelona"
paisstring

País del facultativo.

Example: "España"
telefonoFijostring

Teléfono fijo del facultativo.

Example: "900000000"
telefonoMovilstring

Teléfono móvil del facultativo.

Example: "600000000"
emailstring(email)

Email del facultativo.

Example: "example@correo.com"
delegacionesArray of objects

Delegaciones disponibles del facultativo.

especialidadesArray of objects

Especialidades asignadas al facultativo.

tiposAtencionArray of objects

Tipos de atención disponibles del facultativo.

idExternostring

Identificador externo del facultativo.

Example: "1"
idExternoAltstring

Identificador externo alternativo del facultativo.

Example: "99"
bajaboolean

“True” si el registro está dado de baja, “False” si no está dado de baja.

Example: false
titulacionstring

Titulación del facultativo.

Example: "Dr."
numColegiadostring

Número de colegiado.

observacionesstring

Observaciones del facultativo.

fotografiastring

Fotografía del facultativo.

Sólo se devuelve la fotografía en base64 si se obtienen los datos de un solo facultativo.

]
Response
application/json
[ { "id": 1, "esUsuario": true, "esDoctor": true, "usuario": "nombre.usuario", "nombre": "(Nombre)", "apellidos": "(Apellidos)", "dni": "00000000A", "direccion": "Gran Via 1", "poblacion": "Barcelona", "cp": "01234", "provincia": "Barcelona", "pais": "España", "telefonoFijo": "900000000", "telefonoMovil": "600000000", "email": "example@correo.com", "delegaciones": [], "especialidades": [], "tiposAtencion": [], "idExterno": "2", "idExternoAlt": "99", "baja": false, "titulacion": "Dr.", "numColegiado": "", "observaciones": "", "fotografia": "" } ]

Ventas

Request

Obtiene las ventas de Ofimedic.

Query
tokenstringrequired

Código o Token de la sesión.

Example: token=1234
ventaIDstring

Identificador de la venta.

Example: ventaID=1
pacienteIDstring

Identificador del paciente.

Example: pacienteID=1
fechaIniciostring(date)

Fecha de inicio. Se indica en formato de fecha (dd/mm/aaaa).
Obligatorio indicar este parámetro si no se indica el parámetro ventaID.
La diferencia máxima entre este parámetro y fechaFin debe ser de un año natural. Debe ser anterior a fechaFin.

Example: fechaInicio=01/01/2024
fechaFinstring(date)

Fecha de finalización. Se indica en formato de fecha (dd/mm/aaaa).
Obligatorio indicar este parámetro si no se indica el parámetro ventaID.
La diferencia máxima entre fechaInicio y este parámetro debe ser de un año natural. Debe ser posterior a fechaInicio.

Example: fechaFin=31/12/2024
delegacionIDstring

Identificador de la delegación.

Example: delegacionID=1
fechaModificacionstring(date)

Fecha de modificación.

Example: fechaModificacion=01/01/1970
curl -i -X GET \
  -u <username>:<password> \
  'https://ws.ofimedic.com/ofimedicws/test/services.asmx/GetVentas?delegacionID=1&fechaFin=31%2F12%2F2024&fechaInicio=01%2F01%2F2024&fechaModificacion=01%2F01%2F1970&pacienteID=1&token=1234&ventaID=1'

Responses

Relación de ventas

Bodyapplication/jsonArray [
idinteger

Identificador de la venta.

Example: 1
tipostring

Tipo de venta.

Example: "Visita"
fechastring(date)

Fecha de la venta.
El formato de fecha es "aaaa-mm-dd".

Example: "2024-04-29"
pacienteIdinteger

Identificador del paciente de la venta.

Example: 1
visitaIdinteger

Identificador de la visita de la venta, si está asociado.

Example: 1
presupuestoIdinteger

Identificador del presupuesto de la venta, si está asociado.

Example: 1
bonoIdinteger

Identificador del bono de la venta, si está asociado.

Example: 1
ventaDirectaIdinteger

Identificador de la venta directa de la venta, si está asociado.

Example: 1
estadostring

Estado de la venta.

Example: "Finalizado"
previsionnumber(float)

Previsión de la venta.
Se tienen en cuenta variables como ImporteDescuento.
Admite decimales.

Example: 19.99
baseImponiblenumber(float)

Base imponible de la venta.
Admite decimales.

Example: 15
precioCostenumber(float)

Precio coste de la venta.
Admite decimales.

Example: 5.02
ImporteDescuentonumber(float)

Importe del descuento de la venta.
Admite decimales.

Example: 4.99
motivoDescuentostring

Motivo del descuento, en caso de que lo tenga.

Example: "Referencia: Amigos"
formaPagostring

Forma de pago del cobro asociado a la venta.

Example: "Efectivo"
tarifaIdinteger

Identificador de la tarifa de la venta.

Example: 1
categoriaIdinteger

Identificador de la categoría de la tarifa de la venta.

Example: 1
grupoIdinteger

Identificador del grupo de la categoría de la tarifa de la venta.

Example: 1
subGrupoIdinteger

Identificador del SubGrupo de la venta.

Example: 1
subGrupostring

Nombre del SubGrupo de la venta.

Example: "Medicina"
servicioArticuloIdinteger

Identificador del Servicio/Artículo de la venta.

Example: 1
servicioArticulostring

Nombre del Servicio/Artículo de la venta.

Example: "Primera consulta"
servicioArticuloMargennumber(float)

Porcentaje de margen del Servicio/Artículo de la venta.
Admite decimales.

Example: 95
doctorIdinteger

Identificador del facultativo de la venta.

Example: 1
derivadoIdinteger

Identificador del derivado de la venta.
Está relacionado con doctorId.

Example: 2
origenstring

Origen de la venta.

Example: "Visita"
fechaCobrostring(date)

Fecha del cobro asociado a la venta.
El formato de fecha es "aaaa-mm-dd".

Example: "2024-06-14"
delegacionIdinteger

Identificador de la delegación de la venta.

Example: 1
fechaAltastring(date)

Fecha de alta del paciente de la venta.
El formato de fecha es "aaaa-mm-dd".

Example: "2022-10-06"
fechaConsumoSesionBonostring(date)

Fecha de consumo de la sesión del bono, si está asociado.
El formato de fecha es "aaaa-mm-dd".

Example: "2024-03-01"
fechaRealizadostring(date)

Fecha de realización de la venta.
El formato de fecha es "aaaa-mm-dd".

Example: "2024-08-23"
cantidadinteger

Unidades vendidas.

Example: 7
facturaIDinteger

Identificador de la factura asociada a la venta.

Example: 1
fechaFacturastring(date)

Fecha de la factura asociada a la venta.
El formato de fecha es "aaaa-mm-dd".

Example: "2024-04-29"
]
Response
application/json
[ { "id": 1, "tipo": "Visita", "fecha": "2024-04-29", "pacienteId": 1, "visitaId": 6583, "presupuestoId": 402, "bonoId": 102, "ventaDirectaId": 57, "estado": "Finalizado", "prevision": 72.98, "baseImponible": 80, "precioCoste": 15, "ImporteDescuento": 7.02, "motivoDescuento": "Referencia: Amigos", "formaPago": "Efectivo", "tarifaId": 1, "categoriaId": 5, "grupoId": 2, "subGrupoId": 1, "subGrupo": "Medicina", "servicioArticuloId": 1, "servicioArticulo": "Primera consulta", "servicioArticuloMargen": 90, "doctorId": 7, "derivadoId": 5, "origen": "Visita", "fechaCobro": "2024-06-14", "delegacionId": 1, "fechaAlta": "2022-10-06", "fechaConsumoSesionBono": "2024-03-01", "fechaRealizado": "2024-08-23", "cantidad": 7, "facturaID": 1, "fechaFactura": "2024-04-29" } ]

Ventas directas

Request

Obtiene las ventas directas de Ofimedic.

Query
tokenstringrequired

Código o Token de la sesión.

Example: token=1234
ventaDirectaIDstring

Identificador de la venta directa.

Example: ventaDirectaID=1
pacienteIDstring

Identificador del paciente.

Example: pacienteID=1
fechaIniciostring(date)

Fecha de inicio. Se indica en formato de fecha (dd/mm/aaaa).
Obligatorio indicar este parámetro si no se indica el parámetro ventaDirectaID.
La diferencia máxima entre este parámetro y fechaFin debe ser de un año natural. Debe ser anterior a fechaFin.

Example: fechaInicio=01/01/2024
fechaFinstring(date)

Fecha de finalización. Se indica en formato de fecha (dd/mm/aaaa).
Obligatorio indicar este parámetro si no se indica el parámetro ventaDirectaID.
La diferencia máxima entre fechaInicio y este parámetro debe ser de un año natural. Debe ser posterior a fechaInicio.

Example: fechaFin=31/12/2024
delegacionIDstring

Identificador de la delegación.

Example: delegacionID=1
fechaModificacionstring(date)

Fecha de modificación.

Example: fechaModificacion=01/01/1970
curl -i -X GET \
  -u <username>:<password> \
  'https://ws.ofimedic.com/ofimedicws/test/services.asmx/GetVentasDirectas?delegacionID=1&fechaFin=31%2F12%2F2024&fechaInicio=01%2F01%2F2024&fechaModificacion=01%2F01%2F1970&pacienteID=1&token=1234&ventaDirectaID=1'

Responses

Relación de ventas directas

Bodyapplication/jsonArray [
idinteger

Identificador de la venta directa.

Example: 1
fechastring(date)

Fecha de la venta directa.
El formato de fecha es "aaaa-mm-dd".

Example: "2023-11-22"
pacienteIdinteger

Identificador del paciente de la venta directa.

Example: 1
doctorIdinteger

Identificador del facultativo de la venta directa.

Example: 1
delegacionIdinteger

Identificador de la delegación de la venta directa.

Example: 1
]
Response
application/json
[ { "id": 1, "fecha": "2023-11-22", "pacienteId": 1, "doctorId": 1, "delegacionId": 1 } ]

Otras acciones

Respuesta de búsqueda de datos a partir de los parámetros y valores especificados.

Operations