sHelp
                                     LAB.B.DONOR
     i   2
   lab.b.donor.antibodies
   lab.b.donor.appointments.index
   lab.b.donor.batch
     lab.b.donor.batch.donors
   lab.b.donor.conf.ed.index
   lab.b.donor.delete.donation
     lab.b.donor.delete.donation.c
   lab.b.donor.delete.index
   lab.b.donor.edit
     lab.b.donor.edit.antibody.new
     lab.b.donor.edit.antibody.old
     lab.b.donor.edit.antigen.new
     lab.b.donor.edit.antigen.old
     lab.b.donor.edit.com.new
     lab.b.donor.edit.com.old
   lab.b.donor.letter.vals
   lab.b.donor.main
     lab.b.donor.appointments
     lab.b.donor.batches
     lab.b.donor.comments
     lab.b.donations
       lab.b.donor.donation
         lab.b.donor.donation.comments
     lab.b.donor.home.email.address
     lab.b.donor.work.email.address
     lab.b.donor.edit.pointers
     lab.b.donor.groups
     lab.b.donor.letters
     lab.b.donor.markers
     lab.b.donor.merge.from
     lab.b.donor.merge.units
     lab.b.donor.products
     lab.b.donor.queries
       lab.b.donor.queries.mult
     lab.b.donor.recruit.attempts
     lab.b.donor.status.history
   lab.b.donor.merge.log
   lab.b.donor.od.spec.x
   lab.b.donor.qs
     lab.b.donor.qs.ans
     lab.b.donor.qs.ques
   lab.b.donor.temp.search
   lab.b.donor.stat.sum
     lab.b.donor.stat.sum.prod.cnt

 Ì     i   2
lab.b.donor.antibodies    (antibodies) 
[antibody]
/SBBAB[sbab]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL                                        
 antibody                    10 FREE     L  LAB.B.ANTIBODY sbab                                                    
 Ì     i   2
lab.b.donor.appointments.index    (appointment.x) 
[appt.x.date,appt.x.from,appt.x.urn]
:SBBV[sbbvd,sbbvt,sbbvu]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL                                        
 appt.x.date                  8 DATE     L                 sbbvd                                                       
 appt.x.from                  4 HHMM     L                 sbbvt                                                       
 appt.x.urn                   8 FREE     L                 sbbvu                                                       
 appt.x.sch                  10 FREE     L  LAB.B.DSCH     :SBBV[sbbvd,sbbvt,sbbvu]|2                              
 appt.x.thru                  4 HHMM     L                 :SBBV[sbbvd,sbbvt,sbbvu]|0                                  
 appt.x.type                 10 FREE     L                 :SBBV[sbbvd,sbbvt,sbbvu]|1                                  
 Ì     i   2
lab.b.donor.batch    (batch) 
[batch.number]
: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       :SBBC[sbbcn]|4                                          
 batch.create.by             10 FREE     L  MIS.USER       :SBBC[sbbcn]|3                                          
 batch.create.date            8 DATE     L                 :SBBC[sbbcn]|1                                              
 batch.create.time            4 HHMM     L                 :SBBC[sbbcn]|2                                              
 batch.donor.count            6 PINT     R                 :SBBC[sbbcn]|0                                              
 batch.last.ques             10 FREE     L  LAB.B.QUES     :SBBC[sbbcn]|6                                          
 batch.last.ques.date         8 DATE     L                 :SBBC[sbbcn]|7                                              
 batch.type                  12 FREE     L                 :SBBC[sbbcn]|5                                              
 Ì     i   2
lab.b.donor.batch.donors    (batch.donors) 
[batch.number, batch.donor.q,batch.donor.urn]
: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                 :SBBC[sbbcn]D[sbbpq,sbb]|2                                  
 batch.donor.flags            4 FREE     L                 :SBBC[sbbcn]D[sbbpq,sbb]|0                                  
 batch.donor.ques.date        8 DATE     L                 :SBBC[sbbcn]D[sbbpq,sbb]|3                                  
 batch.donor.recruit.date     8 FREE     L                 :SBBC[sbbcn]D[sbbpq,sbb]|1                                  
 Ì     i   2
