sHelp
                                     LAB.B.DONOR
     i   2
 antibodies
 antigens
 batch
   batch.donors
 conf.ed.x
 delete.don
   delete.don.com
 edit
   edit.antibody
   edit.antibody.old
   edit.antigen
   edit.antigen.old
   edit.com
   edit.com.old
 main
   appointments
   batches
   comments
   donations
     donation
       donation.comments
   edit.pointers
   groups
   letters
   markers
   merge.from
   merge.units
   products
   queries
     queries.mult
   recruit.attempts
   status.history
 merge.log
 od.spec.x
 qs
   qs.ans
   qs.ques
     qs.ques.components
 search
 stat.sum
   stat.sum.prod.cnts

 Ì     i   2
antibodies
[antibody]
/SBBAB[sbab]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL
 antibody                    10 FREE     L  LAB.B.ANTIBODY sbab                                                    
 Ì   €   i   2
antigens
[antigen]
/SBBAG[sbag]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL
 antigen                     10 FREE     L  LAB.B.ANTIGEN  sbag                                                    
 antigen.pn                   1 CHOICE   L                 /SBBAG[sbag]                                                
 Ì     i   2
batch
[batch.number]
*(SB)SBBC[sbbcn]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL
 batch.number                 5 PINT     R                 sbbcn                                                       
 batch.assign.to             10 FREE     L  MIS.USER       *(SB)SBBC[sbbcn]|4                                      
 batch.create.by             10 FREE     L  MIS.USER       *(SB)SBBC[sbbcn]|3                                      
 batch.create.date            8 DATE     L                 *(SB)SBBC[sbbcn]|1                                          
 batch.create.time            4 HHMM     L                 *(SB)SBBC[sbbcn]|2                                          
 batch.donor.count            6 PINT     R                 *(SB)SBBC[sbbcn]|0                                          
 batch.last.ques             10 FREE     L  LAB.B.QUES     *(SB)SBBC[sbbcn]|6                                      
 batch.last.ques.date         8 DATE     L                 *(SB)SBBC[sbbcn]|7                                          
 batch.type                  12 FREE     L                 *(SB)SBBC[sbbcn]|5                                          
 Ì   €   i   2
batch.donors
[batch.number,  batch.donor.q,batch.donor.urn]
*(SB)SBBC[sbbcn]D[sbbpq,sbb]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL
 batch.donor.q                3 PINT     R                 sbbpq                                                       
 batch.donor.urn             30 URN      L  LAB.B.DONOR    sbb                                                     
 batch.donor.appt.date        8 DATE     L                 *(SB)SBBC[sbbcn]D[sbbpq,sbb]|2                              
 batch.donor.flags            4 FREE     L                 *(SB)SBBC[sbbcn]D[sbbpq,sbb]|0                              
 batch.donor.ques.date        8 DATE     L                 *(SB)SBBC[sbbcn]D[sbbpq,sbb]|3                              
 batch.donor.recruit.date     8 FREE     L                 *(SB)SBBC[sbbcn]D[sbbpq,sbb]|1                              
 Ì     i   2
conf.ed.x
[conf.ed.date,conf.ed.time,conf.ed.user,conf.ed.q]
*(SB)SBBY[sbbyd,sbbyt,gu,sbbyq]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL
 conf.ed.date                 8 DATE     L                 sbbyd                                                       
 conf.ed.time                 4 HHMM     L                 sbbyt                                                       
 conf.ed.user                10 FREE     L  MIS.USER       gu                                                      
 conf.ed.q                    1 PINT     R                 sbbyq                                                       
 conf.ed.device              15 FREE     L                 *(SB)SBBY[sbbyd,sbbyt,gu,sbbyq]|1                           
 conf.ed.end.date             8 DATE     L                 *(SB)SBBY[sbbyd,sbbyt,gu,sbbyq]|2                           
 conf.ed.end.time             4 HHMM     L                 *(SB)SBBY[sbbyd,sbbyt,gu,sbbyq]|3                           
 conf.ed.minutes              3 PINT     R                 VAL=%LAB.B.DONOR.conf.act.log("TIME",conf.ed.date,conf      
                                                           VAL=.ed.time,@conf.ed.end.date,@conf.ed.end.time)           
 conf.ed.urn                 30 URN      L  LAB.B.DONOR    *(SB)SBBY[sbbyd,sbbyt,gu,sbbyq]|0                       
 Ì     i   2
