PK.LABPDATA,
A^prefix,
B^specimen,
@OPEN.LAB,
@FORMAT.SPEC,
END;

OPEN.LAB
@admdir,
O(&,@misdict),
O(:,@admdata),
@labdir,
O(*,@labdata),
O(\,@labdict),
@pkdir

FORMAT.SPEC
D(64)^atsign,
0^T^THDR,
^*SPS[specimen]^MAIN,
*SPS[specimen]^MAIN.VAR,
@SPECIMEN.DATA,
IF{MAIN.VAR|2="CAN" "**SPECIMEN CANCELLED***"^/T.REC[T+1^T],
      ""^CC,
      DO{+([MAIN,"CC",CC],XX)^CC IF{XX:0S#0=atsign;XX^/T.REC[T+1^T]}};
   MAIN.VAR|2'="SOUT" "NOT SIGNED YET"^/T.REC[T+1^T];
   "got a good one",
      @ORDERED.PROCS,
      @COMMENTS,
      @MARKERS,
      " "^/T.REC[T+1^T],
      @FINAL.SIGNOUTS,
      @FINDINGS}

SPECIMEN.DATA
[MAIN]|1^aa,
:AA[aa]|3^/T.INFO["MRN"],
:AA[aa]|0^/T.INFO["ACCT"],
%Z.date.in.magic([MAIN]|13)_%Z.time.out([MAIN]|13)^/T.INFO["TESTDATE"],
\SPO[[MAIN]|5]|1^/T.INFO["TESTNAME"],
*SPS[specimen]A|10^/T.INFO["UPDATENODE"],
"AP"^/T.INFO["TESTTYPE"],
"Specimen"^/T.INFO["HEADERSECTION"],
"Report"^/T.INFO["RPTSECTION"],
MAIN.VAR|2^/T.INFO["STATUS"],
"Specimen: "_MAIN.VAR|0_" ("_MAIN.VAR|2_")"^/T.HEADER[THDR+1^THDR],
"Status: "_MAIN.VAR|2^/T.HEADER[THDR+1^THDR],
"Requisition: "_*SCR[[MAIN]|8]|0^/T.HEADER[THDR+1^THDR],
"Specimen Type: "_\SPO[[MAIN]|5]|1^/T.HEADER[THDR+1^THDR],
"Recv Date: "_IF{MAIN.VAR|3_.=. "Not Received";%Z.date.out(MAIN.VAR|3)^QQ,
QQ_"-"_(MAIN.VAR|4)_"  "_(MAIN.VAR|12)}^/T.HEADER[THDR+1^THDR],
"Submitted By: "_MAIN.VAR|11^/T.HEADER[THDR+1^THDR]

ORDERED.PROCS
"Ordered Procedures:"^/T.REC[T+1^T],
""^spt,
DO{+[MAIN,"OP",spt]^spt " "_\SPT[spt]|1^/T.REC[T+1^T]}

COMMENTS
0^GOT,
DO{(GOT=0)&(+([MAIN,"C",CC],XX)^CC) IF{XX:0S#0=atsign;1^GOT}},
IF{GOT=1 "Comments:"^/T.REC[T+1^T],
   ""^CC,
   DO{+([MAIN,"C",CC],XX)^CC IF{XX:0S#0=atsign;" "_XX^/T.REC[T+1^T]}}}

MARKERS
IF{+[MAIN,"MK",""]_.=.;
   "Markers:"^/T.REC[T+1^T],
   ""^MK,
   DO{+([MAIN,"MK",MK],XX)^MK " "_XX^/T.REC[T+1^T]}}

FINAL.SIGNOUTS
IF{+[MAIN,"FS",""]_.=. "No Final Signatures"^/T.REC[T+1^T];
   "Final Signatures:"^/T.REC[T+1^T],
   ""^FS,
   DO{+([MAIN,"FS",FS],XX)^FS 1,
      " "_IF{XX|0;XX|3}_"   "_%Z.date.out(XX|1)^/T.REC[T+1^T]}}

FINDINGS
K(/T.FINDINGS),
@SORT.FINDINGS,
""^n,
DO{+(/T.FINDINGS[n],SPR)^n "got the next one",
   "Findings: "_\SPR[SPR]|1^/T.REC[T+1^T],
   @HISTOLOGY,
   @FIND.QUES,
   @FIND.TEXT,
   @FIND.CODES,
   @FIND.CONCEPTS,
   @ADDENDA,
   " "^/T.REC[T+1^T]},
K(/T.FINDINGS)

FIND.QUES
EMPTY

FIND.TEXT
""^FT,
DO{+([MAIN,"F",SPR,"T",FT],YY)^FT YY:0X^/T.REC[T+1^T]}

FIND.CODES
""^CT,
DO{+([MAIN,"F",SPR,"C",CT],YY)^CT \SPT[CT]|1$45^/T.REC[T+1^T]}

FIND.CONCEPTS
""^SP,
DO{+([MAIN,"F",SPR,"CT",SP],YY)^SP \SSP[SP]NM$55^/T.REC[T+1^T]}

ADDENDA
IF{+[MAIN,"F",SPR,"A",""]_.=.;
   ""^AQ,
   DO{+([MAIN,"F",SPR,"A",AQ],YY)^AQ 1,
      IF{+[MAIN,"F",SPR,"A",AQ,"FS",""]_.=. "Not Final Signed";
         "Addenda:"^/T.REC[T+1^T],
         "Final Signatures:"^/T.REC[T+1^T],
         DO{+([MAIN,"F",SPR,"A",AQ,"FS",FS],ZZ)^FS 1,
            IF{ZZ|0;ZZ|3}_"  "_%Z.date.out(ZZ|1)^/T.REC[T+1^T]},
         " "^/T.REC[T+1^T],""^AT,
         DO{+([MAIN,"F",SPR,"A",AQ,"T",AT],ZZ)^AT ZZ:0X^/T.REC[T+1^T]}}}}

RTF
"RTF PROCEDURE IS NOT CURRENTLY BEING USED",
""^RF,
DO{+([MAIN,"RTF","XXEMR","T",RF],YY)^RF YY^/T.REC[T+1^T]}

HISTOLOGY
""^H,
DO{+([MAIN,"F",SPR,"H",H],XX)^H IF{XX|3_.=.;XX|0^/T.REC[T+1^T]}}

SORT.FINDINGS
""^SPR,
DO{+([MAIN,"F",SPR],XX)^SPR "got one",
   IF{XX|7="Y" "Internal";
      XX|0=0 "Nothing Entered";
      SPR^/T.FINDINGS[XX|0]}}