lab.b.donor.conf.ed.index    (conf.ed.x) 
[conf.ed.date,conf.ed.time,conf.ed.user,conf.ed.q]
: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                 :SBBY[sbbyd,sbbyt,gu,sbbyq]|1                               
 conf.ed.end.date             8 DATE     L                 :SBBY[sbbyd,sbbyt,gu,sbbyq]|2                               
 conf.ed.end.time             4 HHMM     L                 :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    :SBBY[sbbyd,sbbyt,gu,sbbyq]|0                           
 Ì     i   2
lab.b.donor.delete.donation    (delete.don) 
[dd.adt,dd.date,dd.time,dd.q]
: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                 :SBBW[sbbda,sbbdd,sbbdt,sbbdq]|8                            
 dd.adt.user                 10 FREE     L  MIS.USER       :SBBW[sbbda,sbbdd,sbbdt,sbbdq]|7                        
 dd.deferred                  1 YN       L                 :SBBW[sbbda,sbbdd,sbbdt,sbbdq]|0                            
 dd.elapsed                   3 PINT     R                 :SBBW[sbbda,sbbdd,sbbdt,sbbdq]|4                            
 dd.name                     30 NAME     L                 :SBBW[sbbda,sbbdd,sbbdt,sbbdq]|9                            
 dd.number                    8 FREE     L                 :SBBW[sbbda,sbbdd,sbbdt,sbbdq]|10                           
 dd.phleb                    10 FREE     L  MIS.USER       :SBBW[sbbda,sbbdd,sbbdt,sbbdq]|2                        
 dd.prod                     15 FREE     L  LAB.B.PROD     :SBBW[sbbda,sbbdd,sbbdt,sbbdq]|3                        
 dd.unit                     10 URN      L  LAB.B.UNIT     :SBBW[sbbda,sbbdd,sbbdt,sbbdq]|6                        
 dd.urn                      30 URN      L  LAB.B.DONOR    :SBBW[sbbda,sbbdd,sbbdt,sbbdq]|11                       
 dd.vol                       6 PDEC     R                 :SBBW[sbbda,sbbdd,sbbdt,sbbdq]|1                            
 dd.wkld                     10 FREE     L  LAB.C.WL.FUNC  :SBBW[sbbda,sbbdd,sbbdt,sbbdq]|5                        
 Ì     i   2
lab.b.donor.delete.donation.c    (delete.don.com) 
[dd.adt,dd.date,dd.time,dd.q, dd.com.q]
: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 FREE     L                 :SBBW[sbbda,sbbdd,sbbdt,sbbdq]C[q]                          
 Ì     i   2
lab.b.donor.delete.index    (delete.x) 
[del.date,del.urn]
:SBBD[sbbdd,sbb]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL                                        
 del.date                     8 DATE     L                 sbbdd                                                       
 del.urn                     30 URN      L  LAB.B.DONOR    sbb                                                     
 del.name                    30 FREE     L                 :SBBD[sbbdd,sbb]|2                                          
 del.number                   8 FREE     L                 :SBBD[sbbdd,sbb]|3                                          
 del.reason                  60 FREE     L                 :SBBD[sbbdd,sbb]|1                                          
 del.soc.sec.num             12 FREE     L                 :SBBD[sbbdd,sbb]|4                                          
 del.user                    10 FREE     L  MIS.USER       :SBBD[sbbdd,sbb]|0                                      
 Ì     i   2