delete.don
[dd.adt,dd.date,dd.time,dd.q]
*(SB)SBBW[sbbda,sbbdd,sbbdt,sbbdq]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL
 dd.adt                       8 DATE     L                 sbbda                                                       
 dd.date                      8 DATE     L                 sbbdd                                                       
 dd.time                      4 HHMM     L                 sbbdt                                                       
 dd.q                         2 PINT     R                 sbbdq                                                       
 dd.adt.reason               60 FREE     L                 *(SB)SBBW[sbbda,sbbdd,sbbdt,sbbdq]|8                        
 dd.adt.user                 10 FREE     L  MIS.USER       *(SB)SBBW[sbbda,sbbdd,sbbdt,sbbdq]|7                    
 dd.deferred                  1 YN       L                 *(SB)SBBW[sbbda,sbbdd,sbbdt,sbbdq]|0                        
 dd.elapsed                   3 PINT     R                 *(SB)SBBW[sbbda,sbbdd,sbbdt,sbbdq]|4                        
 dd.name                     30 NAME     L                 *(SB)SBBW[sbbda,sbbdd,sbbdt,sbbdq]|9                        
 dd.number                    8 FREE     L                 *(SB)SBBW[sbbda,sbbdd,sbbdt,sbbdq]|10                       
 dd.phleb                    10 FREE     L  MIS.USER       *(SB)SBBW[sbbda,sbbdd,sbbdt,sbbdq]|2                    
 dd.prod                     15 FREE     L  LAB.B.PROD     *(SB)SBBW[sbbda,sbbdd,sbbdt,sbbdq]|3                    
 dd.unit                     10 URN      L  LAB.B.UNIT     *(SB)SBBW[sbbda,sbbdd,sbbdt,sbbdq]|6                    
 dd.urn                      30 URN      L  LAB.B.DONOR    *(SB)SBBW[sbbda,sbbdd,sbbdt,sbbdq]|11                   
 dd.vol                       6 PDEC     R                 *(SB)SBBW[sbbda,sbbdd,sbbdt,sbbdq]|1                        
 dd.wkld                     10 FREE     L  LAB.C.WL.FUNC  *(SB)SBBW[sbbda,sbbdd,sbbdt,sbbdq]|5                    
 Ì   €   i   2
delete.don.com
[dd.adt,dd.date,dd.time,dd.q,  dd.com.q]
*(SB)SBBW[sbbda,sbbdd,sbbdt,sbbdq]C[q]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL
 dd.com.q                     2 PINT     R                 q                                                           
 dd.com.line                 60 TEXT     L                 *(SB)SBBW[sbbda,sbbdd,sbbdt,sbbdq]C[q]                      
 Ì     i   2
edit
[edit.seconds,edit.urn]
*(SB)SBBE[sbbes,sbb]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL
 edit.seconds                 9 FREE     L                 sbbes                                                       
 edit.urn                    30 URN      L  LAB.B.DONOR    sbb                                                     
 edit.number                  8 PINT     R                 *(SB)SBBE[sbbes,sbb]|0                                      
 edit.number.old              8 PINT     R                 *(SB)SBBE[sbbes,sbb]|1                                      
 edit.status                 12 FREE     L                 *(SB)SBBE[sbbes,sbb]|2                                      
 edit.status.old             12 FREE     L                 *(SB)SBBE[sbbes,sbb]|3                                      
 edit.user                   10 FREE     L  MIS.USER       *(SB)SBBE[sbbes,sbb]|6                                  
 edit.vol                     4 PDEC     R                 *(SB)SBBE[sbbes,sbb]|4                                      
 edit.vol.old                 4 PDEC     R                 *(SB)SBBE[sbbes,sbb]|5                                      
 Ì   €   i   2
edit.antibody
[edit.seconds,edit.urn,  new.antibody]
*(SB)SBBE[sbbes,sbb]ABN[sbab]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL
 new.antibody                10 FREE     L  LAB.B.ANTIBODY sbab                                                    
 new.antibody.exists          1 FREE     L                 *(SB)SBBE[sbbes,sbb]ABN[sbab]                               
 Ì   €   i   2
edit.antibody.old
[edit.seconds,edit.urn,  old.antibody]
*(SB)SBBE[sbbes,sbb]ABO[sbab]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL
 old.antibody                10 FREE     L  LAB.B.ANTIBODY sbab                                                    
 old.antibody.exists          1 FREE     L                 *(SB)SBBE[sbbes,sbb]ABO[sbab]                               
 Ì   €   i   2
edit.antigen
[edit.seconds,edit.urn,  new.antigen]
*(SB)SBBE[sbbes,sbb]AGN[sbag]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL
 new.antigen                 10 FREE     L  LAB.B.ANTIGEN  sbag                                                    
 new.antigen.pn               1 FREE     L                 *(SB)SBBE[sbbes,sbb]AGN[sbag]                               
 Ì   €   i   2
edit.antigen.old
[edit.seconds,edit.urn,  old.antigen]
*(SB)SBBE[sbbes,sbb]AGO[sbag]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL
 old.antigen                 10 FREE     L  LAB.B.ANTIGEN  sbag                                                    
 old.antigen.pn               1 FREE     L                 *(SB)SBBE[sbbes,sbb]AGO[sbag]                               
 Ì   €   i   2
edit.com
[edit.seconds,edit.urn,  new.com.q]
*(SB)SBBE[sbbes,sbb]CN[q]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL
 new.com.q                    2 PINT     R                 q                                                           
 new.com.line                60 TEXT     L                 *(SB)SBBE[sbbes,sbb]CN[q]                                   
 Ì   €   i   2
edit.com.old
[edit.seconds,edit.urn,  old.com.q]
*(SB)SBBE[sbbes,sbb]CO[q]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL
 old.com.q                    2 PINT     R                 q                                                           
 old.com.line                60 TEXT     L                 *(SB)SBBE[sbbes,sbb]CO[q]                                   
 Ì     i   2
