LRVRMI4 ;DALOI/STAFF - LAH/TMP TO FILE 63 ;09/07/16 08:09
;;5.2;LAB SERVICE;**350,427,474**;Sep 27, 1994;Build 14
;
; Extracts the information in the ^TMP("LRMI",$J) global and stores it into the Lab Data micro subfile.
;
Q
;
EN ;
N LRNODE,LRNOW,LRRPTAPP,LRSTATUS,LR63539,X,I
Q:'$D(^TMP("LRMI",$J,LRDFN,"MI",LRIDT))
S LRNOW=$$NOW^XLFDT
; Get IEN of last Micro Audit on file
S LR63539=0
S X=$O(^LR(LRDFN,"MI",LRIDT,32,"B","A"),-1)
I X S LR63539=$O(^LR(LRDFN,"MI",LRIDT,32,"B",X,0))
;
; If any of these nodes are defined then trigger the audit
F I=1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,99 I $D(^LR(LRDFN,"MI",LRIDT,I)) D Q
. I $G(LRSB)'>0 N LRSB S LRSB=$S(I<5:1,I<8:5,I<11:8,I<14:11,I<19:16,I=99:.99,1:0)
. I LRSB>0 D AUDTRG
;
I $O(^TMP("LRMI",$J,LRDFN,"MI",LRIDT,2,0)) D N2
I $O(^TMP("LRMI",$J,LRDFN,"MI",LRIDT,3,0)) D N3^LRVRMI4A
I $O(^TMP("LRMI",$J,LRDFN,"MI",LRIDT,4,0)) D N4
I $O(^TMP("LRMI",$J,LRDFN,"MI",LRIDT,6,0)) D N6^LRVRMI4A
I $O(^TMP("LRMI",$J,LRDFN,"MI",LRIDT,7,0)) D N7^LRVRMI2
I $O(^TMP("LRMI",$J,LRDFN,"MI",LRIDT,9,0)) D N9^LRVRMI2A
I $O(^TMP("LRMI",$J,LRDFN,"MI",LRIDT,10,0)) D N10^LRVRMI2
I $D(^TMP("LRMI",$J,LRDFN,"MI",LRIDT,11)) D N11^LRVRMI2A
I $O(^TMP("LRMI",$J,LRDFN,"MI",LRIDT,12,0)) D N12^LRVRMI2A
I $O(^TMP("LRMI",$J,LRDFN,"MI",LRIDT,13,0)) D N13^LRVRMI2
;I $O(^TMP("LRMI",$J,LRDFN,"MI",LRIDT,15,0)) D N15^LRVRMI2
I $O(^TMP("LRMI",$J,LRDFN,"MI",LRIDT,17,0)) D N17^LRVRMI2A
I $O(^TMP("LRMI",$J,LRDFN,"MI",LRIDT,18,0)) D N18^LRVRMI2
;
F LRNODE=15,19:1:31 I $O(^TMP("LRMI",$J,LRDFN,"MI",LRIDT,LRNODE,0)) D NODE^LRVRMI3(LRNODE)
;
I $D(^TMP("LRMI",$J,LRDFN,"MI",LRIDT,99)) D N99
;
; Only release report when receving verified report from external lab (LEDI interface)
I LRINTYPE=10 D
. D SETSTAT^LRVRMI4A(.LRSTATUS)
. I (LRSTATUS(0)="C")!(LRSTATUS(0)="F") D FIN ; ccr_5439n - Added IF statement to only Do FIN if overall status is final or corrected. LMT 9/6/11
;
I $G(LRRPTAPP) D VT1^LRMIUT1
;
; Update MICRO AUDIT to reflect corrected status on verified reference lab reports (interface type 10 in file #62.48)
; If audit doesn't exist then create instead of updating.
I LRINTYPE=10,LRSTATUS(0)="C" D
. I LR63539<1 D AUDTRG Q
. N LRFDA,LRIEN,LRMSG,DIERR
. S LRIEN=LR63539_","_LRIDT_","_LRDFN_","
. S LRFDA(1,63.539,LRIEN,3)=3 ; Edit Type
. D FILE^DIE("","LRFDA(1)","LRMSG")
;
Q
;
;
FIN ; Release report
N LRFDA,LRIEN,LRMSG,DIERR
S LRIEN=LRIDT_","_LRDFN_","
S LRFDA(1,63.05,LRIEN,.04)=$S($G(LRDUZ):LRDUZ,1:$G(DUZ))
S LRFDA(1,63.05,LRIEN,.03)=LRNOW
;S LRFDA(1,63.05,LRIEN,.2)=LRNOW ; ccr_5439n - Commented this line out as there is no field .2 in subfile #63.05. LMT 9/6/11
D FILE^DIE("","LRFDA(1)","LRMSG")
Q
;
;
N2 ; Process gram stain comments
N DIERR,IEN,LRCMT,LRCSR,LRDATA,LRFDA,LRFDAIEN,LRIEN,LRIENS,LRMSG,LRPL,LRX,STAT
;
M LRCMT=^LR(LRDFN,"MI",LRIDT,2)
;
S IEN=0,STAT=""
F S IEN=$O(^TMP("LRMI",$J,LRDFN,"MI",LRIDT,2,IEN)) Q:IEN<1 D
. S LRX=^TMP("LRMI",$J,LRDFN,"MI",LRIDT,2,IEN,0),LRX=$S(LRX'="":LRX,1:" ")
. I LRX'=" ",$$DUPCHK^LRVRMI3(LRLL,LRPROF,.LRCMT,LRX) Q
. S LRIEN="+"_IEN_","_LRIDT_","_LRDFN_","
. S LRFDA(2,63.29,LRIEN,.01)=LRX
. S LRX=^TMP("LRMI",$J,LRDFN,"MI",LRIDT,2,IEN,0,0)
. I $P(LRX,"^") S LRPL(IEN)=$P(LRX,"^")
. I $P(LRX,"^",3) S LRCSR(IEN,2,"LN")=$P(LRX,"^",3)
. I $P(LRX,"^",4) S LRCSR(IEN,2,"NLT")=$P(LRX,"^",4)
. I $P(LRX,"^",5)'="" D BLDSTAT^LRVRMI4A(63.05,11.5,$P(LRX,"^",5),.LRSTATUS)
I '$D(LRFDA) Q
;
D UPDATE^DIE("","LRFDA(2)","LRFDAIEN","LRMSG")
; Store performing lab
S IEN=0
F S IEN=$O(LRPL(IEN)) Q:'IEN D
. I $G(LRPL(IEN)),$G(LRFDAIEN(IEN)) D SETPL^LRRPLUA(LRDFN_",MI,"_LRIDT_",2,"_LRFDAIEN(IEN),LRPL(IEN))
;
; Store code system references
I $D(LRCSR) D CSR(.LRCSR,.LRFDAIEN,LRDFN_",MI,"_LRIDT_",2,")
;
K LRFDA,LRIENS,LRMSG,DIERR
S LRIEN=LRIDT_","_LRDFN_","
I LRINTYPE=10 S LRFDA(2,63.05,LRIEN,11)=LRNOW
S LRFDA(2,63.05,LRIEN,11.55)=$S($G(LRDUZ):LRDUZ,1:$G(DUZ))
D FILE^DIE("","LRFDA(2)","LRMSG")
S LRRPTAPP=1
Q
;
;
N4 ; Bact report remarks
N DIERR,IEN,LRCMT,LRCSR,LRFDA,LRFDAIEN,LRIEN,LRIENS,LRMSG,LRPL,LRX
S LRX=$G(^TMP("LRMI",$J,LRDFN,"MI",LRIDT,4,0))
D BLDSTAT^LRVRMI4A(63.05,11.5,$P(LRX,"^",4),.LRSTATUS)
S LRPL=$P(LRX,"^")
M LRCMT=^LR(LRDFN,"MI",LRIDT,4)
;
S IEN=0
F S IEN=$O(^TMP("LRMI",$J,LRDFN,"MI",LRIDT,4,IEN)) Q:IEN<1 D ;
. S LRX=^TMP("LRMI",$J,LRDFN,"MI",LRIDT,4,IEN,0),LRX=$S(LRX'="":LRX,1:" ")
. I LRX'=" ",$$DUPCHK^LRVRMI3(LRLL,LRPROF,.LRCMT,LRX) Q
. S LRIEN="+"_IEN_","_LRIDT_","_LRDFN_","
. S LRFDA(4,63.33,LRIEN,.01)=LRX
. I $P(LRX,"^",3) S LRCSR(IEN,2,"LN")=$P(LRX,"^",3)
. I $P(LRX,"^",4) S LRCSR(IEN,2,"NLT")=$P(LRX,"^",4)
I '$D(LRFDA) Q
;
D UPDATE^DIE("","LRFDA(4)","LRFDAIEN","LRMSG")
;
; Store performing lab
S IEN=0
F S IEN=$O(LRFDAIEN(IEN)) Q:'IEN I LRPL D SETPL^LRRPLUA(LRDFN_",MI,"_LRIDT_",4,"_LRFDAIEN(IEN),LRPL)
;
; Store code system references
I $D(LRCSR) D CSR(.LRCSR,.LRFDAIEN,LRDFN_",MI,"_LRIDT_",4,")
;
K LRFDA,LRIENS,LRMSG,DIERR
S LRIEN=LRIDT_","_LRDFN_","
I LRINTYPE=10 D
. S LRFDA(4,63.05,LRIEN,11)=LRNOW
. S LRFDA(4,63.05,LRIEN,11.5)=$P($G(^TMP("LRMI",$J,LRDFN,"MI",LRIDT,4,0)),U,4)
S LRFDA(4,63.05,LRIEN,11.55)=$S($G(LRDUZ):LRDUZ,1:$G(DUZ))
D FILE^DIE("","LRFDA(4)","LRMSG")
S LRRPTAPP=1
Q
;
;
N99 ; Comment on specimen
N LRDATA,LRFDA,LRMSG,LRX
S LRDATA=$G(^TMP("LRMI",$J,LRDFN,"MI",LRIDT,99))
Q:$TR(LRDATA," ","")="" ; don't file empty comments
; Don't file same comment
I LRDATA=$G(^LR(LRDFN,"MI",LRIDT,99)) Q
S LRIEN=LRIDT_","_LRDFN_","
S LRFDA(99,63.05,LRIEN,.99)=LRDATA
D FILE^DIE("","LRFDA(99)","LRMSG")
S LRX=$G(^TMP("LRMI",$J,LRDFN,"MI",LRIDT,99,0))
I $P(LRX,"^") D SETPL^LRRPLUA(LRDFN_",MI,"_LRIDT_",99",$P(LRX,"^"))
Q
;
;
AUDTRG ; Trigger the audit trail
N LRDATA,LRMODE,LRBATCH
S LRMODE="LDSI",LRBATCH=1
S LRDATA(63.539,1)=LRNOW
S LRDATA(63.539,3)=$S($G(LRSTATUS(0))'="C":1,1:3)
I LRINTYPE=1 S LRDATA(63.539,4)="Update from lab automated instrument via HL7"
I LRINTYPE=10 S LRDATA(63.539,4)="Update from performing lab via HL7"
D LEDI^LRMIAUD(.LRDATA)
Q
;
;
CSR(LRCSR,LRFDAIEN,LRREF) ; Store code system references
; Call with LRCSR = array of ien/codes to store as references (pass by value)
; LRFDAIEN = FileMan array of entries added by DBA call (pass by value)
; LRREF = root of reference to build full reference to data
;
N IEN,LRDATA,LRDATAREF,LRDFN,LRROOT,ROLE,TYPE
;
S LRROOT="LRCSR",LRDFN=$P(LRREF,",")
F S LRROOT=$Q(@LRROOT) Q:LRROOT="" D
. S IEN=$QS(LRROOT,1),ROLE=$QS(LRROOT,2),TYPE=$QS(LRROOT,3)
. I '$G(LRFDAIEN(IEN)) Q
. S LRDATAREF=LRREF_LRFDAIEN(IEN)
. S LRDATA(.01)=LRDATAREF,LRDATA(.02)=ROLE,LRDATA(.03)=LRCSR(IEN,ROLE,TYPE),LRDATA(.04)=TYPE
. D SETREF^LRUCSR(LRDFN,LRDATAREF,.LRDATA,1)
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HLRVRMI4 6910 printed Oct 16, 2024@18:23:37 Page 2
LRVRMI4 ;DALOI/STAFF - LAH/TMP TO FILE 63 ;09/07/16 08:09
+1 ;;5.2;LAB SERVICE;**350,427,474**;Sep 27, 1994;Build 14
+2 ;
+3 ; Extracts the information in the ^TMP("LRMI",$J) global and stores it into the Lab Data micro subfile.
+4 ;
+5 QUIT
+6 ;
EN ;
+1 NEW LRNODE,LRNOW,LRRPTAPP,LRSTATUS,LR63539,X,I
+2 if '$DATA(^TMP("LRMI",$JOB,LRDFN,"MI",LRIDT))
QUIT
+3 SET LRNOW=$$NOW^XLFDT
+4 ; Get IEN of last Micro Audit on file
+5 SET LR63539=0
+6 SET X=$ORDER(^LR(LRDFN,"MI",LRIDT,32,"B","A"),-1)
+7 IF X
SET LR63539=$ORDER(^LR(LRDFN,"MI",LRIDT,32,"B",X,0))
+8 ;
+9 ; If any of these nodes are defined then trigger the audit
+10 FOR I=1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,99
IF $DATA(^LR(LRDFN,"MI",LRIDT,I))
Begin DoDot:1
+11 IF $GET(LRSB)'>0
NEW LRSB
SET LRSB=$SELECT(I<5:1,I<8:5,I<11:8,I<14:11,I<19:16,I=99:.99,1:0)
+12 IF LRSB>0
DO AUDTRG
End DoDot:1
QUIT
+13 ;
+14 IF $ORDER(^TMP("LRMI",$JOB,LRDFN,"MI",LRIDT,2,0))
DO N2
+15 IF $ORDER(^TMP("LRMI",$JOB,LRDFN,"MI",LRIDT,3,0))
DO N3^LRVRMI4A
+16 IF $ORDER(^TMP("LRMI",$JOB,LRDFN,"MI",LRIDT,4,0))
DO N4
+17 IF $ORDER(^TMP("LRMI",$JOB,LRDFN,"MI",LRIDT,6,0))
DO N6^LRVRMI4A
+18 IF $ORDER(^TMP("LRMI",$JOB,LRDFN,"MI",LRIDT,7,0))
DO N7^LRVRMI2
+19 IF $ORDER(^TMP("LRMI",$JOB,LRDFN,"MI",LRIDT,9,0))
DO N9^LRVRMI2A
+20 IF $ORDER(^TMP("LRMI",$JOB,LRDFN,"MI",LRIDT,10,0))
DO N10^LRVRMI2
+21 IF $DATA(^TMP("LRMI",$JOB,LRDFN,"MI",LRIDT,11))
DO N11^LRVRMI2A
+22 IF $ORDER(^TMP("LRMI",$JOB,LRDFN,"MI",LRIDT,12,0))
DO N12^LRVRMI2A
+23 IF $ORDER(^TMP("LRMI",$JOB,LRDFN,"MI",LRIDT,13,0))
DO N13^LRVRMI2
+24 ;I $O(^TMP("LRMI",$J,LRDFN,"MI",LRIDT,15,0)) D N15^LRVRMI2
+25 IF $ORDER(^TMP("LRMI",$JOB,LRDFN,"MI",LRIDT,17,0))
DO N17^LRVRMI2A
+26 IF $ORDER(^TMP("LRMI",$JOB,LRDFN,"MI",LRIDT,18,0))
DO N18^LRVRMI2
+27 ;
+28 FOR LRNODE=15,19:1:31
IF $ORDER(^TMP("LRMI",$JOB,LRDFN,"MI",LRIDT,LRNODE,0))
DO NODE^LRVRMI3(LRNODE)
+29 ;
+30 IF $DATA(^TMP("LRMI",$JOB,LRDFN,"MI",LRIDT,99))
DO N99
+31 ;
+32 ; Only release report when receving verified report from external lab (LEDI interface)
+33 IF LRINTYPE=10
Begin DoDot:1
+34 DO SETSTAT^LRVRMI4A(.LRSTATUS)
+35 ; ccr_5439n - Added IF statement to only Do FIN if overall status is final or corrected. LMT 9/6/11
IF (LRSTATUS(0)="C")!(LRSTATUS(0)="F")
DO FIN
End DoDot:1
+36 ;
+37 IF $GET(LRRPTAPP)
DO VT1^LRMIUT1
+38 ;
+39 ; Update MICRO AUDIT to reflect corrected status on verified reference lab reports (interface type 10 in file #62.48)
+40 ; If audit doesn't exist then create instead of updating.
+41 IF LRINTYPE=10
IF LRSTATUS(0)="C"
Begin DoDot:1
+42 IF LR63539<1
DO AUDTRG
QUIT
+43 NEW LRFDA,LRIEN,LRMSG,DIERR
+44 SET LRIEN=LR63539_","_LRIDT_","_LRDFN_","
+45 ; Edit Type
SET LRFDA(1,63.539,LRIEN,3)=3
+46 DO FILE^DIE("","LRFDA(1)","LRMSG")
End DoDot:1
+47 ;
+48 QUIT
+49 ;
+50 ;
FIN ; Release report
+1 NEW LRFDA,LRIEN,LRMSG,DIERR
+2 SET LRIEN=LRIDT_","_LRDFN_","
+3 SET LRFDA(1,63.05,LRIEN,.04)=$SELECT($GET(LRDUZ):LRDUZ,1:$GET(DUZ))
+4 SET LRFDA(1,63.05,LRIEN,.03)=LRNOW
+5 ;S LRFDA(1,63.05,LRIEN,.2)=LRNOW ; ccr_5439n - Commented this line out as there is no field .2 in subfile #63.05. LMT 9/6/11
+6 DO FILE^DIE("","LRFDA(1)","LRMSG")
+7 QUIT
+8 ;
+9 ;
N2 ; Process gram stain comments
+1 NEW DIERR,IEN,LRCMT,LRCSR,LRDATA,LRFDA,LRFDAIEN,LRIEN,LRIENS,LRMSG,LRPL,LRX,STAT
+2 ;
+3 MERGE LRCMT=^LR(LRDFN,"MI",LRIDT,2)
+4 ;
+5 SET IEN=0
SET STAT=""
+6 FOR
SET IEN=$ORDER(^TMP("LRMI",$JOB,LRDFN,"MI",LRIDT,2,IEN))
if IEN<1
QUIT
Begin DoDot:1
+7 SET LRX=^TMP("LRMI",$JOB,LRDFN,"MI",LRIDT,2,IEN,0)
SET LRX=$SELECT(LRX'="":LRX,1:" ")
+8 IF LRX'=" "
IF $$DUPCHK^LRVRMI3(LRLL,LRPROF,.LRCMT,LRX)
QUIT
+9 SET LRIEN="+"_IEN_","_LRIDT_","_LRDFN_","
+10 SET LRFDA(2,63.29,LRIEN,.01)=LRX
+11 SET LRX=^TMP("LRMI",$JOB,LRDFN,"MI",LRIDT,2,IEN,0,0)
+12 IF $PIECE(LRX,"^")
SET LRPL(IEN)=$PIECE(LRX,"^")
+13 IF $PIECE(LRX,"^",3)
SET LRCSR(IEN,2,"LN")=$PIECE(LRX,"^",3)
+14 IF $PIECE(LRX,"^",4)
SET LRCSR(IEN,2,"NLT")=$PIECE(LRX,"^",4)
+15 IF $PIECE(LRX,"^",5)'=""
DO BLDSTAT^LRVRMI4A(63.05,11.5,$PIECE(LRX,"^",5),.LRSTATUS)
End DoDot:1
+16 IF '$DATA(LRFDA)
QUIT
+17 ;
+18 DO UPDATE^DIE("","LRFDA(2)","LRFDAIEN","LRMSG")
+19 ; Store performing lab
+20 SET IEN=0
+21 FOR
SET IEN=$ORDER(LRPL(IEN))
if 'IEN
QUIT
Begin DoDot:1
+22 IF $GET(LRPL(IEN))
IF $GET(LRFDAIEN(IEN))
DO SETPL^LRRPLUA(LRDFN_",MI,"_LRIDT_",2,"_LRFDAIEN(IEN),LRPL(IEN))
End DoDot:1
+23 ;
+24 ; Store code system references
+25 IF $DATA(LRCSR)
DO CSR(.LRCSR,.LRFDAIEN,LRDFN_",MI,"_LRIDT_",2,")
+26 ;
+27 KILL LRFDA,LRIENS,LRMSG,DIERR
+28 SET LRIEN=LRIDT_","_LRDFN_","
+29 IF LRINTYPE=10
SET LRFDA(2,63.05,LRIEN,11)=LRNOW
+30 SET LRFDA(2,63.05,LRIEN,11.55)=$SELECT($GET(LRDUZ):LRDUZ,1:$GET(DUZ))
+31 DO FILE^DIE("","LRFDA(2)","LRMSG")
+32 SET LRRPTAPP=1
+33 QUIT
+34 ;
+35 ;
N4 ; Bact report remarks
+1 NEW DIERR,IEN,LRCMT,LRCSR,LRFDA,LRFDAIEN,LRIEN,LRIENS,LRMSG,LRPL,LRX
+2 SET LRX=$GET(^TMP("LRMI",$JOB,LRDFN,"MI",LRIDT,4,0))
+3 DO BLDSTAT^LRVRMI4A(63.05,11.5,$PIECE(LRX,"^",4),.LRSTATUS)
+4 SET LRPL=$PIECE(LRX,"^")
+5 MERGE LRCMT=^LR(LRDFN,"MI",LRIDT,4)
+6 ;
+7 SET IEN=0
+8 ;
FOR
SET IEN=$ORDER(^TMP("LRMI",$JOB,LRDFN,"MI",LRIDT,4,IEN))
if IEN<1
QUIT
Begin DoDot:1
+9 SET LRX=^TMP("LRMI",$JOB,LRDFN,"MI",LRIDT,4,IEN,0)
SET LRX=$SELECT(LRX'="":LRX,1:" ")
+10 IF LRX'=" "
IF $$DUPCHK^LRVRMI3(LRLL,LRPROF,.LRCMT,LRX)
QUIT
+11 SET LRIEN="+"_IEN_","_LRIDT_","_LRDFN_","
+12 SET LRFDA(4,63.33,LRIEN,.01)=LRX
+13 IF $PIECE(LRX,"^",3)
SET LRCSR(IEN,2,"LN")=$PIECE(LRX,"^",3)
+14 IF $PIECE(LRX,"^",4)
SET LRCSR(IEN,2,"NLT")=$PIECE(LRX,"^",4)
End DoDot:1
+15 IF '$DATA(LRFDA)
QUIT
+16 ;
+17 DO UPDATE^DIE("","LRFDA(4)","LRFDAIEN","LRMSG")
+18 ;
+19 ; Store performing lab
+20 SET IEN=0
+21 FOR
SET IEN=$ORDER(LRFDAIEN(IEN))
if 'IEN
QUIT
IF LRPL
DO SETPL^LRRPLUA(LRDFN_",MI,"_LRIDT_",4,"_LRFDAIEN(IEN),LRPL)
+22 ;
+23 ; Store code system references
+24 IF $DATA(LRCSR)
DO CSR(.LRCSR,.LRFDAIEN,LRDFN_",MI,"_LRIDT_",4,")
+25 ;
+26 KILL LRFDA,LRIENS,LRMSG,DIERR
+27 SET LRIEN=LRIDT_","_LRDFN_","
+28 IF LRINTYPE=10
Begin DoDot:1
+29 SET LRFDA(4,63.05,LRIEN,11)=LRNOW
+30 SET LRFDA(4,63.05,LRIEN,11.5)=$PIECE($GET(^TMP("LRMI",$JOB,LRDFN,"MI",LRIDT,4,0)),U,4)
End DoDot:1
+31 SET LRFDA(4,63.05,LRIEN,11.55)=$SELECT($GET(LRDUZ):LRDUZ,1:$GET(DUZ))
+32 DO FILE^DIE("","LRFDA(4)","LRMSG")
+33 SET LRRPTAPP=1
+34 QUIT
+35 ;
+36 ;
N99 ; Comment on specimen
+1 NEW LRDATA,LRFDA,LRMSG,LRX
+2 SET LRDATA=$GET(^TMP("LRMI",$JOB,LRDFN,"MI",LRIDT,99))
+3 ; don't file empty comments
if $TRANSLATE(LRDATA," ","")=""
QUIT
+4 ; Don't file same comment
+5 IF LRDATA=$GET(^LR(LRDFN,"MI",LRIDT,99))
QUIT
+6 SET LRIEN=LRIDT_","_LRDFN_","
+7 SET LRFDA(99,63.05,LRIEN,.99)=LRDATA
+8 DO FILE^DIE("","LRFDA(99)","LRMSG")
+9 SET LRX=$GET(^TMP("LRMI",$JOB,LRDFN,"MI",LRIDT,99,0))
+10 IF $PIECE(LRX,"^")
DO SETPL^LRRPLUA(LRDFN_",MI,"_LRIDT_",99",$PIECE(LRX,"^"))
+11 QUIT
+12 ;
+13 ;
AUDTRG ; Trigger the audit trail
+1 NEW LRDATA,LRMODE,LRBATCH
+2 SET LRMODE="LDSI"
SET LRBATCH=1
+3 SET LRDATA(63.539,1)=LRNOW
+4 SET LRDATA(63.539,3)=$SELECT($GET(LRSTATUS(0))'="C":1,1:3)
+5 IF LRINTYPE=1
SET LRDATA(63.539,4)="Update from lab automated instrument via HL7"
+6 IF LRINTYPE=10
SET LRDATA(63.539,4)="Update from performing lab via HL7"
+7 DO LEDI^LRMIAUD(.LRDATA)
+8 QUIT
+9 ;
+10 ;
CSR(LRCSR,LRFDAIEN,LRREF) ; Store code system references
+1 ; Call with LRCSR = array of ien/codes to store as references (pass by value)
+2 ; LRFDAIEN = FileMan array of entries added by DBA call (pass by value)
+3 ; LRREF = root of reference to build full reference to data
+4 ;
+5 NEW IEN,LRDATA,LRDATAREF,LRDFN,LRROOT,ROLE,TYPE
+6 ;
+7 SET LRROOT="LRCSR"
SET LRDFN=$PIECE(LRREF,",")
+8 FOR
SET LRROOT=$QUERY(@LRROOT)
if LRROOT=""
QUIT
Begin DoDot:1
+9 SET IEN=$QSUBSCRIPT(LRROOT,1)
SET ROLE=$QSUBSCRIPT(LRROOT,2)
SET TYPE=$QSUBSCRIPT(LRROOT,3)
+10 IF '$GET(LRFDAIEN(IEN))
QUIT
+11 SET LRDATAREF=LRREF_LRFDAIEN(IEN)
+12 SET LRDATA(.01)=LRDATAREF
SET LRDATA(.02)=ROLE
SET LRDATA(.03)=LRCSR(IEN,ROLE,TYPE)
SET LRDATA(.04)=TYPE
+13 DO SETREF^LRUCSR(LRDFN,LRDATAREF,.LRDATA,1)
End DoDot:1
+14 QUIT