lab.b.donor.edit    (edit) 
[edit.seconds,edit.urn]
: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.age                     7 AGE      R                 :SBBE[sbbes,sbb]A|8                                         
 edit.age.old                 7 AGE      R                 :SBBE[sbbes,sbb]A|9                                         
 edit.birthdate               8 BDATE    L                 :SBBE[sbbes,sbb]A|2                                         
 edit.birthdate.old           8 BDATE    L                 :SBBE[sbbes,sbb]A|3                                         
 edit.health.care.num        12 FREE     L                 :SBBE[sbbes,sbb]A|4                                         
 edit.health.care.num.old    12 FREE     L                 :SBBE[sbbes,sbb]A|5                                         
 edit.mri.display            43 FREE     L                 :SBBE[sbbes,sbb]A|10                                        
 edit.mri.display.old        43 FREE     L                 :SBBE[sbbes,sbb]A|11                                        
 edit.name                   30 FREE     L                 :SBBE[sbbes,sbb]A|0                                         
 edit.name.old               30 FREE     L                 :SBBE[sbbes,sbb]A|1                                         
 edit.number                  8 PINT     R                 :SBBE[sbbes,sbb]|0                                          
 edit.number.old              8 PINT     R                 :SBBE[sbbes,sbb]|1                                          
 edit.sex                     1 FREE     L                 :SBBE[sbbes,sbb]A|6                                         
 edit.sex.old                 1 FREE     L                 :SBBE[sbbes,sbb]A|7                                         
 edit.soc.sec.num            12 FREE     L                 :SBBE[sbbes,sbb]A|4                                         
 edit.soc.sec.num.old        12 FREE     L                 :SBBE[sbbes,sbb]A|5                                         
 edit.status                 12 FREE     L                 :SBBE[sbbes,sbb]|2                                          
 edit.status.old             12 FREE     L                 :SBBE[sbbes,sbb]|3                                          
 edit.user                   10 FREE     L  MIS.USER       :SBBE[sbbes,sbb]|6                                      
 edit.vol                     4 PDEC     R                 :SBBE[sbbes,sbb]|4                                          
 edit.vol.old                 4 PDEC     R                 :SBBE[sbbes,sbb]|5                                          
 Ì     i   2
lab.b.donor.edit.antibody.new    (edit.antibody) 
[edit.seconds,edit.urn, new.antibody]
: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                 :SBBE[sbbes,sbb]ABN[sbab]                                   
 Ì     i   2
lab.b.donor.edit.antibody.old    (edit.antibody.old) 
[edit.seconds,edit.urn, old.antibody]
: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                 :SBBE[sbbes,sbb]ABO[sbab]                                   
 Ì     i   2
lab.b.donor.edit.antigen.new    (edit.antigen) 
[edit.seconds,edit.urn, new.antigen]
: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                 :SBBE[sbbes,sbb]AGN[sbag]                                   
 Ì     i   2
lab.b.donor.edit.antigen.old    (edit.antigen.old) 
[edit.seconds,edit.urn, old.antigen]
: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                 :SBBE[sbbes,sbb]AGO[sbag]                                   
 Ì     i   2
lab.b.donor.edit.com.new    (edit.com) 
[edit.seconds,edit.urn, new.com.q]
: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 FREE     L                 :SBBE[sbbes,sbb]CN[q]                                       
 Ì     i   2
lab.b.donor.edit.com.old    (edit.com.old) 
[edit.seconds,edit.urn, old.com.q]
: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 FREE     L                 :SBBE[sbbes,sbb]CO[q]                                       
 Ì     i   2