main
[urn]
$(SB3)SBB[sbb]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL
 urn                         30 URN      L                 sbb                                                         
 access                      10 FREE     L                 VAL=@.lis.access                                            
 activity.date                8 DATE     L                 VAL=@.today                                                 
 activity.seconds             8 FREE     L                 VAL=@.sd                                                    
 activity.type                1 CHOICE   L                 VAL=x                                                       
 adm.acct.number             12 FREE     L                 $(SB3)SBB[sbb]L|1                                           
 adm.urn                     30 FREE     L  LAB.C.PAT      $(SB3)SBB[sbb]L|0                                       
 age                          7 AGE      L                 $(SB3)SBB[sbb]|5                                            
 age.calc                     7 FREE     L                 VAL=%Z.age(@birthdate[urn])                                 
 age.sex                      9 FREE     L                 VAL=%Z.age(@birthdate[urn])_"/"_(@sex[urn])                 
 alt.addr1                   30 FREE     L                 $(SB3)SBB[sbb]ALT|1                                         
 alt.addr2                   30 FREE     L                 $(SB3)SBB[sbb]ALT|2                                         
 alt.address.string             FREE     L                 VAL=IF{@alt.donor.addr[urn]^x x|1_IF{x|2 " "_(x|2)}^y,      
                                                           VAL=IF{y y_", "}_(x|3)_IF{x|4 " "_(x|4)}_IF{x|5 "  "_(      
                                                           VAL=x|5)}}                                                  
 alt.city                    20 FREE     L                 $(SB3)SBB[sbb]ALT|3                                         
 alt.email                   40 FREE     L                 $(SB3)SBB[sbb]ALT|8                                         
 alt.home.addr.st            90 FREE     T                 VAL=%LAB.B.DONOR.get.donor.addr(IF{urn;@t.urn},1)           
 alt.phone1                  18 FREE     L                 $(SB3)SBB[sbb]ALT|6                                         
 alt.phone2                  18 FREE     L                 $(SB3)SBB[sbb]ALT|7                                         
 alt.state                    2 FREE     L                 $(SB3)SBB[sbb]ALT|4                                         
 alt.zip                     10 FREE     L                 $(SB3)SBB[sbb]ALT|5                                         
 appearance.count             3 PINT     L                 $(SB3)SBB[sbb]O|3                                           
 birthdate                   10 BDATE    L                 $(SB3)SBB[sbb]|4                                            
 confidential                 1 YN       L                 $(SB3)SBB[sbb]|8                                            
 defer.until                  8 DATE     L                 $(SB3)SBB[sbb]|11                                           
 defer.until.calc             8 DATE     L                 VAL=@defer.until[urn]>@.today                            
 donation.count               3 PINT     L                 $(SB3)SBB[sbb]O|2                                           
 donor.has.specs              8 FREE     L                 VAL=@adm.urn^x,IF{'x "";-@LAB.L.SPEC.patient.x[x,""];-      
                                                           VAL=@LAB.M.SPEC.patient.x[x,""];-@LAB.B.SPEC.patient.x      
                                                           VAL=[x,""]}                                                 
 donor.has.units              8 FREE     L                 VAL=-@LAB.B.UNIT.donor.x[urn,""]                            
 ee.comments                  1 YN       L                 VAL=x                                                       
 ee.status.external           5 FREE     L                 VAL=/STAT                                                   
 ee.status.external.name     12 FREE     L                 VAL=@LAB.PARAM.bbk.donor.status.name[/ISTAT]                
 ee.status.internal           1 FREE     L                 VAL=/ISTAT                                                  
 function                    18 FREE     L                 VAL=x                                                       
 get.donor.city              20 FREE     L                 VAL=%LAB.B.DONOR.get.donor.addr(IF{urn;@t.urn},"",3)        
 get.donor.city.st.code      32 FREE     L                 VAL=%LAB.B.DONOR.get.donor.addr(IF{urn;@t.urn},"",345)      
 get.donor.code              10 FREE     L                 VAL=%LAB.B.DONOR.get.donor.addr(IF{urn;@t.urn},"",5)        
 get.donor.email             40 FREE     L                 VAL=%LAB.B.DONOR.get.donor.addr(IF{urn;@t.urn},"",8)        
 get.donor.phone1            18 FREE     L                 VAL=%LAB.B.DONOR.get.donor.addr(IF{urn;@t.urn},"",6)        
 get.donor.phone2            18 FREE     L                                                                             
 get.donor.state              2 FREE     L                 VAL=%LAB.B.DONOR.get.donor.addr(IF{urn;@t.urn},"",4)        
 get.donor.street1           30 FREE     L                 VAL=%LAB.B.DONOR.get.donor.addr(IF{urn;@t.urn},"",1)        
 get.donor.street2           30 FREE     L                 VAL=%LAB.B.DONOR.get.donor.addr(IF{urn;@t.urn},"",2)        
 get.donor.streets           60 FREE     L                 VAL=%LAB.B.DONOR.get.donor.addr(IF{urn;@t.urn},"",12)       
 health.care.num             14 FREE     L                 $(SB3)SBB[sbb]|2                                            
 health.care.num.internal    12 FREE     L                 VAL=@soc.sec.num'#1A'#1A                                    
 home.address.string         90 FREE     T                 VAL=IF{@donor.home.address[urn]^x x|0_IF{x|1 " "_(x|1)      
                                                           VAL=}^y,IF{y y_", "}_(x|2)_IF{x|3 " "_(x|3)}_IF{x|5 "       
                                                           VAL= "_(x|5)}}                                              
 home.city                   20 FREE     L                 $(SB3)SBB[sbb]X|2                                           
 home.code                   10 FREE     L                 $(SB3)SBB[sbb]X|5                                           
 home.email                  40 FREE     L                 $(SB3)SBB[sbb]X|6                                           
 home.phone                  18 FREE     L                 $(SB3)SBB[sbb]X|4                                           
 home.state                   2 FREE     L                 $(SB3)SBB[sbb]X|3                                           
 home.street.1               30 FREE     L                 $(SB3)SBB[sbb]X|0                                           
 home.street.2               30 FREE     L                 $(SB3)SBB[sbb]X|1                                           
 hx.type                     10 FREE     L                 VAL=@LAB.B.HX.blood.type[@hx.urn[IF{urn;/urn}]]             
 hx.urn                      10 URN      L  LAB.B.HX       $(SB3)SBB[sbb]|12                                       
 id.donor                    30 FREE     L                                                                             
 interval                     3 PINT     L                 $(SB3)SBB[sbb]|10                                           
 last.appearance              8 DATE     L                 $(SB3)SBB[sbb]O|1                                           
 last.donation                8 DATE     L                 $(SB3)SBB[sbb]O|0                                           
 merge.to.date                8 DATE     L                 $(SB3)SBB[sbb]MT|1                                          
 merge.to.time                4 HHMM     L                 $(SB3)SBB[sbb]MT|2                                          
 merge.to.urn                30 URN      L  LAB.B.DONOR    $(SB3)SBB[sbb]MT|0                                      
 merge.to.user               10 FREE     L                 $(SB3)SBB[sbb]MT|3                                          
 mr.ms                        6 FREE     L                 $(SB3)SBB[sbb]|13                                           
 mri                          8 FREE     L                 $(SB3)SBB[sbb]|7                                            
 mri.action                   1 FREE     L                 VAL=/MRI.ACT                                                
 mri.display                 43 FREE     L                 VAL=/MRI                                                    
 name                        30 NAME     L                 $(SB3)SBB[sbb]|1                                            
 name.first                  12 FREE     L                 VAL=@name#"1,"                                              
 name.last                   18 FREE     L                 VAL=@name#"0,"                                              
 number                       8 FREE     L                 $(SB3)SBB[sbb]|0                                            
 number.internal              8 FREE     L                 VAL=@number+0                                               
 recruit.attempt.count        4 PINT     L                 $(SB3)SBB[sbb]O|4                                           
 sex                          1 CHOICE   L                 $(SB3)SBB[sbb]|3                                            
 soc.sec.num                 12 FREE     L                 $(SB3)SBB[sbb]|2                                            
 soc.sec.num.internal        12 FREE     L                 VAL=@soc.sec.num'#1A'#1A                                    
 status                      12 FREE     L                 VAL=@LAB.PARAM.bbk.donor.status.name[@status.internal]      
 status.internal              1 FREE     L                 $(SB3)SBB[sbb]|6                                            
 status.mnemonic              5 FREE     L                 VAL=@LAB.PARAM.bbk.donor.status.mne[@status.internal]       
 temp.label                   1 FREE     L                 VAL=""                                                      
 temp.prefix                  2 FREE     L                 VAL=BD                                                      
 total.volume                 7 PDEC     L                 $(SB3)SBB[sbb]O|5                                           
 type                        10 FREE     L  LAB.B.TYPE     VAL=/TYPE                                               
 use.alt                      1 YN       L                 $(SB3)SBB[sbb]ALT|0                                         
 usual.product               15 FREE     L  LAB.B.PROD     $(SB3)SBB[sbb]|9                                        
 work.address.string         90 FREE     T                 VAL=IF{@donor.work.address[urn]^x x|0_IF{x|1 " "_(x|1)      
                                                           VAL=}^y,IF{y y_", "}_(x|2)_IF{x|3 " "_(x|3)}_IF{x|5 "       
                                                           VAL= "_(x|5)}}                                              
 work.city                   20 FREE     L                 $(SB3)SBB[sbb]W|2                                           
 work.code                   10 FREE     L                 $(SB3)SBB[sbb]W|5                                           
 work.email                  40 FREE     L                 $(SB3)SBB[sbb]W|6                                           
 work.phone                  18 FREE     L                 $(SB3)SBB[sbb]W|4                                           
 work.state                   2 FREE     L                 $(SB3)SBB[sbb]W|3                                           
 work.street.1               30 FREE     L                 $(SB3)SBB[sbb]W|0                                           
 work.street.2               30 FREE     L                 $(SB3)SBB[sbb]W|1                                           
 Ì   €   i   2
appointments
[urn,  appt.date,appt.from]
$(SB3)SBB[sbb]P[sbbad,sbbaf]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL
 appt.date                    8 DATE     L                 sbbad                                                       
 appt.from                    4 HHMM     L                 sbbaf                                                       
 appt.donation.date           8 DATE     L                 $(SB3)SBB[sbb]P[sbbad,sbbaf]|3                              
 appt.donation.q              2 PINT     R                 $(SB3)SBB[sbb]P[sbbad,sbbaf]|4                              
 appt.sch                    10 FREE     L  LAB.B.DSCH     $(SB3)SBB[sbb]P[sbbad,sbbaf]|2                          
 appt.thru                    4 HHMM     L                 $(SB3)SBB[sbb]P[sbbad,sbbaf]|0                              
 appt.type                   10 FREE     L                 $(SB3)SBB[sbb]P[sbbad,sbbaf]|1                              
 last.appt                   24 FREE     L                 VAL=%LAB.B.DONOR.appt.next.last(urn,"LAST",2)               
 last.appt.date.time         13 FREE     L                 VAL=%LAB.B.DONOR.appt.next.last(urn,"LAST",4)               
 last.appt.long              40 FREE     L                 VAL=%LAB.B.DONOR.appt.next.last(urn,"LAST",1)               
 next.appt                   24 FREE     L                 VAL=%LAB.B.DONOR.appt.next.last(urn,"NEXT",2)               
 next.appt.date.time         13 FREE     L                 VAL=%LAB.B.DONOR.appt.next.last(urn,"NEXT",4)               
 next.appt.long              40 FREE     L                 VAL=%LAB.B.DONOR.appt.next.last(urn,"NEXT",1)               
 Ì   €   i   2
batches
[urn,  donor.batch.type,donor.batch.urn]
$(SB3)SBB[sbb]B[sPbdb,sbbcn]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL
 donor.batch.type            12 FREE     L                 sPbdb                                                       
 donor.batch.urn              5 PINT     R                 sbbcn                                                       
 donor.batch.exists           1 FREE     L                 $(SB3)SBB[sbb]B[sPbdb,sbbcn]|0                              
 Ì   €   i   2
comments
[urn,  comment.q]
$(SB3)SBB[sbb]C[q]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL
 comment.q                    2 PINT     R                 q                                                           
 comment.line                60 TEXT     L                 $(SB3)SBB[sbb]C[q]                                          
 Ì   €   i   2
donations
[urn,  donation.date]
$(SB3)SBB[sbb]D[sbbd]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL
 donation.date                8 DATE     L                 sbbd                                                        
 defer.until.date             8 DATE     L                 VAL=IF{@p.defer.until^x<@.today "";x}                    
 donation.date.exists         1 FREE     L                 $(SB3)SBB[sbb]D[sbbd]|0                                     
 last.donation.date           8 DATE     L                 VAL=-@p.donations[urn,""]                                   
 next.product                19 FREE     L                 VAL=IF{-@p.donations[urn,""]^x,'x "";-@p.donation[urn,      
                                                           VAL=x,""]^y,'y "";@LAB.B.PROD.usual.don.interval[@p.do      
                                                           VAL=nation.product[urn,x,y]^y]^z,'z "";y_" "_(%Z.date.      
                                                           VAL=out(%Z.date.add(x,z)))}                                 
 Ì   €   i   2
donation
[urn,donation.date,  donation.q]
$(SB3)SBB[sbb]D[sbbd]Q[sbbdq]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL
 donation.q                   2 PINT     R                 sbbdq                                                       
 donation.arc.source         10 FREE     L  LAB.B.SOURCE   $(SB3)SBB[sbb]D[sbbd]Q[sbbdq]|10                        
 donation.arc.unit.num       16 FREE     L                 $(SB3)SBB[sbb]D[sbbd]Q[sbbdq]|9                             
 donation.deferred            1 YN       L                 $(SB3)SBB[sbb]D[sbbd]Q[sbbdq]|1                             
 donation.elapsed.time        3 PINT     L                 $(SB3)SBB[sbb]D[sbbd]Q[sbbdq]|5                             
 donation.phlebotomist       10 FREE     L  MIS.USER       $(SB3)SBB[sbb]D[sbbd]Q[sbbdq]|3                         
 donation.product            15 FREE     L  LAB.B.PROD     $(SB3)SBB[sbb]D[sbbd]Q[sbbdq]|4                         
 donation.site               10 FREE     L  LAB.C.SITE     $(SB3)SBB[sbb]D[sbbd]Q[sbbdq]|8                         
 donation.time                4 HHMMU    L                 $(SB3)SBB[sbb]D[sbbd]Q[sbbdq]|0                             
 donation.unit               10 URN      L  LAB.B.UNIT     $(SB3)SBB[sbb]D[sbbd]Q[sbbdq]|7                         
 donation.vol                 6 PDEC     L                 $(SB3)SBB[sbb]D[sbbd]Q[sbbdq]|2                             
 donation.workload           10 FREE     L  LAB.C.WL.FUNC  $(SB3)SBB[sbb]D[sbbd]Q[sbbdq]|6                         
 Ì   €   i   2
donation.comments
[urn,donation.date,donation.q,  donation.comment.q]
$(SB3)SBB[sbb]D[sbbd]Q[sbbdq]C[q]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL
 donation.comment.q           2 PINT     R                 q                                                           
 donation.comment.line       60 TEXT     L                 $(SB3)SBB[sbb]D[sbbd]Q[sbbdq]C[q]                           
 Ì   €   i   2
edit.pointers
[urn,  edit.pointer]
$(SB3)SBB[sbb]E[sbbes]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL
 edit.pointer                 9 PINT     R                 sbbes                                                       
 edit.pointer.exists          1 FREE     L                 $(SB3)SBB[sbb]E[sbbes]|0                                    
 Ì   €   i   2
groups
[urn,  group]
$(SB3)SBB[sbb]G[sbdg]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL
 group                       10 FREE     L  LAB.B.DON.GRP  sbdg                                                    
 group.date                   8 DATE     L                 $(SB3)SBB[sbb]G[sbdg]|0                                     
 Ì   €   i   2
letters
[urn,  ltr.date,ltr.mnemonic]
$(SB3)SBB[sbb]T[sbbld,ssx]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL
 ltr.date                     8 DATE     L                 sbbld                                                       
 ltr.mnemonic                10 FREE     L  LAB.C.FORM     ssx                                                     
 ltr.type                    10 CHOICE   L                 $(SB3)SBB[sbb]T[sbbld,ssx]|0                                
 ltr.user                    10 FREE     L  MIS.USER       $(SB3)SBB[sbb]T[sbbld,ssx]|1                            
 Ì   €   i   2
markers
[urn,  marker]
$(SB3)SBB[sbb]M[ssk]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL
 marker                      10 ALPHANUM L  LAB.C.MARK     ssk                                                     
 marker.date                  8 DATE     L                 $(SB3)SBB[sbb]M[ssk]|1                                      
 marker.first.date            8 DATE     L                 $(SB3)SBB[sbb]M[ssk]|3                                      
 marker.time                  4 HHMM     L                 $(SB3)SBB[sbb]M[ssk]|2                                      
 marker.user                 10 FREE     L  MIS.USER       $(SB3)SBB[sbb]M[ssk]|0                                  
 Ì   €   i   2
merge.from
[urn,  merge.from.urn]
$(SB3)SBB[sbb]MF[fsbb]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL
 merge.from.urn              30 URN      L  LAB.B.DONOR    fsbb                                                    
 merge.from.date              8 DATE     L                 $(SB3)SBB[sbb]MF[fsbb]|0                                    
 merge.from.time              4 HHMM     L                 $(SB3)SBB[sbb]MF[fsbb]|1                                    
 merge.from.user             10 FREE     L                 $(SB3)SBB[sbb]MF[fsbb]|2                                    
 Ì   €   i   2
merge.units
[urn,  merge.unit]
$(SB3)SBB[sbb]MU[sbu]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL
 merge.unit                  10 URN      L  LAB.B.UNIT     sbu                                                     
 Ì   €   i   2
products
[urn,  product,product.date]
$(SB3)SBB[sbb]U[sbp,sbbd]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL
 product                     15 FREE     L  LAB.B.PROD     sbp                                                     
 product.date                 8 DATE     L                 sbbd                                                        
 product.cnt                  2 PINT     R                 $(SB3)SBB[sbb]U[sbp,sbbd]|0                                 
 Ì   €   i   2
queries
[urn,  query]
$(SB3)SBB[sbb]V[ggv]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL
 query                       10 FREE     L  MIS.QUERY      ggv                                                     
 response                    70 FREE     L                 $(SB3)SBB[sbb]V[ggv]|0                                      
 Ì   €   i   2
queries.mult
[urn,query,  qry.mul.q]
$(SB3)SBB[sbb]V[ggv]M[ggvMQ]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL
 qry.mul.q                    3 PINT     R                 ggvMQ                                                       
 qry.mul.response            75 FREE     L                 $(SB3)SBB[sbb]V[ggv]M[ggvMQ]|0                              
 Ì   €   i   2
recruit.attempts
[urn,  recruit.attempt]
$(SB3)SBB[sbb]R[sbbr]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL
 recruit.attempt              8 DATE     L                 sbbr                                                        
 last.recruit.attempt         8 FREE     L                 VAL=%Z.date.out(-@recruit.attempts[urn,""])                 
 recruit.attempt.mgd.from    30 URN      L  LAB.B.DONOR    $(SB3)SBB[sbb]R[sbbr]|2                                 
 recruit.attempt.site        10 FREE     L  LAB.C.SITE     $(SB3)SBB[sbb]R[sbbr]|1                                 
 recruit.attempt.user        10 FREE     L  MIS.USER       $(SB3)SBB[sbb]R[sbbr]|0                                 
 Ì   €   i   2
status.history
[urn,  sh.q]
$(SB3)SBB[sbb]H[sbbsh]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL
 sh.q                         2 PINT     R                 sbbsh                                                       
 sh.date                      8 DATE     L                 $(SB3)SBB[sbb]H[sbbsh]|1                                    
 sh.status                   12 FREE     L                 VAL=@LAB.PARAM.bbk.donor.status.name[@sh.status.intern      
                                                           VAL=al]                                                     
 sh.status.internal           1 FREE     L                 $(SB3)SBB[sbb]H[sbbsh]|0                                    
 sh.time                      4 HHMM     L                 $(SB3)SBB[sbb]H[sbbsh]|2                                    
 sh.user                     10 FREE     L  MIS.USER       $(SB3)SBB[sbb]H[sbbsh]|3                                
 Ì     i   2
merge.log
[ml.date,ml.q]
*(SB)SBBUL[sbbul,sbbuq]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL
 ml.date                      8 DATE     L                 sbbul                                                       
 ml.q                         3 PINT     R                 sbbuq                                                       
 ml.display.tx.1             55 FREE     L                 VAL=%LAB.B.DONOR.merge.unmerge.log.M.display(1,ml.date      
                                                           VAL=,ml.q)                                                  
 ml.display.tx.2             55 FREE     L                 VAL=%LAB.B.DONOR.merge.unmerge.log.M.display(2,ml.date      
                                                           VAL=,ml.q)                                                  
 ml.display.type              7 FREE     L                 VAL=IF{@ml.type="M" "MERGE";"UNMERGE"}                      
 ml.time                      4 HHMM     L                 *(SB)SBBUL[sbbul,sbbuq]|1                                   
 ml.type                      1 CHOICE   L                 *(SB)SBBUL[sbbul,sbbuq]|0                                   
 ml.user                     10 FREE     L                 *(SB)SBBUL[sbbul,sbbuq]|2                                   
 mlm.from                    30 URN      L  LAB.B.DONOR    *(SB)SBBUL[sbbul,sbbuq]|3                               
 mlm.to                      30 URN      L  LAB.B.DONOR    *(SB)SBBUL[sbbul,sbbuq]|4                               
 mlu.from                    30 URN      L  LAB.B.DONOR    *(SB)SBBUL[sbbul,sbbuq]|5                               
 mlu.to                      30 URN      L  LAB.B.DONOR    *(SB)SBBUL[sbbul,sbbuq]|6                               
 Ì     i   2
od.spec.x
[od.donor,od.spec.module,od.spec.coll.date,od.spec.id]
*(SB)SBBA[sbb,sshOM,sshOD,sshOS]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL
 od.donor                    30 URN      L  LAB.B.DONOR    sbb                                                     
 od.spec.module               1 CHOICE   L                 sshOM                                                       
 od.spec.coll.date            8 DATE     L                 sshOD                                                       
 od.spec.id                  15 FREE     L                 sshOS                                                       
 od.spec                     10 URN      L                 *(SB)SBBA[sbb,sshOM,sshOD,sshOS]|0                          
 Ì     i   2
qs
[qs.urn,qs.date]
*(SB)SBBK[sbb,sbbkd]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL
 qs.urn                      30 URN      L  LAB.B.DONOR    sbb                                                     
 qs.date                      8 DATE     L                 sbbkd                                                       
 qs.abn                       1 FREE     L                 *(SB)SBBK[sbb,sbbkd]|1                                      
 qs.abn.yn                    1 FREE     L                 VAL=IF{@qs.abn "Y";"N"}                                     
 qs.last                      8 FREE     L                 VAL=IF{-@qs[urn,""]^x %Z.date.out(x)}                       
 qs.last.abn.yn               1 FREE     L                 VAL=IF{-@qs[urn,""]^x @qs.abn.yn[urn,x]}                    
 qs.last.res.yn               1 FREE     L                 VAL=IF{-@qs[urn,""]^x @qs.res.yn[urn,x]}                    
 qs.res                       1 FREE     L                 *(SB)SBBK[sbb,sbbkd]|0                                      
 qs.res.yn                    1 FREE     L                 VAL=IF{@qs.res "Y";"N"}                                     
 Ì   €   i   2
qs.ans
[qs.urn,qs.date,  qs.ans.prompt]
*(SB)SBBK[sbb,sbbkd]A[sbq]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL
 qs.ans.prompt               10 FREE     L  LAB.B.PROMPT   sbq                                                     
 qs.ans.abn                   1 FREE     L                 *(SB)SBBK[sbb,sbbkd]A[sbq]|2                                
 qs.ans.answer               40 FREE     L                 *(SB)SBBK[sbb,sbbkd]A[sbq]|0                                
 qs.ans.text                 60 FREE     L                 *(SB)SBBK[sbb,sbbkd]A[sbq]|1                                
 Ì   €   i   2
qs.ques
[qs.urn,qs.date,  qs.ques.ques]
*(SB)SBBK[sbb,sbbkd]Q[sbf]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL
 qs.ques.ques                10 FREE     L  LAB.B.QUES     sbf                                                     
 qs.ques.abn                  3 PINT     R                 *(SB)SBBK[sbb,sbbkd]Q[sbf]|0                                
 qs.ques.abn.yn               1 FREE     L                 VAL=IF{@qs.ques.abn "Y";"N"}                                
 qs.ques.auto                 1 FREE     L                 *(SB)SBBK[sbb,sbbkd]Q[sbf]|7                                
 qs.ques.auto.yn              1 FREE     L                 VAL=IF{@qs.ques.auto "Y";"N"}                               
 qs.ques.compile              0 FREE     L                 VAL=%LAB.B.DONOR.ques.print.lines("")                       
 qs.ques.edit.date            8 DATE     L                 *(SB)SBBK[sbb,sbbkd]Q[sbf]|3                                
 qs.ques.edit.time            4 HHMM     L                 *(SB)SBBK[sbb,sbbkd]Q[sbf]|4                                
 qs.ques.edit.user           10 FREE     L  MIS.USER       *(SB)SBBK[sbb,sbbkd]Q[sbf]|5                            
 qs.ques.merge.from.urn      30 URN      L  LAB.B.DONOR    *(SB)SBBK[sbb,sbbkd]Q[sbf]|8                            
 qs.ques.ordered              1 FREE     L                 *(SB)SBBK[sbb,sbbkd]Q[sbf]|9                                
 qs.ques.res                  1 FREE     L                 *(SB)SBBK[sbb,sbbkd]Q[sbf]|6                                
 qs.ques.res.yn               1 FREE     L                 VAL=IF{@qs.ques.result "Y";"N"}                             
 qs.ques.setup                0 FREE     L                 VAL=/qs.date^qs.date,/qs.ques.ques^qs.ques.ques,/urn^u      
                                                           VAL=rn                                                      
 qs.ques.time                 4 HHMM     L                 *(SB)SBBK[sbb,sbbkd]Q[sbf]|2                                
 qs.ques.user                10 FREE     L  MIS.USER       *(SB)SBBK[sbb,sbbkd]Q[sbf]|1                            
 Ì   €   i   2
qs.ques.components
[qs.urn,qs.date,qs.ques.ques,  qs.ques.component]
*(SB)SBBK[sbb,sbbkd]Q[sbf]CQ[sbf]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL
 qs.ques.component           10 FREE     L  LAB.B.QUES     sbf                                                     
 Ì     i   2
search
[search.sort,search.sort.urn]
/SBBZ[sbbzs,sbb]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL
 search.sort                 30 FREE     L                 sbbzs                                                       
 search.sort.urn             30 URN      L  LAB.B.DONOR    sbb                                                     
 search.1                    10 FREE     L                 /SBBZ[sbbzs,sbb]|0                                          
 search.2                    10 FREE     L                 /SBBZ[sbbzs,sbb]|1                                          
 search.3                    10 FREE     L                 /SBBZ[sbbzs,sbb]|2                                          
 search.4                    10 FREE     L                 /SBBZ[sbbzs,sbb]|3                                          
 Ì     i   2
stat.sum
[stat.sum.site,stat.sum.end.date]
*(SB)SBBT[sbbes,sbbed]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL
 stat.sum.site               10 FREE     L                 sbbes                                                       
 stat.sum.end.date            8 DATE     L                 sbbed                                                       
 stat.sum.appear.cnt          5 PINT     R                 *(SB)SBBT[sbbes,sbbed]C|1                                   
 stat.sum.defer.cnt           5 PINT     R                 *(SB)SBBT[sbbes,sbbed]C|3                                   
 stat.sum.donate.cnt          5 PINT     R                 *(SB)SBBT[sbbes,sbbed]C|2                                   
 stat.sum.recruit.cnt         5 PINT     R                 *(SB)SBBT[sbbes,sbbed]C|0                                   
 Ì   €   i   2
stat.sum.prod.cnts
[stat.sum.site,stat.sum.end.date,  stat.sum.prod]
*(SB)SBBT[sbbes,sbbed]P[sbp]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL
 stat.sum.prod               15 FREE     L  LAB.B.PROD     sbp                                                     
 stat.sum.prod.cnt            5 PINT     R                 *(SB)SBBT[sbbes,sbbed]P[sbp]|0                              

 Index Files                        Subscripts/Physical Base

 activity.x                         [activity.date,activity.type,urn]
                                      ?(SB)SBBX[x,x,sbb]

 group.x                            [group,urn]
                                      ?(SB)SBBG[sbdg,sbb]

 last.recruit.x                     [activity.date,urn]
                                      ?(SB)SBBR[x,sbb]

 marker.x                           [date,marker,urn]
                                      ?(SB)SBBM[x,ssk,sbb]

 mri.x                              [mri] = urn
                                      ?(SB)SBBU[mri]

 name.x                             [name.last,name.first,urn]
                                      ?(SB)SBBN[sbbnl,sbbnf,sbb]

 number.out.x                       [number] = urn
                                      ?(SB)SBBNO[sbbnu]

 number.x                           [number.internal] = urn
                                      ?(SB)SBBB[x]

 prompt.used.x                      [qs.ans.prompt]
                                      ?(SB)SBDPU[sbq]

 qs.x                               [qs.date,qs.ques.ques,qs.urn] = qs.ques.abn.yn
                                      ?(SB)SBBKI[sbbkd,sbf,sbb]

 soc.sec.num.x                      [soc.sec.num.internal] = urn
                                      ?(SB)SBBS[x]