You are on page 1of 6

HOSPDBD

************
PRINT NOGEN
DBD NAME=HOSPDB,ACCESS=(HISAM,VSAM)
DATASET DD1=PRIME,OVFLW=OVERFLOW,DEVICE=3390
*
SEGM NAME=HOSPITAL,PARENT=0,BYTES=80
FIELD NAME=(HOSPNAME,SEQ,U),BYTES=20,START=1,TYPE=C
FIELD NAME=ADMIN,BYTES=20,START=61,TYPE=C
*
SEGM NAME=WARD,PARENT=HOSPITAL,BYTES=31
FIELD NAME=(WARDNO,SEQ,U),BYTES=2,START=1,TYPE=C
FIELD NAME=BEDAVAIL,BYTES=3,START=9,TYPE=C
FIELD NAME=WARDTYPE,BYTES=20,START=12,TYPE=C
*
SEGM NAME=PATIENT,PARENT=WARD,BYTES=74
FIELD NAME=(BEDIDENT,SEQ,U),BYTES=4,START=58,TYPE=C
FIELD NAME=PNAME,BYTES=20,START=1,TYPE=C
FIELD NAME=DATEADMT,BYTES=10,START=62,TYPE=C
*
SEGM NAME=SYMPTOM,PARENT=PATIENT,BYTES=30
FIELD NAME=(SYMPDATE,SEQ),BYTES=10,START=21,TYPE=C
FIELD NAME=DIAGNOSE,BYTES=20,START=1,TYPE=C
*
SEGM NAME=TREATMNT,PARENT=PATIENT,BYTES=26
FIELD NAME=(TRDATE,SEQ),BYTES=6,START=21,TYPE=C
FIELD NAME=TRTYPE,BYTES=20,START=1,TYPE=C
*
SEGM NAME=DOCTOR,PARENT=PATIENT,BYTES=80
FIELD NAME=DNAME,BYTES=20,START=1,TYPE=C
FIELD NAME=SPECIALT,BYTES=20,START=61,TYPE=C
*
SEGM NAME=FACILITY,PARENT=HOSPITAL,BYTES=23
FIELD NAME=FACTYPE,BYTES=20,START=1,TYPE=C
FIELD NAME=FACAVAIL,BYTES=3,START=21,TYPE=C
*
DBDGEN
FINISH
END
****************************************************************************
HOSPDBD-JCL
*****************
//TRGA13QQ JOB NOTIFY=TRGA13
// JCLLIB ORDER=(TRGA13.MOULI.IMS.PROCLIB)
// EXEC PROC=DBDGEN,MBR=HOSPGEN,SOUT=A
//C.SYSIN DD DISP=SHR,
// DSN=TRGA13.MOULI.IMS(HOSPGEN)
//
****************************************************************************
HOSPPSB
************
PRINT NOGEN
PCB TYPE=DB,NAME=HOSPDB,PROCOPT=L,KEYLEN=34
SENSEG NAME=HOSPITAL,PARENT=0
SENSEG NAME=WARD,PARENT=HOSPITAL
SENSEG NAME=PATIENT,PARENT=WARD
SENSEG NAME=SYMPTOM,PARENT=PATIENT
SENSEG NAME=TREATMNT,PARENT=PATIENT
SENSEG NAME=DOCTOR,PARENT=PATIENT
PSBGEN LANG=PLI,PSBNAME=HOSPPSB
END
*****************************************************************************
HOSPPSB-JCL
***************
//TRGA13QQ JOB NOTIFY=TRGA13,REGION=1M
// JCLLIB ORDER=(TRGA13.MOULI.IMS.PROCLIB)
// EXEC PROC=PSBGEN,MBR=HOSPPSB,SOUT=A
//C.SYSIN DD DISP=SHR,
// DSN=TRGA13.MOULI.IMS(HOSPPSB)
//
*****************************************************************************
HOSPLOAD
************
LOAD: PROCEDURE(PCB_MASK) OPTIONS(MAIN) REORDER;
DCL PCB_MASK POINTER;
DCL 1 PCB_NAME BASED (PCB_MASK),
2 DBD_NAME CHAR(8),
2 LEVEL_NUMBER CHAR(2),
2 STATUS_CODE CHAR(2),
2 PROC_OPTIONS CHAR(4),
2 JCB_ADDRESS FIXED BIN(31,0),
2 SEGMENT_NAME CHAR(8),
2 KEY_LENGTH FIXED BIN(31,0),
2 NUMBER_SEGS FIXED BIN(31,0),
2 IN_KEY CHAR(42);
DCL PLITDLI ENTRY;
DCL 1 HOSPITAL_SSA,
2 ST_HOSP_SSA CHAR(19) INIT('HOSPITAL(HOSPNAME ='),
2 HOSP_SSA CHAR(20) INIT('APPOLLO HOSPITAL '),
2 END_HOSP_SSA CHAR(1) INIT(')');
DCL 1 HOSPITAL_UQ_SSA,
2 ST_HOSP_SSA CHAR(8) INIT('HOSPITAL'),
2 END_HOSP_SSA CHAR(1) INIT(' ');
DCL 1 WARD_SSA,
2 ST_WARD_SSA CHAR(19) INIT('WARD (WARDNO ='),
2 WARD_SSA CHAR(2) INIT('02'),
2 END_WARD_SSA CHAR(1) INIT(')');
DCL 1 WARD_UQ_SSA,
2 ST_WARD_SSA CHAR(8) INIT('WARD '),
2 END_WARD_SSA CHAR(1) INIT(' ');
DCL 1 PATIENT_SSA,
2 ST_PAT_SSA CHAR(19) INIT('PATIENT (PNAME ='),
2 PAT_SSA CHAR(20) INIT('ESWARI.P '),
2 END_PAT_SSA CHAR(1) INIT(')');
DCL PAT_UQ_SSA CHAR(9) INIT('PATIENT ');
DCL 1 SYMPT_SSA,
2 ST_SYMPT_SSA CHAR(19) INIT('SYMPTOM (PNAME ='),
2 SYMPT_SSA CHAR(20) INIT('SKINS PROBLEM '),
2 END_SYMPT_SSA CHAR(1) INIT(')');
DCL SYMPT_UQ_SSA CHAR(9) INIT('SYMPTOM ');
DCL 1 TRMT_SSA,
2 ST_TRMT_SSA CHAR(19) INIT('TREATMNT(TRTYPE ='),
2 TRMT_SSA CHAR(20) INIT('SPECIAL '),
2 END_TRMT_SSA CHAR(1) INIT(')');
DCL TRMT_UQ_SSA CHAR(9) INIT('TREATMNT ');
DCL 1 DOCT_SSA,
2 ST_DOCT_SSA CHAR(19) INIT('DOCTOR (DNAME ='),
2 DOCT_SSA CHAR(20) INIT('VISHNUSWARAN '),
2 END_DOCT_SSA CHAR(1) INIT(')');
DCL DOCT_UQ_SSA CHAR(9) INIT('DOCTOR ');
DCL 1 HOSP_IO_AREA,
2 HOSP_NAME CHAR(20) INIT('APPOLLO HOSPITAL '),
2 HOSP_ADDR CHAR(30) INIT('CHENNAI'),
2 HOSP_PHONE CHAR(10) INIT('0442515263'),
2 ADMIN_NAME CHAR(20) INIT('NAYAGAN');
DCL 01 WARD_IO_AREA,
02 WARD_NO CHAR(2) INIT('02'),
02 TOT_ROOMS CHAR(3) INIT('001'),
02 TOT_BEDS CHAR(3) INIT('150'),
02 BED_AVAIL CHAR(3) INIT('YES'),
02 WARD_TYPE CHAR(20) INIT('OUT-PATIENT-WARD');
DCL 1 PAT_IO_AREA,
2 PAT_NAME CHAR(20) INIT('ESWARI.P '),
2 PAT_ADDR CHAR(27) INIT('CHENNAI '),
2 PAT_PHONE CHAR(10) INIT('9840555555'),
2 BED_ID CHAR(4) INIT('B101'),
2 DATE_ADMIT CHAR(10) INIT('30/08/2004'),
2 BILL_AMNT FIXED DEC(5) INIT('');
DCL 1 SYMPT_IO_AREA,
2 DIAGONISE CHAR(20) INIT('SKINS PROBLEM '),
2 SYMPT_DATE CHAR(10) INIT('25/04/2004');
DCL 1 TRMT_IO_AREA,
2 TRT_TYPE CHAR(20) INIT('SPECIAL'),
2 TRT_DATE CHAR(6) INIT('300404');
DCL 1 DOCT_IO_AREA,
2 DOCT_NAME CHAR(20) INIT('VISHNUSWARAN '),
2 DOCT_ADDR CHAR(30) INIT('CHENNAI'),
2 DOCT_PHONE CHAR(10) INIT('4455276498'),
2 SPECIAL CHAR(20) INIT('PEADIATRICS');
DCL PARM_COUNT FIXED BINARY(31,0);
DCL DLI_GU CHAR(4) INIT('GU ');
DCL DLI_ISRT CHAR(4) INIT('ISRT');
DCL DLI_REPL CHAR(4) INIT('REPL');
DCL DLI_DLET CHAR(4) INIT('DLET');
DCL DLI_GHU CHAR(4) INIT('GHU ');
DCL 1 WARD_REC,
2 WARD_INFO CHAR(125);
DCL SYSPRINT FILE OUTPUT;
/********************************************************/
/* MAIN LOGIC **/
/********************************************************/
/* LOADING HOSPITAL INFO */
PARM_COUNT = 4;
CALL PLITDLI (PARM_COUNT,
DLI_ISRT,
PCB_MASK,
HOSP_IO_AREA,
HOSPITAL_UQ_SSA);
PUT SKIP LIST('STATUS CODE AFTER HOSP INSERT',STATUS_CODE);
PUT SKIP LIST('HOSP INFO =',STRING(HOSP_IO_AREA));
IF (STATUS_CODE = ' ') THEN
DO;
/* INSERTING WARD INFO */
PUT SKIP LIST('STATUS CODE',STATUS_CODE);
PARM_COUNT = 5;
CALL PLITDLI (PARM_COUNT,
DLI_ISRT,
PCB_MASK,
WARD_IO_AREA,
HOSPITAL_SSA,
WARD_UQ_SSA);
PUT SKIP LIST('STATUS CODE',STATUS_CODE);
END; /*END OF IF (STATUS_CODE = ' ') THEN */
IF (STATUS_CODE = ' ' & STATUS_CODE = 'GE') THEN
DO;
/* INSERTING PATIENT INFO*/
PARM_COUNT = 6;
PUT SKIP LIST('PARM_COUNT',PARM_COUNT);
CALL PLITDLI (PARM_COUNT,
DLI_ISRT,
PCB_MASK,
PAT_IO_AREA,
HOSPITAL_SSA,
WARD_SSA,
PAT_UQ_SSA);
PUT SKIP LIST('AFTER PATIENT INSERT ',STATUS_CODE);
IF (STATUS_CODE = ' ') THEN
DO;
/* INSERTING SYMPTOMS INFO*/
PARM_COUNT = 7;
CALL PLITDLI (PARM_COUNT,
DLI_ISRT,
PCB_MASK,
SYMPT_IO_AREA,
HOSPITAL_SSA,
WARD_SSA,
PATIENT_SSA,
SYMPT_UQ_SSA);
PUT SKIP LIST('AFTER SYMP ISRT',STATUS_CODE);
/* INSERTING TREATEMNT INFO*/
CALL PLITDLI (PARM_COUNT,
DLI_ISRT,
PCB_MASK,
TRMT_IO_AREA,
HOSPITAL_SSA,
WARD_SSA,
PATIENT_SSA,
TRMT_UQ_SSA);
PUT SKIP LIST('AFTER TRMT ISRT',STATUS_CODE);
/* INSERTING DOCTORS INFO */
CALL PLITDLI (PARM_COUNT,
DLI_ISRT,
PCB_MASK,
DOCT_IO_AREA,
HOSPITAL_SSA,
WARD_SSA,
PATIENT_SSA,
DOCT_UQ_SSA);
PUT SKIP LIST('AFTER DOCT ISRT',STATUS_CODE);
END; /* END OF INNER IF */
END; /* END OF OUTER IF */
END LOAD;