lab.b.donor.main    (main) 
[urn]
?SBB[sbb]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL                                        
 urn                         30 URN      L                 sbb                                                         
 access                      10 FREE     L                 VAL=/.LAB.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                 ?SBB[sbb]L|1                                                
 adm.urn                     30 FREE     L  LAB.C.PAT      ?SBB[sbb]L|0                                            
 age                          7 AGE      L                 ?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.city                    20 FREE     L                 ?SBB[sbb]XA|2                                               
 alt.code                    10 FREE     L                 ?SBB[sbb]XA|5                                               
 alt.email                   30 FREE     L                 ?SBB[sbb]XA|6                                               
 alt.phone                   18 FREE     L                 ?SBB[sbb]XA|4                                               
 alt.state                    2 FREE     L                 ?SBB[sbb]XA|3                                               
 alt.street.1                30 FREE     L                 ?SBB[sbb]XA|0                                               
 alt.street.2                30 FREE     L                 ?SBB[sbb]XA|1                                               
 appearance.count             3 PINT     L                 ?SBB[sbb]O|3                                                
 birthdate                    8 BDATE    L                 ?SBB[sbb]|4                                                 
 confidential                 1 YN       L                 ?SBB[sbb]|8                                                 
 defer.until                  8 DATE     L                 ?SBB[sbb]|11                                                
 defer.until.calc             8 DATE     L                 VAL=@defer.until[urn]>@.today                            
 donation.count               3 PINT     L                 ?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                                                       
 health.care.num             12 FREE     L                 ?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                 ?SBB[sbb]X|2                                                
 home.code                   10 FREE     L                 ?SBB[sbb]X|5                                                
 home.phone                  18 FREE     L                 ?SBB[sbb]X|4                                                
 home.state                   2 FREE     L                 ?SBB[sbb]X|3                                                
 home.street.1               30 FREE     L                 ?SBB[sbb]X|0                                                
 home.street.2               30 FREE     L                 ?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       ?SBB[sbb]|12                                            
 interval                     3 PINT     L                 ?SBB[sbb]|10                                                
 last.appearance              8 DATE     L                 ?SBB[sbb]O|1                                                
 last.donation                8 DATE     L                 ?SBB[sbb]O|0                                                
 merge.to.date                8 DATE     L                 ?SBB[sbb]MT|1                                               
 merge.to.time                4 HHMM     L                 ?SBB[sbb]MT|2                                               
 merge.to.urn                30 URN      L  LAB.B.DONOR    ?SBB[sbb]MT|0                                           
 merge.to.user               10 FREE     L                 ?SBB[sbb]MT|3                                               
 mr.ms                        6 FREE     L                 ?SBB[sbb]|13                                                
 mri                          8 FREE     L                 ?SBB[sbb]|7                                                 
 mri.action                   1 FREE     L                 VAL=/MRI.ACT                                                
 mri.display                 43 FREE     L                 VAL=/MRI                                                    
 name                        30 NAME     L                 ?SBB[sbb]|1                                                 
 name.first                  12 FREE     L                 VAL=@name#"1,"                                              
 name.last                   18 FREE     L                 VAL=@name#"0,"                                              
 number                       8 FREE     L                 ?SBB[sbb]|0                                                 
 number.internal              8 FREE     L                 VAL=@number+0                                               
 recruit.attempt.count        4 PINT     L                 ?SBB[sbb]O|4                                                
 sex                          1 CHOICE   L                 ?SBB[sbb]|3                                                 
 soc.sec.num                 12 FREE     L                 ?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                 ?SBB[sbb]|6                                                 
 status.mnemonic              5 FREE     L                 VAL=@LAB.PARAM.bbk.donor.status.mne[@status.internal]       
 temp.label                   1 FREE     L                 VAL=""                                                      
 total.volume                 7 PDEC     L                 ?SBB[sbb]O|5                                                
 type                        10 FREE     L  LAB.B.TYPE     VAL=/TYPE                                               
 use.alt.address              1 YN       L                 ?SBB[sbb]|14                                                
 usual.product               15 FREE     L  LAB.B.PROD     ?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                 ?SBB[sbb]W|2                                                
 work.code                   10 FREE     L                 ?SBB[sbb]W|5                                                
 work.phone                  18 FREE     L                 ?SBB[sbb]W|4                                                
 work.state                   2 FREE     L                 ?SBB[sbb]W|3                                                
 work.street.1               30 FREE     L                 ?SBB[sbb]W|0                                                
 work.street.2               30 FREE     L                 ?SBB[sbb]W|1                                                
 Ì     i   2
lab.b.donor.appointments    (appointments) 
[urn, appt.date,appt.from]
?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                 ?SBB[sbb]P[sbbad,sbbaf]|3                                   
 appt.donation.q              2 PINT     R                 ?SBB[sbb]P[sbbad,sbbaf]|4                                   
 appt.sch                    10 FREE     L  LAB.B.DSCH     ?SBB[sbb]P[sbbad,sbbaf]|2                               
 appt.thru                    4 HHMM     L                 ?SBB[sbb]P[sbbad,sbbaf]|0                                   
 appt.type                   10 FREE     L                 ?SBB[sbb]P[sbbad,sbbaf]|1                                   
 last.appt                   24 FREE     L                 VAL=%LAB.B.DONOR.appt.next.last(urn,"LAST",2)               
 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.long              40 FREE     L                 VAL=%LAB.B.DONOR.appt.next.last(urn,"NEXT",1)               
 Ì     i   2
lab.b.donor.batches    (batches) 
[urn, donor.batch.type,donor.batch.urn]
?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                 ?SBB[sbb]B[sPbdb,sbbcn]|0                                   
 Ì     i   2
lab.b.donor.comments    (comments) 
[urn, comment.q]
?SBB[sbb]C[q]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL                                        
 comment.q                    2 PINT     R                 q                                                           
 comment.line                60 FREE     L                 ?SBB[sbb]C[q]                                               
 Ì     i   2
lab.b.donations    (donations) 
[urn, donation.date]
?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                 ?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
lab.b.donor.donation    (donation) 
[urn,donation.date, donation.q]
?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   ?SBB[sbb]D[sbbd]Q[sbbdq]|10                             
 donation.arc.unit.num       16 FREE     L                 ?SBB[sbb]D[sbbd]Q[sbbdq]|9                                  
 donation.deferred            1 YN       L                 ?SBB[sbb]D[sbbd]Q[sbbdq]|1                                  
 donation.elapsed.time        3 PINT     L                 ?SBB[sbb]D[sbbd]Q[sbbdq]|5                                  
 donation.phlebotomist       10 FREE     L  MIS.USER       ?SBB[sbb]D[sbbd]Q[sbbdq]|3                              
 donation.product            15 FREE     L  LAB.B.PROD     ?SBB[sbb]D[sbbd]Q[sbbdq]|4                              
 donation.site               10 FREE     L  LAB.C.SITE     ?SBB[sbb]D[sbbd]Q[sbbdq]|8                              
 donation.time                4 HHMMU    L                 ?SBB[sbb]D[sbbd]Q[sbbdq]|0                                  
 donation.unit               10 URN      L  LAB.B.UNIT     ?SBB[sbb]D[sbbd]Q[sbbdq]|7                              
 donation.vol                 6 PDEC     L                 ?SBB[sbb]D[sbbd]Q[sbbdq]|2                                  
 donation.workload           10 FREE     L  LAB.C.WL.FUNC  ?SBB[sbb]D[sbbd]Q[sbbdq]|6                              
 Ì     i   2
lab.b.donor.donation.comments    (donation.comments) 
[urn,donation.date,donation.q, donation.comment.q]
?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 FREE     L                 ?SBB[sbb]D[sbbd]Q[sbbdq]C[q]                                
 Ì     i   2
lab.b.donor.home.email.address    (donor.home.email.address) 
[urn, home.email.q]
?SBB[sbb]XE[sbbHE]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL                                        
 home.email.q                 2 PINT     R                 sbbHE                                                       
 home.email                  40 FREE     L                 ?SBB[sbb]XE[sbbHE]|0                                        
 Ì     i   2
lab.b.donor.work.email.address    (donor.work.email.address) 
[urn, work.email.q]
?SBB[sbb]WE[sbbWE]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL                                        
 work.email.q                 2 PINT     R                 sbbWE                                                       
 work.email                  40 FREE     L                 ?SBB[sbb]WE[sbbWE]|0                                        
 Ì     i   2
lab.b.donor.edit.pointers    (edit.pointers) 
[urn, edit.pointer]
?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                 ?SBB[sbb]E[sbbes]|0                                         
 Ì     i   2
lab.b.donor.groups    (groups) 
[urn, group]
?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                 ?SBB[sbb]G[sbdg]|0                                          
 Ì     i   2
lab.b.donor.letters    (letters) 
[urn, ltr.date,ltr.mnemonic]
?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                 ?SBB[sbb]T[sbbld,ssx]|0                                     
 ltr.user                    10 FREE     L  MIS.USER       ?SBB[sbb]T[sbbld,ssx]|1                                 
 Ì     i   2
