Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Claims Adjudication System

CA-IDEAL/Datacom Training Sample

Overview

This is a JCL-driven Claims Adjudication batch process implemented using CA-IDEAL (4GL) and CA-Datacom/DB. The system processes claim records through multiple validation steps and outputs adjudicated claims with status (PAID/DENIED) and reason codes.

CA-IDEAL is a Fourth Generation Language that provides high-level, English-like syntax for mainframe application development with tight integration to CA-Datacom/DB.

Directory Structure

claims-adjudication/
├── programs/           CA-IDEAL program source
│   ├── CLMADJ00.idl    Main driver program
│   ├── CLMADJ10.idl    Data accuracy validation
│   ├── CLMADJ20.idl    Eligibility verification
│   ├── CLMADJ30.idl    Medical necessity check
│   └── CLMADJ40.idl    Coding & contract rules
├── copybook/           Shared definitions
│   └── CLMPARM.parm    Parameter block definition
├── ddl/                Database definitions
│   └── CLMTABLE.ddl    Datacom tables & dataviews
├── jcl/                Job control language
│   └── CLMADJCL.jcl    Execution JCL
├── testdata/           Sample test data
│   ├── CLMINPUT.sample Input file layout/data
│   └── DATACOM_TABLES.sample Table test data
└── docs/               Documentation
    └── IDEAL_SYNTAX_REFERENCE.md Quick reference

Programs

Program Description
CLMADJ00 Main Driver - orchestrates the adjudication process
CLMADJ10 Data Accuracy & Completeness validation
CLMADJ20 Eligibility & Benefits Verification
CLMADJ30 Medical Necessity & Policy Compliance
CLMADJ40 Coding & Contractual Rules processing

Datacom Dataviews (Tables)

Dataview Description
CLM-CLAIMS Existing claims history (duplicate checking)
CLM-PATIENT Patient master with coverage flag
CLM-PATINS Patient insurance records (deductibles, copay, etc.)
CLM-ALLOWCD Allowed diagnosis/procedure codes
CLM-PROCFEE Provider contract rates and fee schedules
CLM-AUTH Prior authorization records

Processing Flow

CLMADJ00 (Driver)
    │
    ├──► Read Input Claim (RECEIVE)
    │
    ├──► RUN CLMADJ10: Data Accuracy Check
    │         │
    │         ├──► Verify required fields
    │         ├──► FOR FIRST CLM-CLAIMS (duplicate check)
    │         └──► If invalid: Status=DENIED, RETURN
    │
    ├──► RUN CLMADJ20: Eligibility Verification
    │         │
    │         ├──► FOR FIRST CLM-PATIENT (coverage check)
    │         ├──► FOR FIRST CLM-PATINS (get benefits)
    │         ├──► Apply deductible, copay, coinsurance
    │         └──► If not eligible: Status=DENIED, RETURN
    │
    ├──► RUN CLMADJ30: Medical Necessity
    │         │
    │         ├──► FOR FIRST CLM-ALLOWCD (code validation)
    │         ├──► FOR FIRST/EACH CLM-AUTH (auth check)
    │         └──► If not compliant: Status=DENIED, RETURN
    │
    ├──► RUN CLMADJ40: Coding & Contracts
    │         │
    │         ├──► FOR FIRST CLM-PROCFEE (get rates)
    │         └──► Calculate payment amount
    │
    ├──► PRODUCE Output Record (PAID/DENIED)
    │
    └──► LOOP until end of input

Input/Output Files

DD Name Description LRECL
CLMINPUT Input claims file 200
CLMOUTPT Output adjudicated claims 250
CLMRPT Processing report 132

Reason Codes (24 characters)

Code Description
MISSING PATIENT ID Patient ID not provided
MISSING PROVIDER INFO Provider details incomplete
MISSING SERVICE DATE Date of service not provided
MISSING DIAGNOSIS CODE Diagnosis code not provided
DUPLICATE CLAIM FOUND Claim already exists in history
COVERAGE NOT ACTIVE Patient coverage flag is not 'Y'
SERVICE BEFORE COVERAGE Service date before coverage start
SERVICE AFTER COVERAGE Service date after coverage end
INSURANCE REC NOT FOUND No insurance record for patient/plan
CODE NOT ALLOWED Diagnosis code not in allowed list
CODE NOT COVERED Code exists but coverage flag is 'N'
AUTH REQUIRED NOT FOUND Prior authorization missing
AUTH NUMBER NOT FOUND Specified auth number invalid
INVALID PROCEDURE CODE Procedure not in fee schedule
FEE SCHEDULE NOT EFFECT Fee schedule not yet effective
FEE SCHEDULE EXPIRED Fee schedule has expired
CLAIM APPROVED PAID Claim approved for payment

Key CA-IDEAL Constructs Used

Data Access

FOR FIRST CLM-PATIENT
    WHERE CLM-PATIENT.PATIENT-ID = CLM-PATIENT-ID
    
    SET ws-flag = CLM-PATIENT.COVERAGE-ACTIVE-FLAG
    
WHEN NONE
    SET error-flag = 'Y'
ENDFOR

Control Flow

SELECT FIRST
    WHEN CTL-PROCESS-FLAG = 'P'
        SET OUT-STATUS = 'PAID'
    WHEN CTL-PROCESS-FLAG = 'D'
        SET OUT-STATUS = 'DENIED'
    OTHERWISE
        SET OUT-STATUS = 'PENDING'
ENDSELECT

Program Calls

RUN CLMADJ10 USING CLMPARM

Compilation & Execution

  1. Compile all programs using CA-IDEAL compiler
  2. Define Datacom tables and load test data
  3. Submit CLMADJCL.jcl for batch execution

See jcl/CLMADJCL.jcl for complete execution JCL. See docs/IDEAL_SYNTAX_REFERENCE.md for syntax quick reference.

About

Sample claim adjudication batch process using CA IDEAL and Datacomm

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages