Saltar al contenido principal

Resolver la identidad de un paciente

GET/patients/resolve

Busca una coincidencia exacta dentro del tenant derivado del token mediante tipo y numero de documento normalizados. No realiza busquedas parciales ni retorna pacientes de otra organizacion.

curl --request GET \
  --url 'https://citamedica.magnosoft.com.co/api/external/v1/patients/resolve' \
  --header 'Authorization: Bearer ${ACCESS_TOKEN}' \
  --header 'X-Correlation-Id: 10000000-0000-4000-8000-000000000001' \
  --data-urlencode 'documentType=CC' \
  --data-urlencode 'documentNumber=900000001'

Request

Headers y parametros

NombreUbicacionRequeridoDescripcion
X-Correlation-IdheaderNoUUID generado por el consumidor para trazabilidad; el servidor genera uno si se omite.
documentTypequerySiCodigo de tipo documental acordado con el tenant.
documentNumberquerySiNumero documental sintetico; se normaliza para coincidencia exacta.

Responses

200Resultado determinista de resolucion; `matched=false` no es un error.

Content-Type: application/json

CampoTipoRequeridoDescripcion
matchedbooleanSi-
patientobjectNo-

Ejemplo

ejemplo de respuesta 200
{
  "matched": true,
  "patient": {
    "documentNumber": "900000001",
    "documentType": "CC",
    "email": "paciente@example.invalid",
    "fullName": "Paciente Ejemplo",
    "id": "20000000-0000-4000-8000-000000000001",
    "phone": "3000000000",
    "status": "ACTIVE",
    "version": 1
  }
}
400Solicitud mal formada o parametro invalido.

Content-Type: application/problem+json

CampoTipoRequeridoDescripcion
codestringSi-
correlationIdstring (uuid)Si-
detailstringNoExplicacion segura sin PII ni secretos.
errorsobject[]No-
instancestring (uri-reference)No-
statusintegerSi-
titlestringSi-
typestring (uri)SiURI estable que identifica la clase de problema.

Ejemplo

ejemplo de respuesta 400
{
  "code": "INVALID_REQUEST",
  "correlationId": "10000000-0000-4000-8000-000000000001",
  "detail": "Revise los parametros enviados.",
  "status": 400,
  "title": "Solicitud invalida",
  "type": "https://magnosoft.com.co/problems/invalid-request"
}
401Token ausente, invalido, vencido o con audience incorrecta.

Content-Type: application/problem+json

CampoTipoRequeridoDescripcion
codestringSi-
correlationIdstring (uuid)Si-
detailstringNoExplicacion segura sin PII ni secretos.
errorsobject[]No-
instancestring (uri-reference)No-
statusintegerSi-
titlestringSi-
typestring (uri)SiURI estable que identifica la clase de problema.

Ejemplo

ejemplo de respuesta 401
{
  "code": "INVALID_ACCESS_TOKEN",
  "correlationId": "10000000-0000-4000-8000-000000000001",
  "status": 401,
  "title": "Autenticacion requerida",
  "type": "https://magnosoft.com.co/problems/unauthorized"
}
403Service principal autenticado sin el scope requerido.

Content-Type: application/problem+json

CampoTipoRequeridoDescripcion
codestringSi-
correlationIdstring (uuid)Si-
detailstringNoExplicacion segura sin PII ni secretos.
errorsobject[]No-
instancestring (uri-reference)No-
statusintegerSi-
titlestringSi-
typestring (uri)SiURI estable que identifica la clase de problema.

Ejemplo

ejemplo de respuesta 403
{
  "code": "INSUFFICIENT_SCOPE",
  "correlationId": "10000000-0000-4000-8000-000000000001",
  "status": 403,
  "title": "Permiso insuficiente",
  "type": "https://magnosoft.com.co/problems/forbidden"
}
429Limite de solicitudes excedido para el service principal.

Content-Type: application/problem+json

CampoTipoRequeridoDescripcion
codestringSi-
correlationIdstring (uuid)Si-
detailstringNoExplicacion segura sin PII ni secretos.
errorsobject[]No-
instancestring (uri-reference)No-
statusintegerSi-
titlestringSi-
typestring (uri)SiURI estable que identifica la clase de problema.

Ejemplo

ejemplo de respuesta 429
{
  "code": "RATE_LIMIT_EXCEEDED",
  "correlationId": "10000000-0000-4000-8000-000000000001",
  "status": 429,
  "title": "Demasiadas solicitudes",
  "type": "https://magnosoft.com.co/problems/rate-limit"
}