lab.b.donor.markers    (markers) 
[urn, marker]
?SBB[sbb]M[ssk]

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

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL                                        
 merge.from.urn              30 URN      L  LAB.B.DONOR    sbbMF                                                   
 merge.from.date              8 DATE     L                 ?SBB[sbb]MF[sbbMF]|0                                        
 merge.from.time              4 HHMM     L                 ?SBB[sbb]MF[sbbMF]|1                                        
 merge.from.user             10 FREE     L                 ?SBB[sbb]MF[sbbMF]|2                                        
 Ì     i   2
lab.b.donor.merge.units    (merge.units) 
[urn, merge.unit]
?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
lab.b.donor.products    (products) 
[urn, product,product.date]
?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                 ?SBB[sbb]U[sbp,sbbd]|0                                      
 Ì     i   2
lab.b.donor.queries    (queries) 
[urn, query]
?SBB[sbb]V[ggv]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL                                        
 query                       10 FREE     L  MIS.QUERY      ggv                                                     
 query.map.date               8 DATE     L                 ?SBB[sbb]V[ggv]INIT                                         
 response                    70 QRY.RESP L                 ?SBB[sbb]V[ggv]|0                                           
 Ì     i   2
lab.b.donor.queries.mult    (queries.mult) 
[urn,query, query.seq.no]
?SBB[sbb]V[ggv]M[ggvN]

 Field Name                 Len Dat Typ  J  DPM            Offset/Local/VAL                                        
 query.seq.no                 3 PINT     R                 ggvN                                                        
 query.response              75 QRY.RESP L                 ?SBB[sbb]V[ggv]M[ggvN]|0                                    
 Ì     i   2
lab.b.donor.recruit.attempts    (recruit.attempts) 
[urn, recruit.attempt]
?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.site        10 FREE     L  LAB.C.SITE     ?SBB[sbb]R[sbbr]|1                                      
 recruit.attempt.user        10 FREE     L  MIS.USER       ?SBB[sbb]R[sbbr]|0                                      
 Ì     i   2
lab.b.donor.status.history    (status.history) 
[urn, sh.q]
?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                 ?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                 ?SBB[sbb]H[sbbsh]|0                                         
 sh.time                      4 HHMM     L                 ?SBB[sbb]H[sbbsh]|2                                         
 sh.user                     10 FREE     L  MIS.USER       ?SBB[sbb]H[sbbsh]|3                                     
 Ì     i   2
lab.b.donor.merge.log    (merge.log) 
[ml.date,ml.q]
: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=IF{@ml.type="M" "Merge    "_(@number[@mlm.from])_"      
                                                           VAL=  "_(@name[@mlm.from]);"Unmerge  "_(@number[@mlu.t      
                                                           VAL=o])_"  "_(@name[@mlu.to])}                              
 ml.display.tx.2             55 FREE     L                 VAL=IF{@ml.type="M" "Into     "_(@number[@mlm.to])_"        
                                                           VAL="_(@name[@mlm.to]);"From     "_(@number[@mlu.from]      
                                                           VAL=)_"  "_(@name[@mlu.from])}                              
 ml.display.type              7 FREE     L                 VAL=IF{@ml.type="M" "MERGE";"UNMERGE"}                      
 ml.time                      4 HHMM     L                 :SBBUL[sbbul,sbbuq]|1                                       
 ml.type                      1 CHOICE   L                 :SBBUL[sbbul,sbbuq]|0                                       
 ml.user                     10 FREE     L                 :SBBUL[sbbul,sbbuq]|2                                       
 mlm.from                    30 URN      L  LAB.B.DONOR    :SBBUL[sbbul,sbbuq]|3                                   
 mlm.to                      30 URN      L  LAB.B.DONOR    :SBBUL[sbbul,sbbuq]|4                                   
 mlu.from                    30 URN      L  LAB.B.DONOR    :SBBUL[sbbul,sbbuq]|5                                   
 mlu.to                      30 URN      L  LAB.B.DONOR    :SBBUL[sbbul,sbbuq]|6                                   
 Ì     i   2
lab.b.donor.od.spec.x    (od.spec.x) 
[od.donor,od.spec.module,od.spec.coll.date,od.spec.id]
: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                  13 FREE     L                 sshOS                                                       
 od.spec                     10 URN      L                 :SBBA[sbb,sshOM,sshOD,sshOS]|0                              
 Ì     i   2
