Insert hospital segment. A file consists of all hospital segment to be added. The programs reads the input file and add the segments to the DB.
IDENTIFICATION DIVISION.
PROGRAM-ID. HOSPPRG.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 IMS-FUNCTIONS.
05 WS-GU PIC X(04) VALUE 'GU'.
05 WS-GN PIC X(04) VALUE 'GN'.
05 WS-GNP PIC X(04) VALUE 'GNP'.
05 WS-ISRT PIC X(04) VALUE 'ISRT'.
05 WS-REPL PIC X(04) VALUE 'REPL'.
05 WS-DLET PIC X(04) VALUE 'DLET'.
05 WS-GHU PIC X(04) VALUE 'GHU'.
***** I/O AREAS ***************************
01 HOSP-I-O-AREA.
05 HOSP-NAME PIC X(20).
05 HOSP-ADDRESS PIC X(30).
05 HOSP-PHONE PIC X(10).
01 WARD-I-O-AREA.
05 WARD-NO PIC X(04).
05 WARD-BEDAVAIL PIC X(03).
05 WARD-TYPE PIC X(20).
01 PATIENT-I-O-AREA.
05 PATIENT-BED-IDENT PIC X(04).
05 PATIENT-NAME PIC X(20).
05 PATIENT-DATEADMT PIC X(06).
01 WS-I-O-AREA PIC X(100).
************* UNQUALIFIED SSA ******************
01 UNQUAL-HOSPITAL-SSA PIC X(09) VALUE 'HOSPITAL'.
01 UNQUAL-WARD-SSA PIC X(09) VALUE 'WARD'.
01 UNQUAL-PATIENT-SSA PIC X(09) VALUE 'PATIENT'.
************* QUALIFIED SSA ********************
01 HOSPITAL-SSA.
05 FILLER PIC X(19)
VALUE 'HOSPITAL(HOSPNAME='.
05 HOSPNAME-SSA PIC X(20).
05 FILLER PIC X VALUE ')'.
01 WARD-SSA.
05 FILLER PIC X(19)
VALUE 'WARD (WARDNO ='.
05 WARDNO-SSA PIC X(04).
05 FILLER PIC X VALUE ')'.
01 PATIENT-SSA.
05 FILLER PIC X(19)
VALUE 'PATIENT (PATNAME ='.
05 PATIENT-SSA PIC X(04).
05 FILLER PIC X VALUE ')'.
LINKAGE SECTION.
002400 01 PCB-MASK.
002500 05 TEST-DBD-NAME PIC X(08).
002600 05 TEST-LEVEL-NO PIC X(02).
002700 05 STATUS-CODE-1 PIC X(02).
05 KEY-LENGTH PIC S9(05) COMP.
05 SEG-NAME-FDBK-1 PIC X(08).
05 LENGTH-FDBK-1 PIC S9(05) COMP.
05 FILLER PIC S9(05) COMP.
05 TEST-KEYFEED PIC X(26).
PROCEDURE DIVISION.
ENTRY 'DLITCBL' USING PCB-MASK.
PERFORM PROCESSH-PARA.
PERFORM PROCESSW-PARA.
PERFORM PROCESSP-PARA.
GOBACK.
PROCESSH-PARA.
MOVE 'KK HOSPITAL' TO HOSP-NAME.
MOVE '1234' TO HOSP-PHONE.
MOVE 'TVM' TO HOSP-ADDRESS.
CALL 'CBLTDLI' USING WS-ISRT,
PCB-MASK,
HOSP-I-O-AREA,
UNQUAL-HOSPITAL-SSA.
IF STATUS-CODE-1 EQUAL TO SPACES
DISPLAY 'KK HOSPITAL INSERTED'
END-IF.
MOVE 'SS HOSPITAL' TO HOSP-NAME.
MOVE '1235' TO HOSP-PHONE.
MOVE 'KOCHI' TO HOSP-ADDRESS.
CALL 'CBLTDLI' USING WS-ISRT,
PCB-MASK,
HOSP-I-O-AREA,
UNQUAL-HOSPITAL-SSA.
IF STATUS-CODE-1 = ' '
DISPLAY 'SS HOSPITAL INSERTED'
END-IF.
MOVE 'XX HOSPITAL' TO HOSP-NAME.
MOVE '1236' TO HOSP-PHONE.
MOVE 'ERNAKULAM' TO HOSP-ADDRESS.
CALL 'CBLTDLI' USING WS-ISRT,
PCB-MASK,
HOSP-I-O-AREA,
UNQUAL-HOSPITAL-SSA.
IF STATUS-CODE-1 = ' '
DISPLAY 'XX HOSPITAL INSERTED'
END-IF.
PROCESSW-PARA.
MOVE 'KK HOSPITAL' TO HOSPNAME-SSA.
MOVE 'ICU' TO WARD-TYPE.
MOVE '1111' TO WARD-NO.
MOVE '11' TO WARD-BEDAVAIL.
CALL 'CBLTDLI' USING WS-ISRT,
PCB-MASK,
WARD-I-O-AREA,
HOSPITAL-SSA,
UNQUAL-WARD-SSA.
DISPLAY STATUS-CODE-1.
IF STATUS-CODE-1 = ' '
DISPLAY 'SUCCESS - ICU'
END-IF.
MOVE 'SURGERY' TO WARD-TYPE.
MOVE '55' TO WARD-NO.
MOVE '22' TO WARD-BEDAVAIL.
MOVE 'XX HOSPITAL' TO HOSPNAME-SSA.
CALL 'CBLTDLI' USING WS-ISRT,
PCB-MASK,
WARD-I-O-AREA,
HOSPITAL-SSA,
UNQUAL-WARD-SSA.
DISPLAY STATUS-CODE-1.
IF STATUS-CODE-1 = ' '
DISPLAY 'SUCCESS - SURGERY'
END-IF.
PROCESSP-PARA.
MOVE 'RISHIN' TO PATIENT-NAME.
MOVE '0002' TO PATIENT-BED-IDENT.
MOVE '121290' TO PATIENT-DATEADMT.
MOVE '55' TO WARDNO-SSA.
MOVE 'XX HOSPITAL' TO HOSPNAME-SSA.
CALL 'CBLTDLI' USING WS-ISRT,
PCB-MASK,
PATIENT-I-O-AREA,
HOSPITAL-SSA,
WARD-SSA,
UNQUAL-PATIENT-SSA.
IF STATUS-CODE-1 = ' '
DISPLAY 'SUCCESS - RISHIN'
END-IF.
Thursday, March 3, 2011
PSBGEN
//VIONE06A JOB 43312,'EMAN',
// CLASS=A,MSGCLASS=H,NOTIFY=&SYSUID
//*------------------------------------------------------------------*//
// SET PSBMBR=HOSPPSB
// SET PSBSRC=VIONE06.IMS.JCLS
// SET PSBLIB=VIONE06.IMS.PSBLOAD
//*------------------------------------------------------------------*//
//COMPILE EXEC PGM=ASMA90,REGION=0M,
// PARM=(OBJECT,NODECK,NODBCS,
// 'SIZE(MAX,ABOVE)')
//SYSLIN DD UNIT=SYSDA,DISP=(,PASS),
// SPACE=(80,(100,100),RLSE),
// DCB=(BLKSIZE=80,RECFM=F,LRECL=80)
//SYSLIB DD DSN=IMS810.SDFSMAC,DISP=SHR
//SYSPRINT DD SYSOUT=*,DCB=BLKSIZE=1089,
// SPACE=(121,(300,300),RLSE,,ROUND)
//SYSUT1 DD UNIT=SYSDA,DISP=(,DELETE),
// SPACE=(CYL,(10,5))
//SYSIN DD DISP=SHR,DSN=&PSBSRC(&PSBMBR)
//*------------------------------------------------------------------*//
//LINK EXEC PGM=IEWL,PARM='XREF,LIST',
// COND=(0,LT,COMPILE),REGION=0M
//SYSLIN DD DSN=*.COMPILE.SYSLIN,DISP=(OLD,DELETE)
//SYSPRINT DD SYSOUT=*,DCB=BLKSIZE=1089,
// SPACE=(121,(90,90),RLSE)
//SYSLMOD DD DISP=SHR,DSN=&PSBLIB(&PSBMBR)
//SYSUT1 DD UNIT=(SYSDA,SEP=(SYSLMOD,SYSLIN)),
// SPACE=(1024,(100,10),RLSE),DISP=(,DELETE)
**************************** Bottom of Data ****************************
// CLASS=A,MSGCLASS=H,NOTIFY=&SYSUID
//*------------------------------------------------------------------*//
// SET PSBMBR=HOSPPSB
// SET PSBSRC=VIONE06.IMS.JCLS
// SET PSBLIB=VIONE06.IMS.PSBLOAD
//*------------------------------------------------------------------*//
//COMPILE EXEC PGM=ASMA90,REGION=0M,
// PARM=(OBJECT,NODECK,NODBCS,
// 'SIZE(MAX,ABOVE)')
//SYSLIN DD UNIT=SYSDA,DISP=(,PASS),
// SPACE=(80,(100,100),RLSE),
// DCB=(BLKSIZE=80,RECFM=F,LRECL=80)
//SYSLIB DD DSN=IMS810.SDFSMAC,DISP=SHR
//SYSPRINT DD SYSOUT=*,DCB=BLKSIZE=1089,
// SPACE=(121,(300,300),RLSE,,ROUND)
//SYSUT1 DD UNIT=SYSDA,DISP=(,DELETE),
// SPACE=(CYL,(10,5))
//SYSIN DD DISP=SHR,DSN=&PSBSRC(&PSBMBR)
//*------------------------------------------------------------------*//
//LINK EXEC PGM=IEWL,PARM='XREF,LIST',
// COND=(0,LT,COMPILE),REGION=0M
//SYSLIN DD DSN=*.COMPILE.SYSLIN,DISP=(OLD,DELETE)
//SYSPRINT DD SYSOUT=*,DCB=BLKSIZE=1089,
// SPACE=(121,(90,90),RLSE)
//SYSLMOD DD DISP=SHR,DSN=&PSBLIB(&PSBMBR)
//SYSUT1 DD UNIT=(SYSDA,SEP=(SYSLMOD,SYSLIN)),
// SPACE=(1024,(100,10),RLSE),DISP=(,DELETE)
**************************** Bottom of Data ****************************
HOSPPSB
PCB TYPE=DB,NAME=HOSPDBD,KEYLEN=28,PROCOPT=A
SENSEG NAME=HOSPITAL,PARENT=0
SENSEG NAME=WARD,PARENT=HOSPITAL
SENSEG NAME=PATIENT,PARENT=WARD
PSBGEN LANG=COBOL,PSBNAME=HOSPPSB
END
SENSEG NAME=HOSPITAL,PARENT=0
SENSEG NAME=WARD,PARENT=HOSPITAL
SENSEG NAME=PATIENT,PARENT=WARD
PSBGEN LANG=COBOL,PSBNAME=HOSPPSB
END
DBDGEN
//VIONE06D JOB CLASS=A,MSGCLASS=H,NOTIFY=&SYSUID
//*------------------------------------------------------------------*//
// SET DBDMBR=HOSPDBD
// SET DBDSRC=VIONE06.IMS.JCLS
// SET DBDLIB=VIONE06.IMS.DBDLOAD
//*------------------------------------------------------------------*//
//COMPILE EXEC PGM=ASMA90,REGION=0M,
// PARM=(OBJECT,NODECK,NODBCS,
// 'SIZE(MAX,ABOVE)')
//SYSLIN DD UNIT=SYSDA,DISP=(,PASS),
// SPACE=(80,(100,100),RLSE),
// DCB=(BLKSIZE=80,RECFM=F,LRECL=80)
//SYSLIB DD DSN=IMS810.SDFSMAC,DISP=SHR
//SYSPRINT DD SYSOUT=*,DCB=BLKSIZE=1089,
// SPACE=(121,(300,300),RLSE,,ROUND)
//SYSUT1 DD UNIT=SYSDA,DISP=(,DELETE),
// SPACE=(CYL,(10,5))
//SYSIN DD DISP=SHR,DSN=&DBDSRC(&DBDMBR)
//*------------------------------------------------------------------*//
//LINK EXEC PGM=IEWL,PARM='XREF,LIST',
// COND=(0,LT,COMPILE),REGION=0M
//SYSLIN DD DSN=*.COMPILE.SYSLIN,DISP=(OLD,DELETE)
//SYSPRINT DD SYSOUT=*,DCB=BLKSIZE=1089,
// SPACE=(121,(90,90),RLSE)
//SYSLMOD DD DISP=SHR,DSN=&DBDLIB(&DBDMBR)
//SYSUT1 DD UNIT=(SYSDA,SEP=(SYSLMOD,SYSLIN)),
// SPACE=(1024,(100,10),RLSE),DISP=(,DELETE)
**************************** Bottom of Data ****************************
//*------------------------------------------------------------------*//
// SET DBDMBR=HOSPDBD
// SET DBDSRC=VIONE06.IMS.JCLS
// SET DBDLIB=VIONE06.IMS.DBDLOAD
//*------------------------------------------------------------------*//
//COMPILE EXEC PGM=ASMA90,REGION=0M,
// PARM=(OBJECT,NODECK,NODBCS,
// 'SIZE(MAX,ABOVE)')
//SYSLIN DD UNIT=SYSDA,DISP=(,PASS),
// SPACE=(80,(100,100),RLSE),
// DCB=(BLKSIZE=80,RECFM=F,LRECL=80)
//SYSLIB DD DSN=IMS810.SDFSMAC,DISP=SHR
//SYSPRINT DD SYSOUT=*,DCB=BLKSIZE=1089,
// SPACE=(121,(300,300),RLSE,,ROUND)
//SYSUT1 DD UNIT=SYSDA,DISP=(,DELETE),
// SPACE=(CYL,(10,5))
//SYSIN DD DISP=SHR,DSN=&DBDSRC(&DBDMBR)
//*------------------------------------------------------------------*//
//LINK EXEC PGM=IEWL,PARM='XREF,LIST',
// COND=(0,LT,COMPILE),REGION=0M
//SYSLIN DD DSN=*.COMPILE.SYSLIN,DISP=(OLD,DELETE)
//SYSPRINT DD SYSOUT=*,DCB=BLKSIZE=1089,
// SPACE=(121,(90,90),RLSE)
//SYSLMOD DD DISP=SHR,DSN=&DBDLIB(&DBDMBR)
//SYSUT1 DD UNIT=(SYSDA,SEP=(SYSLMOD,SYSLIN)),
// SPACE=(1024,(100,10),RLSE),DISP=(,DELETE)
**************************** Bottom of Data ****************************
HOSPDBD
PRINT NOGEN
DBD NAME=HOSPDBD,ACCESS=(HDAM),RMNAME=(DFSHDC40,1,500)
DATASET DD1=HOS,DEVICE=3390
SEGM NAME=HOSPITAL,PARENT=0,BYTES=60
FIELD NAME=(HOSPNAME,SEQ,U),BYTES=20,START=1,TYPE=C
SEGM NAME=WARD,PARENT=HOSPITAL,BYTES=40
FIELD NAME=(WARDNO,SEQ,U),BYTES=4,START=1,TYPE=C
FIELD NAME=BEDAVAIL,BYTES=3,START=12,TYPE=C
FIELD NAME=WARDTYPE,BYTES=20,START=16,TYPE=C
SEGM NAME=PATIENT,PARENT=WARD,BYTES=40
FIELD NAME=(BEDIDENT,SEQ,U),BYTES=4,START=1,TYPE=C
FIELD NAME=PATNAME,BYTES=20,START=10,TYPE=C
FIELD NAME=DATEADMT,BYTES=6,START=30,TYPE=C
DBDGEN
FINISH
END
DBD NAME=HOSPDBD,ACCESS=(HDAM),RMNAME=(DFSHDC40,1,500)
DATASET DD1=HOS,DEVICE=3390
SEGM NAME=HOSPITAL,PARENT=0,BYTES=60
FIELD NAME=(HOSPNAME,SEQ,U),BYTES=20,START=1,TYPE=C
SEGM NAME=WARD,PARENT=HOSPITAL,BYTES=40
FIELD NAME=(WARDNO,SEQ,U),BYTES=4,START=1,TYPE=C
FIELD NAME=BEDAVAIL,BYTES=3,START=12,TYPE=C
FIELD NAME=WARDTYPE,BYTES=20,START=16,TYPE=C
SEGM NAME=PATIENT,PARENT=WARD,BYTES=40
FIELD NAME=(BEDIDENT,SEQ,U),BYTES=4,START=1,TYPE=C
FIELD NAME=PATNAME,BYTES=20,START=10,TYPE=C
FIELD NAME=DATEADMT,BYTES=6,START=30,TYPE=C
DBDGEN
FINISH
END
LOADHOSP
//VIONE06A JOB ,,NOTIFY=&SYSUID
//STEP1 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//INDD DD DSN=VIONE08.LOAD,DISP=SHR
//OUTDD DD DSN=VIONE06.MAHESH.HOSP,DISP=SHR
//SYSIN DD *
REPRO -
INFILE (INDD) -
OUTFILE (OUTDD) -
REPLACE
/*
//STEP1 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//INDD DD DSN=VIONE08.LOAD,DISP=SHR
//OUTDD DD DSN=VIONE06.MAHESH.HOSP,DISP=SHR
//SYSIN DD *
REPRO -
INFILE (INDD) -
OUTFILE (OUTDD) -
REPLACE
/*
Wednesday, March 2, 2011
DEFHOSP
Data set VIONE06.IMS.DEFHOSP
//VIONE06K JOB ,,NOTIFY=&SYSUID,CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1),
// LINES=(1,CANCEL)
//STEP1 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
DEFINE CLUSTER (NAME(VIONE06.MAHESH.HOSP) NONINDEXED -
TRACKS (1,1) -
VOLUMES (USER01) -
RECORDSIZE (2041,2041) -
CONTROLINTERVALSIZE (2048))
/*
//VIONE06K JOB ,,NOTIFY=&SYSUID,CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1),
// LINES=(1,CANCEL)
//STEP1 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
DEFINE CLUSTER (NAME(VIONE06.MAHESH.HOSP) NONINDEXED -
TRACKS (1,1) -
VOLUMES (USER01) -
RECORDSIZE (2041,2041) -
CONTROLINTERVALSIZE (2048))
/*