Ì i 2
lab.b.qc.specimen.file (main)
[urn]
?SBK[sbk]
Field Name Len Dat Typ J DPM Offset/Local/VAL
urn 10 URN L sbk
activity.date 8 DATE L
bar.code.number 6 FREE L ?SBK[sbk]A|3
blind.for.spec 30 URN L LAB.B.SPEC ?SBK[sbk]|16
cancelled.date 8 DATE L VAL=%Z.date.in.magic(@LAB.B.QC.cancelled.time.int)
cancelled.time 4 HHMM L VAL=%Z.time.out(@LAB.B.QC.cancelled.time.int)
cancelled.time.int 9 PINT R ?SBK[sbk]A|1
cancelled.user 10 FREE L MIS.USER ?SBK[sbk]A|0
cmpl.ord.tests 1 YN L VAL=%LAB.B.QC.ord.cmpl(LAB.B.QC.urn)
cmpl.wb.ordered 1 YN L VAL=%LAB.B.WB.ordered.from.tests(IF{@LAB.B.WB.urn;@t.L
VAL=AB.B.WB.urn},/SPEC.URN,/QC,82)
cmpl.wb.ordered.wide 1 YN L VAL=%LAB.B.WB.ordered.from.tests(IF{@LAB.B.WB.urn;@t.L
VAL=AB.B.WB.urn},/SPEC.URN,/QC,121)
created.date 8 DATE L ?SBK[sbk]|5
created.seconds 9 PINT R ?SBK[sbk]|8
created.time 4 HHMM L ?SBK[sbk]|6
created.user 10 FREE L MIS.USER ?SBK[sbk]|7
entered.offset 9 PINT R ?SBK[sbk]|14
expired 1 YN L VAL=IF{@blind.for.spec "N";'@lot "";@LAB.B.QC.created.
VAL=date>@LAB.B.QM.lot.expire.date[@qc.material,@lo
VAL=t] "Y";"N"}
expired.output 7 FREE L VAL=IF{@blind.for.spec "";'@lot "";@LAB.B.QC.created.d
VAL=ate>@LAB.B.QM.lot.expire.date[@qc.material,@lot
VAL=] "EXPIRED"}
id 10 URN L LAB.B.QC VAL=@LAB.B.QC.number
id.spec 15 FREE L
lab.site 10 FREE L LAB.C.SITE ?SBK[sbk]|15
last.activity 9 PINT R ?SBK[sbk]|9
last.activity.date 8 DATE L VAL=%Z.date.clin.to.npr(@LAB.B.QC.entered.offset+@LAB.
VAL=B.QC.last.activity/86400)
last.activity.time 4 HHMM L VAL=%Z.time.out(@LAB.B.QC.entered.offset+@LAB.B.QC.las
VAL=t.activity)
lot 15 FREE L ?SBK[sbk]|4
number 13 FREE L ?SBK[sbk]|0
number.part 5 PINT R ?SBK[sbk]|2
number.suffix 1 FREE L VAL="Q"
order.site 10 FREE L LAB.C.SITE ?SBK[sbk]A|2
prefix 2 FREE L ?SBK[sbk]|1
qc.material 10 FREE L LAB.B.QM ?SBK[sbk]|3
re.lot.name 15 FREE L VAL=IF{@LAB.B.QC.blind.for.spec "**BLIND**";@LAB.B.QC.
VAL=lot}
re.qc.material.name 30 FREE L VAL=IF{@LAB.B.QC.blind.for.spec "**BLIND**";@LAB.B.QC.
VAL=qc.material's.name}
rpt.any.tests.cmpld 1 YN L VAL=IF{@Last(LAB.B.QC.rpt.test) "Y";"N"}
rpt.argument.string 0 FREE L VAL=/ARG
rpt.argument.string.1 1 YN L VAL=IF{Q(LAB.B.QC.urn,"EOA3","ANRGV",0,2,"")^@rpt.argu
VAL=ment.string,"Y"}
rpt.argument.string.2 1 YN L VAL=IF{Q(LAB.B.QC.urn,"EPA1","ANRGV",0,2,"")^@rpt.argu
VAL=ment.string,"Y"}
rpt.argument.string.3 1 YN L VAL=IF{Q(LAB.B.QC.urn,"EOU3","ADGV",0,2,"")^@rpt.argum
VAL=ent.string,"Y"}
rpt.argument.string.4 1 YN L VAL=IF{Q(LAB.B.QC.urn,"IPU1","URGV",0,2,"")^@rpt.argum
VAL=ent.string,"Y"}
rpt.compile.tests 1 YN L VAL=%LAB.B.QC.rpt.cmpl("")
rpt.compile.tests.1 1 YN L VAL=IF{@LAB.B.QC.rpt.argument.string.1,@LAB.B.QC.rpt.c
VAL=ompile.tests,"Y"}
rpt.compile.tests.2 1 YN L VAL=IF{@LAB.B.QC.rpt.argument.string.2,@LAB.B.QC.rpt.c
VAL=ompile.tests,"Y"}
rpt.compile.tests.3 1 YN L VAL=IF{@LAB.B.QC.rpt.argument.string.3,@LAB.B.QC.rpt.c
VAL=ompile.tests,"Y"}
rpt.compile.tests.4 1 YN L VAL=IF{@LAB.B.QC.rpt.argument.string.4,@LAB.B.QC.rpt.c
VAL=ompile.tests,"Y"}
rpt.print.test.hdrs 0 FREE L VAL=%LAB.B.QC.result.lines.hdrs("")
rpt.print.tests 0 FREE L VAL=%LAB.B.QC.result.lines("")
rpt.print.tests.1 0 FREE L VAL=IF{@LAB.B.QC.rpt.argument.string.1,@LAB.B.QC.rpt.p
VAL=rint.tests,""}
rpt.print.tests.2 0 FREE L VAL=IF{@LAB.B.QC.rpt.argument.string.2,@LAB.B.QC.rpt.p
VAL=rint.tests,""}
rpt.print.tests.3 0 FREE L VAL=IF{@LAB.B.QC.rpt.argument.string.3,@LAB.B.QC.rpt.p
VAL=rint.tests,""}
rpt.print.tests.4 0 FREE L VAL=IF{@LAB.B.QC.rpt.argument.string.4,@LAB.B.QC.rpt.p
VAL=rint.tests,""}
rpt.setup.test.hdrs 0 FREE L VAL=@LAB.B.QC.rpt.test.hdrs^/HN
rpt.sort.key 20 FREE L
set.last.activity 0 FREE L VAL=@.sd-@LAB.B.QC.entered.offset^@LAB.B.QC.last.activ
VAL=ity
specimen.header.line 92 FREE L VAL=%LAB.B.QC.specimen.header.line(LAB.B.QC.urn)
status 4 CHOICE L ?SBK[sbk]|10
status.before.cancel 4 CHOICE L ?SBK[sbk]|13
usage 40 FREE L ?SBK[sbk]|11
workbatch 10 PINT R LAB.B.WB ?SBK[sbk]|12
Ì € i 2
lab.b.qc.cancel.comments (cancel.comments)
[urn, cancel.comment.q]
?SBK[sbk]CAN[sbkCC]
Field Name Len Dat Typ J DPM Offset/Local/VAL
cancel.comment.q 2 PINT R sbkCC
cancel.comment 60 FREE L ?SBK[sbk]CAN[sbkCC]
Ì € i 2
lab.b.qc.comments (comments)
[urn, comment.q]
?SBK[sbk]C[sbkC]
Field Name Len Dat Typ J DPM Offset/Local/VAL
comment.q 2 PINT R sbkC
any.spec.comments 1 YN L VAL=IF{@LAB.B.QC.comments[LAB.B.QC.urn,1] "Y";"N"}
comment 60 FREE L ?SBK[sbk]C[sbkC]
Ì € i 2
lab.b.qc.orders (ordered.tests)
[urn, ordered.test]
?SBK[sbk]O[sbt]
Field Name Len Dat Typ J DPM Offset/Local/VAL
ordered.test 9 PDEC5 R LAB.B.TEST sbt
Ì € i 2
lab.b.qc.prev.test.results (prev.tests)
[urn, prev.test,prev.test.q]
?SBK[sbk]P[sbt,sbtPQ]
Field Name Len Dat Typ J DPM Offset/Local/VAL
prev.test 9 PDEC5 R LAB.B.TEST sbt
prev.test.q 2 PINT R sbtPQ
any.prev.results 1 YN L VAL=IF{+@prev.tests[urn,""] "Y";"N"}
prev.abnormal.flag 2 FREE L ?SBK[sbk]P[sbt,sbtPQ]|7
prev.alpha.result.code 10 FREE L ?SBK[sbk]P[sbt,sbtPQ]|11
prev.end.of.profile 9 PDEC5 R LAB.B.TEST ?SBK[sbk]P[sbt,sbtPQ]|15
prev.int.abnormal.flag 2 CHOICE L ?SBK[sbk]P[sbt,sbtPQ]|13
prev.normal.range 14 FREE L ?SBK[sbk]P[sbt,sbtPQ]|8
prev.result 20 FREE L ?SBK[sbk]P[sbt,sbtPQ]|0
prev.result.analyzer 10 FREE L ?SBK[sbk]P[sbt,sbtPQ]|21
prev.result.group 10 FREE L ?SBK[sbk]P[sbt,sbtPQ]|1
prev.result.method 10 FREE L LAB.C.METH ?SBK[sbk]P[sbt,sbtPQ]|6
prev.result.time 8 PINT R ?SBK[sbk]P[sbt,sbtPQ]|2
prev.result.user 10 FREE L MIS.USER ?SBK[sbk]P[sbt,sbtPQ]|4
prev.review.flag 1 FREE L ?SBK[sbk]P[sbt,sbtPQ]|16
prev.review.match.flag 3 CHOICE L ?SBK[sbk]P[sbt,sbtPQ]|20
prev.test.qc.material 10 FREE L LAB.B.QM ?SBK[sbk]P[sbt,sbtPQ]|18
prev.test.qcm.lot 15 FREE L ?SBK[sbk]P[sbt,sbtPQ]|19
prev.test.result.date 8 DATE L VAL=IF{@prev.result.time^XX %Z.date.in.magic(XX+@enter
VAL=ed.offset)}
prev.test.result.time 4 HHMM L VAL=IF{@prev.result.time^XX %Z.time.out(XX+@entered.of
VAL=fset)}
prev.test.verfiy.date 8 DATE L VAL=IF{@prev.verify.time^XX %Z.date.in.magic(XX+@enter
VAL=ed.offset)}
prev.test.verify.time 4 HHMM L VAL=IF{@prev.verify.time^XX %Z.time.out(XX+@entered.of
VAL=fset)}
prev.units 8 FREE L ?SBK[sbk]P[sbt,sbtPQ]|12
prev.verify.time 8 PINT R ?SBK[sbk]P[sbt,sbtPQ]|3
prev.verify.user 10 FREE L MIS.USER ?SBK[sbk]P[sbt,sbtPQ]|5
prev.workbatch.urn 10 PINT R LAB.B.WB ?SBK[sbk]P[sbt,sbtPQ]|17
Ì € i 2
lab.b.qc.prev.result.comments (prev.result.comments)
[urn,prev.test,prev.test.q, prev.result.comment.q]
?SBK[sbk]P[sbt,sbtPQ]C[sbkPC]
Field Name Len Dat Typ J DPM Offset/Local/VAL
prev.result.comment.q 2 PINT R sbkPC
prev.result.comment 60 FREE L ?SBK[sbk]P[sbt,sbtPQ]C[sbkPC]
Ì € i 2
lab.b.qc.review.data (review)
[urn, review.offset]
?SBK[sbk]RV[sbkRO]
Field Name Len Dat Typ J DPM Offset/Local/VAL
review.offset 7 PINT R sbkRO
last.review.date 8 DATE L VAL=%Z.date.in.magic(IF{@Last(@LAB.B.QC.review.offset)
VAL=^XX @LAB.B.QC.entered.offset+XX})
last.review.time 4 HHMM L VAL=%Z.time.out(IF{@Last(@LAB.B.QC.review.offset)^XX @
VAL=LAB.B.QC.entered.offset+XX})
last.reviewed 9 PINT R VAL=IF{@Last(@LAB.B.QC.review.offset)^XX XX+@LAB.B.QC.
VAL=entered.offset}
review.date 8 FREE L VAL=%Z.date.out(%Z.date.in.magic(@LAB.B.QC.entered.off
VAL=set+@LAB.B.QC.review.offset))
review.time 4 FREE L VAL=%Z.time.out(@LAB.B.QC.entered.offset+@LAB.B.QC.rev
VAL=iew.offset)
review.user 10 FREE L MIS.USER ?SBK[sbk]RV[sbkRO]|0
set.last.review.user 10 FREE L VAL=@.user^@LAB.B.QC.review.user[@.sd-@LAB.B.QC.entere
VAL=d.offset]
Ì € i 2
lab.b.qc.tests (tests)
[urn, test]
?SBK[sbk]T[sbt]
Field Name Len Dat Typ J DPM Offset/Local/VAL
test 9 PDEC5 R LAB.B.TEST sbt
abnormal.flag 2 FREE L ?SBK[sbk]T[sbt]|7
alpha.result.code 10 FREE L ?SBK[sbk]T[sbt]|11
end.of.profile 9 PDEC5 R LAB.B.TEST ?SBK[sbk]T[sbt]|15
int.abnormal.flag 2 CHOICE L ?SBK[sbk]T[sbt]|13
normal.range 14 FREE L ?SBK[sbk]T[sbt]|8
result 20 FREE L ?SBK[sbk]T[sbt]|0
result.analyzer 10 FREE L ?SBK[sbk]T[sbt]|21
result.group 10 FREE L ?SBK[sbk]T[sbt]|1
result.method 10 FREE L LAB.C.METH ?SBK[sbk]T[sbt]|6
result.time 8 PINT R ?SBK[sbk]T[sbt]|2
result.user 10 FREE L MIS.USER ?SBK[sbk]T[sbt]|4
review.flag 1 FREE L ?SBK[sbk]T[sbt]|16
review.match.flag 3 CHOICE L ?SBK[sbk]T[sbt]|20
test.qc.material 10 FREE L LAB.B.QM ?SBK[sbk]T[sbt]|18
test.qcm.lot 15 FREE L ?SBK[sbk]T[sbt]|19
test.result.date 8 DATE L VAL=IF{@result.time^XX %Z.date.in.magic(XX+@entered.of
VAL=fset)}
test.result.time 4 HHMM L VAL=IF{@result.time^XX %Z.time.out(XX+@entered.offset)
VAL=}
test.verify.date 8 DATE L VAL=IF{@verify.time^XX %Z.date.in.magic(XX+@entered.of
VAL=fset)}
test.verify.time 4 HHMM L VAL=IF{@verify.time^XX %Z.time.out(XX+@entered.offset)
VAL=}
units 8 FREE L ?SBK[sbk]T[sbt]|12
verify.time 8 PINT R ?SBK[sbk]T[sbt]|3
verify.user 10 FREE L MIS.USER ?SBK[sbk]T[sbt]|5
workbatch.urn 10 PINT R LAB.B.WB ?SBK[sbk]T[sbt]|17
Ì € i 2
lab.b.qc.result.comments (result.comments)
[urn,test, result.comment.q]
?SBK[sbk]T[sbt]C[sbkRC]
Field Name Len Dat Typ J DPM Offset/Local/VAL
result.comment.q 2 PINT R sbkRC
result.comment 60 FREE L ?SBK[sbk]T[sbt]C[sbkRC]
Ì i 2
lab.b.qc.ordered.tests.display (ordered.tests.display)
[ord.test.line.spec.urn,ord.test.line.q]
/SBKo[sbk,sbkO]
Field Name Len Dat Typ J DPM Offset/Local/VAL
ord.test.line.spec.urn 10 URN L LAB.B.QC sbk
ord.test.line.q 2 PINT R sbkO
ord.test.line 72 FREE L /SBKo[sbk,sbkO]
Ì 2
INDEX FILE/INTERNAL NAME SUBSCRIPTS/PHYSICAL BASE
lab.b.qc.activity.index [activity.date,qc.material,lot,number] = urn
activity.x :SBKA[sbkAD,sbo,sboL,sbkN]
lab.b.qc.blind.x [blind.for.spec,number] = urn
blind.x :SBKB[sbs,sbkN]
lab.b.qc.temp.data.review.x [sel.sort,test,qc.material,lot,result.method,number.sort] = urn
detail.sort.x /SBKds[sbSS,sbt,sbo,sboL,ssm,sbkns]
lab.b.qc.exception.index [activity.date,prefix,number,urn]
except.x :SBKE[sbkAD,spx,sbkN,sbk]
lab.b.qc.material.lot.index [qc.material,lot,created.date,prefix,number.part] = urn
lot.x :SBKI[sbo,sboL,sbkD,spx,sbkI]
lab.b.qc.number.index [created.date,prefix,number.part] = urn
number.x :SBKN[sbkD,spx,sbkI]
lab.b.qc.pending.x [created.date,prefix,number.part] = urn
pending.x :SBKO[sbkD,spx,sbkI]
lab.b.qc.previous.test.index [activity.date,urn,test]
prev.test.x :SBKP[sbkAD,sbk,sbt]
lab.b.qc.temp.rpt.sort.index [rpt.sort.key,number.sort] = urn
rpt.sort.x /SBKrpt[sbkSK,sbkns]
lab.b.qc.temp.rpt.test.index [urn,test]
rpt.test.x /SBKtst[sbk,sbt]
lab.b.qc.test.index [test,result.method,qc.material,lot,number.sort] = urn
test.x :SBKT[sbt,ssm,sbo,sboL,sbkns]
lab.b.qc.unverified.index [activity.date,prefix,number,urn]
unverified.x :SBKU[sbkAD,spx,sbkN,sbk]
|
|
| | | | | | | | |