lab.b.donor.qs    (qs) 
[qs.urn,qs.date]
: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                 :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                 :SBBK[sbb,sbbkd]|0                                          
 qs.res.yn                    1 FREE     L                 VAL=IF{@qs.res "Y";"N"}                                     
 Ì     i   2
lab.b.donor.qs.ans    (qs.ans) 
[qs.urn,qs.date, qs.ans.prompt]
: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                 :SBBK[sbb,sbbkd]A[sbq]|2                                    
 qs.ans.answer               40 FREE     L                 :SBBK[sbb,sbbkd]A[sbq]|0                                    
 qs.ans.text                 60 FREE     L                 :SBBK[sbb,sbbkd]A[sbq]|1                                    
 Ì     i   2
lab.b.donor.qs.ques    (qs.ques) 
[qs.urn,qs.date, qs.ques.ques]
: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                 :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                 :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                 :SBBK[sbb,sbbkd]Q[sbf]|3                                    
 qs.ques.edit.time            4 HHMM     L                 :SBBK[sbb,sbbkd]Q[sbf]|4                                    
 qs.ques.edit.user           10 FREE     L  MIS.USER       :SBBK[sbb,sbbkd]Q[sbf]|5                                
 qs.ques.merge.from.urn      30 URN      L  LAB.B.DONOR    :SBBK[sbb,sbbkd]Q[sbf]|8                                
 qs.ques.res                  1 FREE     L                 :SBBK[sbb,sbbkd]Q[sbf]|6                                    
 qs.ques.res.yn               1 FREE     L                 VAL=IF{@qs.ques.res "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                 :SBBK[sbb,sbbkd]Q[sbf]|2                                    
 qs.ques.user                10 FREE     L  MIS.USER       :SBBK[sbb,sbbkd]Q[sbf]|1                                
 Ì     i   2
lab.b.donor.temp.search    (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
lab.b.donor.stat.sum    (stat.sum) 
[stat.sum.site,stat.sum.end.date]
: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                 :SBBT[sbbes,sbbed]C|1                                       
 stat.sum.defer.cnt           5 PINT     R                 :SBBT[sbbes,sbbed]C|3                                       
 stat.sum.donate.cnt          5 PINT     R                 :SBBT[sbbes,sbbed]C|2                                       
 stat.sum.recruit.cnt         5 PINT     R                 :SBBT[sbbes,sbbed]C|0                                       
 Ì     i   2
lab.b.donor.stat.sum.prod.cnt    (stat.sum.prod.cnts) 
[stat.sum.site,stat.sum.end.date, stat.sum.prod]
: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                 :SBBT[sbbes,sbbed]P[sbp]|0                                  
 Ì       2
 INDEX FILE/INTERNAL NAME           SUBSCRIPTS/PHYSICAL BASE

 lab.b.donor.activity.index         [activity.date,activity.type,urn]
   activity.x                         :SBBX[f,d,sbb]

 lab.b.donor.group.index            [group,urn]
   group.x                            :SBBG[sbdg,sbb]

 bbk.donor.last.recruited.index     [activity.date,urn]
   last.recruit.x                     :SBBR[f,sbb]

 lab.b.donor.marker.index           [date,marker,urn]
   marker.x                           :SBBM[x,ssk,sbb]

 lab.b.donor.mri.index              [mri] = urn
   mri.x                              :SBBU[mri]

 lab.b.donor.name.index             [name.last,name.first,urn]
   name.x                             :SBBN[sbbnl,sbbnf,sbb]

 lab.b.donor.number.out.index       [number] = urn
   number.out.x                       :SBBNO[sbbnu]

 lab.b.donor.number.index           [number.internal] = urn
   number.x                           :SBBB[x]

 lab.b.donor.qs.index               [qs.date,qs.ques.ques,qs.urn] = qs.ques.abn.yn
   qs.x                               :SBBKI[sbbkd,sbf,sbb]

 lab.b.donor.soc.sec.num.index      [soc.sec.num.internal] = urn
   soc.sec.num.x                      :SBBS[x]