Skip to main content

Overview

The eligibility operation validates patient coverage and retrieves member information from the health insurance system. This is typically the first operation performed before registering medical services.

Operation Method

Hl7Result<ElegibilidadResponse> consultarElegibilidad(ElegibilidadRequest request)
Service Location: Hl7Service.java:26-37 Endpoint URL: Retrieved via EnvironmentConfig.getHl7ElegibilidadUrl()

Request Structure

ElegibilidadRequest

The request object contains operation data, technical parameters, and provider information.

Operation Data Fields

modo
String
required
Operation mode. Single character field (max length: 1)
creden
String
required
Credential number. Fixed length: 19 characters
alta
String
Registration timestamp in format: yyyy-MM-dd'T'HH:mm:ss
fecdif
String
Service date in format: yyyy-MM-dd
manual
Manual
Manual processing indicator. Enum values:
  • MANUAL (“0”)
  • CAPITADOR (“C”)
  • COMSULTA (“L”)

Technical Data Fields

ticketExt
Integer
External ticket number for tracking
termId
String
Terminal identifier
interNro
Integer
Internal transaction number

Provider Fields

cuit
String
Provider CUIT (tax identification number)
oriMatri
String
Provider registration origin

Previous Result Fields

autoriz
Integer
Previous authorization number if applicable
rechaExt
Integer
Previous rejection code if applicable

Example Request

ElegibilidadRequest request = new ElegibilidadRequest();
request.setModo("N");
request.setCreden("1234567890123456789");
request.setAlta("2024-03-15T10:30:00");
request.setFecdif("2024-03-15");
request.setCuit("20123456789");

Hl7Result<ElegibilidadResponse> result = hl7Service.consultarElegibilidad(request);

Response Structure

ElegibilidadResponse

The response contains member information and eligibility status.

Member Information

apeNom
String
Patient’s full name (last name and first name)
pmi
String
Patient Medical Identifier
edad
Integer
Patient age
sexo
String
Patient sex
sexoAuto
String
Authorized sex value
generoAuto
String
Authorized gender value

Coverage Information

planCodi
String
Plan code identifier
gravado
String
Tax status indicator
leyimp
String
Tax law applicability

Transaction Data

transac
String
Transaction identifier
transacAlta
String
Transaction registration timestamp

Rejection Fields

rechaCabecera
Integer
Header rejection code. Critical: If this value is greater than 0, the eligibility check is rejected.
rechaCabeDeno
String
Human-readable rejection description

Diagnostic Information

icdDeno
String
ICD code description

Example Response (Approved)

{
  "planCodi": "PLAN001",
  "apeNom": "DOE, JOHN",
  "pmi": "123456789",
  "edad": 35,
  "sexo": "M",
  "transac": "789456123",
  "rechaCabecera": 0,
  "rechaCabeDeno": null,
  "gravado": "S",
  "leyimp": "N"
}

Example Response (Rejected)

{
  "planCodi": "PLAN001",
  "apeNom": "DOE, JOHN",
  "pmi": "123456789",
  "rechaCabecera": 105,
  "rechaCabeDeno": "Credencial vencida",
  "transac": "789456124"
}

Validation Logic

The service validates the response using the following rules (Hl7Service.java:111-129):

Rejection Detection

if (r.getRechaCabecera() != null && r.getRechaCabecera() > 0) {
    return Hl7Result.rejected(
        r,
        Hl7Error.functional(
            String.valueOf(r.getRechaCabecera()),
            r.getRechaCabeDeno()
        )
    );
}
Validation Rule: If rechaCabecera is present and greater than 0, the eligibility check is considered rejected. The rejection code and description are available in rechaCabecera and rechaCabeDeno respectively.

Result Status

The operation returns an Hl7Result<ElegibilidadResponse> with the following possible statuses: OK - Eligibility confirmed
Hl7Result.ok(response)
  • rechaCabecera is null, 0, or negative
  • Patient is eligible for services
  • Response data contains valid member information
REJECTED - Eligibility denied
Hl7Result.rejected(response, error)
  • rechaCabecera > 0
  • Response includes rejection code and description
  • Contains functional error with rejection details
ERROR - Technical failure
Hl7Result.error(error)
  • Network error, invalid response, or parsing failure
  • No response data available
  • Contains technical error details

Handling Results

Hl7Result<ElegibilidadResponse> result = hl7Service.consultarElegibilidad(request);

if (result.isOk()) {
    // Eligibility confirmed
    ElegibilidadResponse data = result.getData().get();
    System.out.println("Patient: " + data.getApeNom());
    System.out.println("Plan: " + data.getPlanCodi());
    System.out.println("PMI: " + data.getPmi());
    
} else if (result.getStatus() == Hl7Status.REJECTED) {
    // Eligibility rejected by system
    ElegibilidadResponse data = result.getData().get();
    Hl7Error error = result.getIssue().get();
    
    System.err.println("Rejection code: " + error.getCode());
    System.err.println("Reason: " + error.getMessage());
    System.err.println("Patient: " + data.getApeNom());
    
} else if (result.isError()) {
    // Technical error
    Hl7Error error = result.getIssue().get();
    System.err.println("Technical error: " + error.getMessage());
}

Environment Configuration

The eligibility endpoint URL is constructed using:
EnvironmentConfig.getHl7ElegibilidadUrl(SessionContext.getEnvironment())
URL Pattern (EnvironmentConfig.java:49-55):
{baseUrl}{apiContextPath}{apiVersionV3}{hl7ContextPath}/elegibilidad
Example: https://api.example.com/api/v3/hl7/elegibilidad

Registration Operations

Register services after confirming eligibility

Result Types

Handle HL7 errors and rejections

Build docs developers (and LLMs) love