********************************************************************************
*
HOSP-COMP
*************
//TRGA13TT JOB NOTIFY=TRGA13,CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1)
//*INVOKE BATCH COBOL COMPILE AND LINK PROCEDURE
//PROC1 JCLLIB ORDER=(TRGA13.MOULI.IMS.PROCLIB)
//STEP1 EXEC PLIIMS,MBR=PLILOAD
//C.SYSIN DD DSN=TRGA13.MOULI.IMS(PLILOAD),DISP=SHR
//C.SYSLIB DD DUMMY
//
********************************************************************************
*
HOSP-RUN
//TRGA13TT JOB NOTIFY=TRGA13,REGION=32M,CLASS=A,MSGLEVEL=(1,1)
//PROC1 JCLLIB ORDER=(TRGA13.MOULI.IMS.PROCLIB)
//STEP01 EXEC PROC=DLIBATCH,SOUT='*',
// MBR=PLILOAD,PSB=HOSPPSB,
// DBRC=N,IRLM=N
//G.IMS DD DSN=TRGA13.MOULI.IMS.PSBLIB,DISP=SHR
// DD DSN=TRGA13.MOULI.IMS.DBDLIB,DISP=SHR
//HOSPFL DD DSN=TRGA13.MOULI.PSOUT,DISP=SHR
//SYSPRINT DD SYSOUT=A
//SYSOUT DD SYSOUT=A
//G.IEFRDER DD DUMMY,
// UNIT=3390,
// DCB=BLKSIZE=6144
//G.IEFRDER2 DD DUMMY,
// UNIT=3390,
// DCB=BLKSIZE=6144
//*
//G.STEPLIB DD
// DD
// DD
// DD DSN=TRGA13.MOULI.LOADLIB(PLILOAD),DISP=SHR
//PRIME DD DISP=OLD,DSN=TRGA13.MOULI.KSDS.PRIME
//OVERFLOW DD DISP=OLD,DSN=TRGA13.MOULI.ESDS.OVERFLOW
//SYSIN DD *
'RAGHU'
/*
//DFSVSAMP DD *
VSRBF=4096,5
VSRBF=2048,5
VSRBF=512,5
IOBF=(2048,5)
//*
//DFSSTAT DD SYSOUT=*
//* REXX EXEC SOURCE LOCATION
//SYSEXEC DD DISP=SHR,
// DSN=IMSIVP51.INSTALIB
// DD DISP=SHR,
// DSN=IMSSYS51.DFSEXEC
//* REXX INPUT LOCATION WHEN STACK IS EMPTY
//SYSTSIN DD *
/*
//* REXX OUTPUT LOCATION
//SYSTSPRT DD SYSOUT=*
//* COBOL OUTPUT LOCATION
//SYSOUT DD SYSOUT=*
//* COBOL ABEND OUTPUT LOCATION
//SYSABOUT DD SYSOUT=*
//*
//*
//
********************************************************************************
*****

You might also like