E Examples

This section contains the following topics:

E.1 COBOL Copybook Example

Figure E-1 shows a COBOL copybook that illustrates arrays and nested arrays.

Figure E-1 Metadata Example in COBOL

Example of OCCUR and DEPENDING ON clauses in COBOL

E.2 Hospital Database ExampleFoot 1 

The following are the full source files for the Hospital database example that is used in Hierarchical Modelling and Constructing DLI Commands from SQL Requests.

Example E-1 Hospital Cobol Copybook

01  HOSPITAL.
  03  HOSPNAME        PIC X(20).                
  03  HOSP-ADDRESS      PIC X(30).            
  03  HOSP-PHONE        PIC X(10).            
  03  ADMIN         PIC X(20).            
                                                
01  WARD.                                         
  03  WARDNO          PIC XX.               
  03  TOT-ROOMS       PIC XXX.              
  03  TOT-BEDS        PIC XXX.              
  03  BEDAVAIL        PIC XXX.              
  03  WARDTYPE        PIC X(20).            
                                                
01  PATIENT.                                      
  03  PATNAME         PIC X(20).            
  03  PATADDRESS        PIC X(30).            
  03  PAT-PHONE       PIC X(10).            
  03  BEDIDENT        PIC X(4).             
  03  DATEADMT        PIC X(6).             
  03  PREV-STAY-FLAG      PIC X.                
  03  PREV-HOSP       PIC X(20).            
  03  PREV-DATE       PIC X(4).             
  03  PREV-REASON       PIC X(30).            
                                                
01  SYMPTOM.                                      
  03  DIAGNOSE        PIC X(20).            
  03  SYMPDATE        PIC X(6).             
  03  PREV-TREAT-FLAG     PIC X.
  03  TREAT-DESC        PIC X(20).
  03  SYMP-DOCTOR       PIC X(20).
  03  SYMP-DOCT-PHONE     PIC X(10).
  
01  TREATMNT.
  03  TRTYPE          PIC X(20).
  03  TRDATE          PIC X(6).
  03  MEDICATION-TYPE     PIC X(20).
  03  DIET-COMMENT      PIC X(30).
  03  SURGERY-FLAG      PIC X.
  03  SURGERY-DATE      PIC X(6).
  03  SURGERY-COMMENT     PIC X(30).
 
01  DOCTOR.
  03  DOCTNAME        PIC X(20).
  03  DOCT-ADDRESS      PIC X(30).
  03  DOCT-PHONE        PIC X(10).
  03  SPECIALT        PIC X(20).
  
01  FACILITY.
  03  FACTYPE         PIC X(20).
  03  TOT-FACIL       PIC XXX.
  03  FACAVAIL        PIC XXX.

Example E-2 Hospital DBD

  PRINT NOGEN
     DBD NAME=HOSPDBD,ACCESS=HDAM,RMNAME=(DFSHDC40,40,100)
     DATASET DD1=PRIME,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=125
       FIELD NAME=(BEDIDENT,SEQ,U),BYTES=4,START=61,TYPE=C
       FIELD NAME=PATNAME,BYTES=20,START=1,TYPE=C
       FIELD NAME=DATEADMT,BYTES=6,START=65,TYPE=C
 
     SEGM NAME=SYMPTOM,PARENT=PATIENT,BYTES=77
       FIELD NAME=(SYMPDATE,SEQ),BYTES=6,START=21,TYPE=C
       FIELD NAME=DIAGNOSE,BYTES=20,START=1,TYPE=C
 
     SEGM NAME=TREATMNT,PARENT=PATIENT,BYTES=113
       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=DOCTNAME,BYTES=20,START=1,TYPE=C
       FIELD NAME=SPECIALT,BYTES=20,START=61,TYPE=C
 
     SEGM NAME=FACILITY,PARENT=HOSPITAL,BYTES=26
       FIELD NAME=FACTYPE,BYTES=20,START=1,TYPE=C
       FIELD NAME=FACAVAIL,BYTES=3,START=24,TYPE=C
 
     DBDGEN
     FINISH
     END

Example E-3 Hospital PSB

  PRINT NOGEN
  PCB TYPE=DB,DBDNAME=HOSPDBD,PROCOPT=AP,KEYLEN=32
*
  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
  SENSEG NAME=FACILITY,PARENT=HOSPITAL
*
  PSBGEN LANG=COBOL,PSBNAME=HOSPPSB
  END


Footnote Legend

Footnote 1: Kapp, Dan and Leben, Joe: IMS Programming Techniques. Van Nostrand Reinhold Company Inc., New York, 1986.