You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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
Compile all programs using CA-IDEAL compiler
Define Datacom tables and load test data
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