Professional Documents
Culture Documents
Imsjcl
Imsjcl
//c.sysin dd dsn=dsrn033.ims.pgm(&mbr),disp=shr
//l.syslmod dd dsn=dsrn033.dbdlib(&mbr),disp=shr
//
/**********************psb code
/************************ psb
/***************************psb
/***************************************************************/
/* program to load records into esds file as database*/
/**************************************************************/
hosload: proc(hosp_pcb) options(main);
dcl 1 ward_rec,
3 ward_no char(02),
3 ward_name char(10),
3 ward_aval char(03);
dcl 1 pat_rec,
3 pat_id char(05),
3 pat_name char(20);
dcl 1 hosp_pcb,
3 io_dbd_name char(08),
3 io_segment_level char(02),
3 io_status_code char(02),
3 io_proc_option char(04),
3 filler fixed bin(31),
3 io_segment_name char(08),
3 io_key_length fixed bin(31),
3 io_num_sen_seg fixed bin(31),
3 io_pcb_key char(10);
dcl 1 dli_function,
5 dli_isrt char(04) init('isrt');
on endfile(flfla)
begin;
mo_da='0'b;
put skip list('end of file');
end;
open file(flfla);
do while(mo_da);
select (seg_code);
when('01')
call hosp_proc;
when('02')
call ward_proc;
when('03')
call pat_proc;
otherwise
put skip list ('invalid record type _ ', file_rec );
end;
end;
hosp_proc:proc;
hosp_rec = in_rec;
hosp_name=substr(in_rec,1,20);
hosp_addr=substr(in_rec,21,40);
put skip list('in_rec-->',in_rec);
put skip list('hos_name-->',hosp_name);
put skip list('hos_addr-->',hosp_addr);
call plitdli (cnt,
dli_isrt,
hosp_pcb,
hosp_rec,
hosp_ssa
);
end hosp_proc;
ward_proc:proc;
ward_rec = in_rec;
ward_no=substr(in_rec,1,2);
ward_name=substr(in_rec,3,10);
ward_aval=substr(in_rec,13,3);
end ward_proc;
pat_proc:proc;
pat_rec = in_rec;
pat_id=substr(in_rec,1,5);
pat_name=substr(in_rec,6,20);
put skip list('in_rec-->',in_rec);
put skip list('pat_id-->',pat_id);
put skip list('pat_name-->',pat_name);
call plitdli (cnt,
dli_isrt,
hosp_pcb,
pat_rec,
pat_ssa
);
end pat_proc;
end hosload;
**************************** bottom of data ****************************
/********************* program2
/*dcl 1 ward_rec,
3 ward_no char(02),
3 ward_name char(10),
3 ward_aval char(03);
dcl 1 pat_rec,
3 pat_id char(05),
3 pat_name char(20); */
dcl 1 hosp_pcb,
3 io_dbd_name char(08),
3 io_segment_level char(02),
3 io_status_code char(02),
3 io_proc_option char(04),
3 filler fixed bin(31),
3 io_segment_name char(08),
3 io_key_length fixed bin(31),
3 io_num_sen_seg fixed bin(31),
3 io_pcb_key char(10);
dcl 1 dli_function,
5 dli_gu char(04) init('gu ');
dcl 1 hosp_pcb,
3 io_dbd_name char(08),
3 io_segment_level char(02),
3 io_status_code char(02),
3 io_proc_option char(04),
3 filler fixed bin(31),
3 io_segment_name char(08),
3 io_key_length fixed bin(31),
3 io_num_sen_seg fixed bin(31),
3 io_pcb_key char(10);
dcl 1 dli_function,
5 dli_gu char(04) init('gu ');
dcl 1 hosp_pcb,
3 io_dbd_name char(08),
3 io_segment_level char(02),
3 io_status_code char(02),
3 io_proc_option char(04),
3 filler fixed bin(31),
3 io_segment_name char(08),
3 io_key_length fixed bin(31),
3 io_num_sen_seg fixed bin(31),
3 io_pcb_key char(10);
dcl 1 dli_function,
5 dli_ghu char(04) init('ghu '),
5 dli_repl char(04) init('repl');
dcl 1 hosp_ssa,
5 hos_seg char(09) init('hospital('),
5 fldname char(10) init('hospname ='),
5 val char(20) init('lalithabai hospital '),
5 f1 char(1) init(')');
hosp_addr='chicago southamerica';
end hosrep;
/***************** program4......
dcl 1 ward_rec,
3 ward_no char(02),
3 ward_name char(10),
3 ward_aval char(03);
dcl 1 pat_rec,
3 pat_id char(05),
3 pat_name char(20);
dcl 1 hosp_pcb,
3 io_dbd_name char(08),
3 io_segment_level char(02),
3 io_status_code char(02),
3 io_proc_option char(04),
3 filler fixed bin(31),
3 io_segment_name char(08),
3 io_key_length fixed bin(31),
3 io_num_sen_seg fixed bin(31),
3 io_pcb_key char(27);
dcl 1 dli_function,
5 dli_ghu char(04) init('ghu '),
5 dli_dlet char(04) init('dlet');
dcl 1 hosp_ssa,
5 hos_seg char(09) init('hospital('),
5 fldname char(10) init('hospname ='),
5 val char(20) init('lalithabai hospital '),
5 f1 char(1) init(')');
dcl 1 ward_ssa,
5 ward_seg char(09) init('ward ('),
5 fldname char(10) init('wardno ='),
5 val char(02) init('a2'),
5 f1 char(1) init(')');
dcl 1 pat_ssa,
5 pat_seg char(09) init('patient ('),
5 fldname char(10) init('patid ='),
5 val char(05) init('a0002'),
5 f1 char(1) init(')');
dcl 1 cnt fixed bin(31,0) init(6);
dcl 1 cnt1 fixed bin(31,0) init(3);
end hosdel1;
/********************* program5......
dcl 1 hosp_pcb,
3 io_dbd_name char(08),
3 io_segment_level char(02),
3 io_status_code char(02),
3 io_proc_option char(04),
3 filler fixed bin(31),
3 io_segment_name char(08),
3 io_key_length fixed bin(31),
3 io_num_sen_seg fixed bin(31),
3 io_pcb_key char(27);
dcl 1 dli_function,
5 dli_gn char(04) init('gn ');
do until(io_status_code = 'gb');
do;
call plitdli (cnt,
dli_gn,
hosp_pcb,
hosp_rec,
hosp_ssa
);
dcl 1 hosp_pcb,
3 io_dbd_name char(08),
3 io_segment_level char(02),
3 io_status_code char(02),
3 io_proc_option char(04),
3 filler fixed bin(31),
3 io_segment_name char(08),
3 io_key_length fixed bin(31),
3 io_num_sen_seg fixed bin(31),
3 io_pcb_key char(27);
dcl 1 dli_function,
5 dli_gu char(04) init('gu '),
5 dli_gn char(04) init('gn ');
dcl 1 hosp_ssa,
5 hos_seg char(09) init('hospital('),
5 fldname char(10) init('hospname ='),
5 val char(20) init('kasthuribai hospital'),
5 f1 char(1) init(')');
do until(io_status_code = 'gb');
put skip list('no');
dcl 1 pat_rec,
3 pat_id char(05),
3 pat_name char(20);
dcl 1 q pointer;
dcl 1 hosp_pcb based(q),
3 io_dbd_name char(08),
3 io_segment_level char(02),
3 io_status_code char(02),
3 io_proc_option char(04),
3 filler fixed bin(31),
3 io_segment_name char(08),
3 io_key_length fixed bin(31),
3 io_num_sen_seg fixed bin(31),
3 io_pcb_key char(27);
dcl 1 dli_function,
5 dli_gu char(04) init('gu ');
dcl 1 ward_ssa,
5 ward_seg char(09) init('ward ('),
5 fldname char(10) init('wardno ='),
5 val char(02) init('a2'),
5 f1 char(1) init(')');
dcl 1 pat_ssa,
5 pat_seg char(09) init('patient ('),
5 fldname char(10) init('patid ='),
5 val char(05) init('a0004'),
5 f1 char(1) init(')');
dcl 1 cnt fixed bin(31,0) init(6);
dcl 1 cnt1 fixed bin(31,0) init(3);
end qupat;
dcl 1 hosp_pcb,
3 io_dbd_name char(08),
3 io_segment_level char(02),
3 io_status_code char(02),
3 io_proc_option char(04),
3 filler fixed bin(31),
3 io_segment_name char(08),
3 io_key_length fixed bin(31),
3 io_num_sen_seg fixed bin(31),
3 io_pcb_key char(20);
dcl 1 dli_function,
5 dli_gu char(04) init('gu ');
end qussa;
dcl 1 ward_rec,
3 ward_no char(02),
3 ward_name char(10),
3 ward_aval char(03);
dcl 1 pat_rec,
3 pat_id char(05),
3 pat_name char(20);
dcl 1 q pointer;
dcl 1 hosp_pcb based(q),
3 io_dbd_name char(08),
3 io_segment_level char(02),
3 io_status_code char(02),
3 io_proc_option char(04),
3 filler fixed bin(31),
3 io_segment_name char(08),
3 io_key_length fixed bin(31),
3 io_num_sen_seg fixed bin(31),
3 io_pcb_key char(27);
dcl 1 dli_function,
5 dli_gu char(04) init('gu ');
/* qualified ssa 9th character is ( */
dcl 1 hosp_ssa char(09) init('hospital ');
end unpat;