- LRMLWT ;BPFO/DTG - LAB NTRT LOOP 60 FOR MLTF ;02/10/2016
- ;;5.2;LAB SERVICE;**468,500**;Sep 27, 1994;Build 29
- ;
- ; From option LR NTRT WALK ASSOCIATE
- ;
- ; loop through the 60 file by test
- EN ; starting point for walking from newest test to oldest test in file 60
- ; to associate with the MLTF
- N DIE,DR,DA,DIQ,LRTN,LRARY,LRSPARY,DT,A,B,C,D,PS,LASTTEST,DIR,LRIEN,LRSPEC,LRSN,LRS,LRN,LSITE,LRNT,LRNTI,AR,LXA,LXB
- N LRMLTF,LR64,LR64ER,ER,LRSPERR,LROKS,LRSYSTEM,LRLEC,LRNO,X,Y
- N AA,ALA,ALAC,DIC,I,LRCKD,LRELEC,LRLNC,LRLNC0,LT,SCOUNT,OK
- S U="^" I $G(DT)="" S DT=$$DT^XLFDT
- S B=$$SITE^VASITE,B=$P(B,U,1) I 'B Q ; not set up
- S PS=$O(^LAB(66.4,"B",B,0)) I PS="" Q ; 66.4 not set up
- ;START OF CHANGE FOR LR*5.2*500
- S LASTTEST=$$GET1^DIQ(66.4,PS_",",.08)
- I LASTTEST]"" S OK=0 D I OK G QUIT
- . N LNAME,LRFDA,DIR,DIRUT
- . S LNAME=$S(LASTTEST="DONE":"Process Completed",1:$$GET1^DIQ(60,(+LASTTEST)_",",.01))
- . S DIR(0)="SO^C:CONTINUE WITH "_LNAME_" ["_LASTTEST_"];S:START OVER"
- . S DIR("L",1)=" CONTINUE WITH "_LNAME_" ["_LASTTEST_"] (C)"
- . S DIR("L")=" START OVER (S)"
- . D ^DIR
- . I $D(DIRUT)!(Y="^") W !,*7,"Continuation Method Not Selected. Quitting" S OK=1 Q
- . I $G(Y)="S" S LRFDA(66.4,PS_",",.08)="@" D FILE^DIE(,"LRFDA")
- ;END OF CHANGE FOR LR*5.2*500
- ENR S LASTTEST=$$GET1^DIQ(66.4,PS_",",.08)
- I LASTTEST="DONE" W !,*7,"Process Has Been Completed" G QUIT
- D GET664
- I LASTTEST="" S LASTTEST=$O(^LAB(60,"A"),-1) I LASTTEST?1.N S LR64ER=0 D I LR64ER=1 G SETER
- . L +^LAB(66.4,PS):30 I '$T S LR64ER=1 Q
- . S LASTTEST=LASTTEST+1,DA=PS,DIE="^LAB(66.4,",DR=".08///"_LASTTEST
- . D ^DIE
- . L -^LAB(66.4,PS)
- ;
- LOOP ; start the process
- S LRIEN=LASTTEST K LRSPARY
- L1 S LRIEN=$O(^LAB(60,LRIEN),-1) I LRIEN="" S LRIEN="DONE" G LOUT
- D GET60T
- S LRN=$G(LXA(.01,"E")),LR64ER=0
- ; check test subscript is valid for NTRT
- S AA=$G(LXA(4,"I"))
- I AA="WK" S LR64ER=0 D LSET G:LR64ER=1 SETER G L1
- I AA="BB" D LSET G:LR64ER=1 SETER G L1
- ; check test type
- S AA=$G(LXA(3,"I"))
- I AA="N"!(AA="D") D LSET G:LR64ER=1 SETER G L1
- ; check for data name
- I $G(LXA(5,"I"))="" D LSET G:LR64ER=1 SETER G L1
- ;
- ; loop ^LAB(60 specimen level
- S LT=0,LRS=0
- D Q1 I LRS<1 D S LR64ER=0 D LSET G:LR64ER=1 SETER G ENR
- . I SCOUNT<1 W !!,*7," *** This Test ( ",LRN," [",LRIEN,"]) Does Not Have any Specimens",!!
- G L2
- L2 ;loop through specimens
- K DIR,DIRUT
- S DIR("A")="Enter The Number For The Specimen to Associate With The MLTF"
- S DIR(0)="SO^",ALAC=0
- F I=1:1:LRS S ALA=$G(LRSPARY(I)) I ALA'="" S ALAC=ALAC+1 S:ALAC>1 DIR(0)=DIR(0)_";" S DIR(0)=DIR(0)_I_":"_LRSPARY(I)
- W !!,"TEST: "_LRN
- W !,"SPECIMEN(s)",!
- D ^DIR
- I $D(DIRUT) G QUIT:$E(X)="^"
- I Y'?1.N G LX
- S A=$G(LRSPARY(Y)) I A="" W !,*7,"Number out of Range" G L2
- S LRSPEC=$P($P(A,"[",2),"]",1),LRSN=$P(A," ",1) I LRSPEC'?1.N W !,*7,"Specimen not found" G L2
- L2M ; come here to ask MLTF
- K DIR,DA,DIRUT
- ;START OF CHANGE FOR LR*5.2*500
- S DIR(0)="PO^66.3:EMQZ"
- ;END OF CHANGE FOR LR*5.2*500
- S DIR("S")="I '$$SCREEN^XTID(66.3,"""",(+Y_"",""))"
- D ^DIR
- I $D(DIRUT) G QUIT:$E(X)="^"
- I +Y'>0 G LX:LRS<2,L2Q
- S LRSPERR=0,LRMLTF=+Y
- ; check specimen type (based on code from LRLNC0 at CHKSPEC
- S LRELEC=$P($G(^LAB(61,LRSPEC,0)),U,9)
- S LRLNC0=$$GET1^DIQ(66.3,LRMLTF,.04,"I")
- S LRLNC=$P(LRLNC0,"-",1),LRCKD=$P(LRLNC0,"-",2)
- S A=0,LRSYSTEM="" F S A=$O(^LAB(95.3,"B",LRLNC,A)) Q:'A S B=$G(^LAB(95.3,A,0)),LRSYSTEM=$P(B,U,8),C=$P(B,U,15) I C=LRCKD Q
- ; if not found in 95.3
- I 'A G L2S
- D CHKSPEC G:LROKS=1 L2S
- I $D(DIRUT) G QUIT:$E(X)="^"
- I LRNO=1 W !,"TEST: ",LRN,!,"SPECIMEN: ",LRSN,! G L2M
- G L2S
- ;
- L2S D MSET I LRSPERR=1 G SETER
- S A=$$GET1^DIQ(60.01,LT_","_LRIEN,30,"E")
- W !,LRSN,": Saved With MLTF ",A,!
- S LT=0,LRS=0 K LRSPARY D Q1 I LRS<1 D S LR64ER=0 D LSET G:LR64ER=1 SETER G ENR
- . I SCOUNT<1 W !!,*7," *** This Test ( ",LRN," [",LRIEN,"] Does Not Have any Specimens",!! R X:10
- G L2
- ;
- L2Q ; ask to see additional specimens
- K DIR,DIRUT S DIR(0)="Y",DIR("B")="YES",DIR("A")="Do You Wish to Evaluate Additional Specimens? "
- D ^DIR
- I $D(DIRUT) G QUIT:$E(X)="^"
- I Y=1 S LT=0,LRS=0 K LRSPARY D Q1 W:LRS<1 *7," No More Specimens To Check For This Test" G:LRS<1 LX G L2
- G LX
- LX ;
- K DIR,DIRUT S DIR(0)="Y",DIR("B")="YES",DIR("A")="Do You Wish to go to The Next Test?"
- D ^DIR
- I $D(DIRUT) G QUIT:$E(X)="^"
- I Y=1 S LR64ER=0 D LSET G:LR64ER=1 SETER G ENR
- K DIR,DIRUT S DIR(0)="Y",DIR("B")="YES",DIR("A")="Do You Wish to Exit?" D ^DIR
- G QUIT:$D(DIRUT) I Y=1 K DIR,DIRUT S LR64ER=0 D G:LRNO=1 QUIT G SETER:LR64ER=1,QUIT
- . S LRNO=0,DIR(0)="Y",DIR("B")="YES",DIR("A")="Do You Wish to Skip This Test on Re-Start?" D ^DIR
- . I $D(DIRUT) S LRNO=1 Q
- . I Y=1 D LSET
- G ENR
- ;
- Q1 ; pick up spcimens from test
- S SCOUNT=0
- Q1A S LT=$O(^LAB(60,LRIEN,1,LT)) I 'LT Q
- S SCOUNT=SCOUNT+1
- S B=$$GET1^DIQ(60.01,LT_","_LRIEN,30,"I") I B'="" G Q1A
- S A=$$GET1^DIQ(60.01,LT_","_LRIEN,.01,"E")
- S LRS=LRS+1,LRSPARY(LRS)=A_" ["_LT_"]" ;LT_"-"_A
- G Q1A
- ;
- QUIT ;
- K DIE,DR,DA,DIQ,LRTN,LRARY,LRSPARY,A,B,C,D,PS,LASTTEST,DIR,LRIEN,LRSPEC,LRSN,LRS,LRN,LSITE,LRNT,LRNTI,AR,LXA,LXB
- K LRMLTF,LR64,LR64ER,ER,LRSPERR,LROKS,LRSYSTEM,LRLEC,LRNO
- K AA,ALA,ALAC,DIC,I,LRCKD,LRELEC,LRLNC,LRLNC0,LT,SCOUNT,X,Y,OK
- Q
- ;
- LOUT D LSET G:LR64ER=1 SETER
- I LRIEN="DONE" G QUIT
- K LRSPARY
- G ENR
- ;
- LSET ;put the last ien in 66.4 .08
- N DA,DIE,DR
- S DA=PS
- L +^LAB(66.4,DA):30 I '$T S LR64ER=1 Q
- S DIE="^LAB(66.4,",DR=".08///"_LRIEN D ^DIE
- L -^LAB(66.4,DA)
- Q
- ;
- SETER ; come here if not able to open files and quit
- W !,*7,"unable to open file... EXITING " R X:10 G QUIT
- ;
- MSET ;save the mltf to the 60 file
- N DA,DR,DIE,FDA,FFF
- L +^LAB(60,LRIEN,1,LRSPEC):30 I '$T S LRSPERR=1 Q
- ;START OF CHANGE FOR LR*5.2*500
- ;S DA(1)=+LRIEN,DA=LRSPEC,DR="30///"_LRMLTF,DIE="^LAB(60,"_DA(1)_",1," D ^DIE
- K FDA S DA(1)=+LRIEN,DA=LRSPEC,FFF=DA_","_DA(1)_",",FDA(60.01,FFF,30)=LRMLTF D FILE^DIE("","FDA")
- K FDA,FFF
- ;END OF CHANGE FOR LR*5.2*500
- L -^LAB(60,LRIEN,1,LRSPEC)
- Q
- ;
- GET664 ; get file 66.4 info
- S LSITE=$$SITE^VASITE,LSITE=$P(LSITE,U,1)
- S LRNT=$O(^LAB(66.4,"B",LSITE,0))
- D GETS^DIQ(66.4,LRNT_",","**","IE","AR")
- M LRNTI=AR("66.4",LRNT_",") K AR
- Q
- ;
- GET60T ; get top of file 60 test info
- S DA=LRIEN,DIQ="LXB",DIQ(0)="IE",DIC=60,DR=".01;3;4;5;64.1;5;13;131;132;133" D EN^DIQ1
- K LXA M LXA=LXB(60,DA) K LXB
- Q
- ;
- CHKSPEC ;Check that specimen of MLTF LOINC code same as specimen of test
- S LROKS=1
- I LRSYSTEM=$G(LRELEC) Q
- I (LRSYSTEM=74!(LRSYSTEM=83)!(LRSYSTEM=114)!(LRSYSTEM=1376))&($G(LRELEC)=74!($G(LRELEC)=83)!($G(LRELEC)=114)!($G(LRELEC)=1376)) Q
- S LROKS=0,LRNO=0
- W !!,"The MLTF LOINC code that you have selected does not have the"
- W !,"same specimen that you chose to test/specimen."
- K DIR,DIRUT
- S DIR(0)="Y",DIR("A")="Are you sure you want to do this"
- S DIR("?")="If you enter yes, the test/specimen will be associated to this MLTF LOINC code."
- S DIR("B")="Yes"
- D ^DIR
- I $D(DIRUT) S LRNO=1 Q
- I Y<1 S LRNO=1
- Q
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HLRMLWT 7045 printed Mar 13, 2025@21:22:32 Page 2
- LRMLWT ;BPFO/DTG - LAB NTRT LOOP 60 FOR MLTF ;02/10/2016
- +1 ;;5.2;LAB SERVICE;**468,500**;Sep 27, 1994;Build 29
- +2 ;
- +3 ; From option LR NTRT WALK ASSOCIATE
- +4 ;
- +5 ; loop through the 60 file by test
- EN ; starting point for walking from newest test to oldest test in file 60
- +1 ; to associate with the MLTF
- +2 NEW DIE,DR,DA,DIQ,LRTN,LRARY,LRSPARY,DT,A,B,C,D,PS,LASTTEST,DIR,LRIEN,LRSPEC,LRSN,LRS,LRN,LSITE,LRNT,LRNTI,AR,LXA,LXB
- +3 NEW LRMLTF,LR64,LR64ER,ER,LRSPERR,LROKS,LRSYSTEM,LRLEC,LRNO,X,Y
- +4 NEW AA,ALA,ALAC,DIC,I,LRCKD,LRELEC,LRLNC,LRLNC0,LT,SCOUNT,OK
- +5 SET U="^"
- IF $GET(DT)=""
- SET DT=$$DT^XLFDT
- +6 ; not set up
- SET B=$$SITE^VASITE
- SET B=$PIECE(B,U,1)
- IF 'B
- QUIT
- +7 ; 66.4 not set up
- SET PS=$ORDER(^LAB(66.4,"B",B,0))
- IF PS=""
- QUIT
- +8 ;START OF CHANGE FOR LR*5.2*500
- +9 SET LASTTEST=$$GET1^DIQ(66.4,PS_",",.08)
- +10 IF LASTTEST]""
- SET OK=0
- Begin DoDot:1
- +11 NEW LNAME,LRFDA,DIR,DIRUT
- +12 SET LNAME=$SELECT(LASTTEST="DONE":"Process Completed",1:$$GET1^DIQ(60,(+LASTTEST)_",",.01))
- +13 SET DIR(0)="SO^C:CONTINUE WITH "_LNAME_" ["_LASTTEST_"];S:START OVER"
- +14 SET DIR("L",1)=" CONTINUE WITH "_LNAME_" ["_LASTTEST_"] (C)"
- +15 SET DIR("L")=" START OVER (S)"
- +16 DO ^DIR
- +17 IF $DATA(DIRUT)!(Y="^")
- WRITE !,*7,"Continuation Method Not Selected. Quitting"
- SET OK=1
- QUIT
- +18 IF $GET(Y)="S"
- SET LRFDA(66.4,PS_",",.08)="@"
- DO FILE^DIE(,"LRFDA")
- End DoDot:1
- IF OK
- GOTO QUIT
- +19 ;END OF CHANGE FOR LR*5.2*500
- ENR SET LASTTEST=$$GET1^DIQ(66.4,PS_",",.08)
- +1 IF LASTTEST="DONE"
- WRITE !,*7,"Process Has Been Completed"
- GOTO QUIT
- +2 DO GET664
- +3 IF LASTTEST=""
- SET LASTTEST=$ORDER(^LAB(60,"A"),-1)
- IF LASTTEST?1.N
- SET LR64ER=0
- Begin DoDot:1
- +4 LOCK +^LAB(66.4,PS):30
- IF '$TEST
- SET LR64ER=1
- QUIT
- +5 SET LASTTEST=LASTTEST+1
- SET DA=PS
- SET DIE="^LAB(66.4,"
- SET DR=".08///"_LASTTEST
- +6 DO ^DIE
- +7 LOCK -^LAB(66.4,PS)
- End DoDot:1
- IF LR64ER=1
- GOTO SETER
- +8 ;
- LOOP ; start the process
- +1 SET LRIEN=LASTTEST
- KILL LRSPARY
- L1 SET LRIEN=$ORDER(^LAB(60,LRIEN),-1)
- IF LRIEN=""
- SET LRIEN="DONE"
- GOTO LOUT
- +1 DO GET60T
- +2 SET LRN=$GET(LXA(.01,"E"))
- SET LR64ER=0
- +3 ; check test subscript is valid for NTRT
- +4 SET AA=$GET(LXA(4,"I"))
- +5 IF AA="WK"
- SET LR64ER=0
- DO LSET
- if LR64ER=1
- GOTO SETER
- GOTO L1
- +6 IF AA="BB"
- DO LSET
- if LR64ER=1
- GOTO SETER
- GOTO L1
- +7 ; check test type
- +8 SET AA=$GET(LXA(3,"I"))
- +9 IF AA="N"!(AA="D")
- DO LSET
- if LR64ER=1
- GOTO SETER
- GOTO L1
- +10 ; check for data name
- +11 IF $GET(LXA(5,"I"))=""
- DO LSET
- if LR64ER=1
- GOTO SETER
- GOTO L1
- +12 ;
- +13 ; loop ^LAB(60 specimen level
- +14 SET LT=0
- SET LRS=0
- +15 DO Q1
- IF LRS<1
- Begin DoDot:1
- +16 IF SCOUNT<1
- WRITE !!,*7," *** This Test ( ",LRN," [",LRIEN,"]) Does Not Have any Specimens",!!
- End DoDot:1
- SET LR64ER=0
- DO LSET
- if LR64ER=1
- GOTO SETER
- GOTO ENR
- +17 GOTO L2
- L2 ;loop through specimens
- +1 KILL DIR,DIRUT
- +2 SET DIR("A")="Enter The Number For The Specimen to Associate With The MLTF"
- +3 SET DIR(0)="SO^"
- SET ALAC=0
- +4 FOR I=1:1:LRS
- SET ALA=$GET(LRSPARY(I))
- IF ALA'=""
- SET ALAC=ALAC+1
- if ALAC>1
- SET DIR(0)=DIR(0)_";"
- SET DIR(0)=DIR(0)_I_":"_LRSPARY(I)
- +5 WRITE !!,"TEST: "_LRN
- +6 WRITE !,"SPECIMEN(s)",!
- +7 DO ^DIR
- +8 IF $DATA(DIRUT)
- if $EXTRACT(X)="^"
- GOTO QUIT
- +9 IF Y'?1.N
- GOTO LX
- +10 SET A=$GET(LRSPARY(Y))
- IF A=""
- WRITE !,*7,"Number out of Range"
- GOTO L2
- +11 SET LRSPEC=$PIECE($PIECE(A,"[",2),"]",1)
- SET LRSN=$PIECE(A," ",1)
- IF LRSPEC'?1.N
- WRITE !,*7,"Specimen not found"
- GOTO L2
- L2M ; come here to ask MLTF
- +1 KILL DIR,DA,DIRUT
- +2 ;START OF CHANGE FOR LR*5.2*500
- +3 SET DIR(0)="PO^66.3:EMQZ"
- +4 ;END OF CHANGE FOR LR*5.2*500
- +5 SET DIR("S")="I '$$SCREEN^XTID(66.3,"""",(+Y_"",""))"
- +6 DO ^DIR
- +7 IF $DATA(DIRUT)
- if $EXTRACT(X)="^"
- GOTO QUIT
- +8 IF +Y'>0
- if LRS<2
- GOTO LX
- GOTO L2Q
- +9 SET LRSPERR=0
- SET LRMLTF=+Y
- +10 ; check specimen type (based on code from LRLNC0 at CHKSPEC
- +11 SET LRELEC=$PIECE($GET(^LAB(61,LRSPEC,0)),U,9)
- +12 SET LRLNC0=$$GET1^DIQ(66.3,LRMLTF,.04,"I")
- +13 SET LRLNC=$PIECE(LRLNC0,"-",1)
- SET LRCKD=$PIECE(LRLNC0,"-",2)
- +14 SET A=0
- SET LRSYSTEM=""
- FOR
- SET A=$ORDER(^LAB(95.3,"B",LRLNC,A))
- if 'A
- QUIT
- SET B=$GET(^LAB(95.3,A,0))
- SET LRSYSTEM=$PIECE(B,U,8)
- SET C=$PIECE(B,U,15)
- IF C=LRCKD
- QUIT
- +15 ; if not found in 95.3
- +16 IF 'A
- GOTO L2S
- +17 DO CHKSPEC
- if LROKS=1
- GOTO L2S
- +18 IF $DATA(DIRUT)
- if $EXTRACT(X)="^"
- GOTO QUIT
- +19 IF LRNO=1
- WRITE !,"TEST: ",LRN,!,"SPECIMEN: ",LRSN,!
- GOTO L2M
- +20 GOTO L2S
- +21 ;
- L2S DO MSET
- IF LRSPERR=1
- GOTO SETER
- +1 SET A=$$GET1^DIQ(60.01,LT_","_LRIEN,30,"E")
- +2 WRITE !,LRSN,": Saved With MLTF ",A,!
- +3 SET LT=0
- SET LRS=0
- KILL LRSPARY
- DO Q1
- IF LRS<1
- Begin DoDot:1
- +4 IF SCOUNT<1
- WRITE !!,*7," *** This Test ( ",LRN," [",LRIEN,"] Does Not Have any Specimens",!!
- READ X:10
- End DoDot:1
- SET LR64ER=0
- DO LSET
- if LR64ER=1
- GOTO SETER
- GOTO ENR
- +5 GOTO L2
- +6 ;
- L2Q ; ask to see additional specimens
- +1 KILL DIR,DIRUT
- SET DIR(0)="Y"
- SET DIR("B")="YES"
- SET DIR("A")="Do You Wish to Evaluate Additional Specimens? "
- +2 DO ^DIR
- +3 IF $DATA(DIRUT)
- if $EXTRACT(X)="^"
- GOTO QUIT
- +4 IF Y=1
- SET LT=0
- SET LRS=0
- KILL LRSPARY
- DO Q1
- if LRS<1
- WRITE *7," No More Specimens To Check For This Test"
- if LRS<1
- GOTO LX
- GOTO L2
- +5 GOTO LX
- LX ;
- +1 KILL DIR,DIRUT
- SET DIR(0)="Y"
- SET DIR("B")="YES"
- SET DIR("A")="Do You Wish to go to The Next Test?"
- +2 DO ^DIR
- +3 IF $DATA(DIRUT)
- if $EXTRACT(X)="^"
- GOTO QUIT
- +4 IF Y=1
- SET LR64ER=0
- DO LSET
- if LR64ER=1
- GOTO SETER
- GOTO ENR
- +5 KILL DIR,DIRUT
- SET DIR(0)="Y"
- SET DIR("B")="YES"
- SET DIR("A")="Do You Wish to Exit?"
- DO ^DIR
- +6 if $DATA(DIRUT)
- GOTO QUIT
- IF Y=1
- KILL DIR,DIRUT
- SET LR64ER=0
- Begin DoDot:1
- +7 SET LRNO=0
- SET DIR(0)="Y"
- SET DIR("B")="YES"
- SET DIR("A")="Do You Wish to Skip This Test on Re-Start?"
- DO ^DIR
- +8 IF $DATA(DIRUT)
- SET LRNO=1
- QUIT
- +9 IF Y=1
- DO LSET
- End DoDot:1
- if LRNO=1
- GOTO QUIT
- if LR64ER=1
- GOTO SETER
- GOTO QUIT
- +10 GOTO ENR
- +11 ;
- Q1 ; pick up spcimens from test
- +1 SET SCOUNT=0
- Q1A SET LT=$ORDER(^LAB(60,LRIEN,1,LT))
- IF 'LT
- QUIT
- +1 SET SCOUNT=SCOUNT+1
- +2 SET B=$$GET1^DIQ(60.01,LT_","_LRIEN,30,"I")
- IF B'=""
- GOTO Q1A
- +3 SET A=$$GET1^DIQ(60.01,LT_","_LRIEN,.01,"E")
- +4 ;LT_"-"_A
- SET LRS=LRS+1
- SET LRSPARY(LRS)=A_" ["_LT_"]"
- +5 GOTO Q1A
- +6 ;
- QUIT ;
- +1 KILL DIE,DR,DA,DIQ,LRTN,LRARY,LRSPARY,A,B,C,D,PS,LASTTEST,DIR,LRIEN,LRSPEC,LRSN,LRS,LRN,LSITE,LRNT,LRNTI,AR,LXA,LXB
- +2 KILL LRMLTF,LR64,LR64ER,ER,LRSPERR,LROKS,LRSYSTEM,LRLEC,LRNO
- +3 KILL AA,ALA,ALAC,DIC,I,LRCKD,LRELEC,LRLNC,LRLNC0,LT,SCOUNT,X,Y,OK
- +4 QUIT
- +5 ;
- LOUT DO LSET
- if LR64ER=1
- GOTO SETER
- +1 IF LRIEN="DONE"
- GOTO QUIT
- +2 KILL LRSPARY
- +3 GOTO ENR
- +4 ;
- LSET ;put the last ien in 66.4 .08
- +1 NEW DA,DIE,DR
- +2 SET DA=PS
- +3 LOCK +^LAB(66.4,DA):30
- IF '$TEST
- SET LR64ER=1
- QUIT
- +4 SET DIE="^LAB(66.4,"
- SET DR=".08///"_LRIEN
- DO ^DIE
- +5 LOCK -^LAB(66.4,DA)
- +6 QUIT
- +7 ;
- SETER ; come here if not able to open files and quit
- +1 WRITE !,*7,"unable to open file... EXITING "
- READ X:10
- GOTO QUIT
- +2 ;
- MSET ;save the mltf to the 60 file
- +1 NEW DA,DR,DIE,FDA,FFF
- +2 LOCK +^LAB(60,LRIEN,1,LRSPEC):30
- IF '$TEST
- SET LRSPERR=1
- QUIT
- +3 ;START OF CHANGE FOR LR*5.2*500
- +4 ;S DA(1)=+LRIEN,DA=LRSPEC,DR="30///"_LRMLTF,DIE="^LAB(60,"_DA(1)_",1," D ^DIE
- +5 KILL FDA
- SET DA(1)=+LRIEN
- SET DA=LRSPEC
- SET FFF=DA_","_DA(1)_","
- SET FDA(60.01,FFF,30)=LRMLTF
- DO FILE^DIE("","FDA")
- +6 KILL FDA,FFF
- +7 ;END OF CHANGE FOR LR*5.2*500
- +8 LOCK -^LAB(60,LRIEN,1,LRSPEC)
- +9 QUIT
- +10 ;
- GET664 ; get file 66.4 info
- +1 SET LSITE=$$SITE^VASITE
- SET LSITE=$PIECE(LSITE,U,1)
- +2 SET LRNT=$ORDER(^LAB(66.4,"B",LSITE,0))
- +3 DO GETS^DIQ(66.4,LRNT_",","**","IE","AR")
- +4 MERGE LRNTI=AR("66.4",LRNT_",")
- KILL AR
- +5 QUIT
- +6 ;
- GET60T ; get top of file 60 test info
- +1 SET DA=LRIEN
- SET DIQ="LXB"
- SET DIQ(0)="IE"
- SET DIC=60
- SET DR=".01;3;4;5;64.1;5;13;131;132;133"
- DO EN^DIQ1
- +2 KILL LXA
- MERGE LXA=LXB(60,DA)
- KILL LXB
- +3 QUIT
- +4 ;
- CHKSPEC ;Check that specimen of MLTF LOINC code same as specimen of test
- +1 SET LROKS=1
- +2 IF LRSYSTEM=$GET(LRELEC)
- QUIT
- +3 IF (LRSYSTEM=74!(LRSYSTEM=83)!(LRSYSTEM=114)!(LRSYSTEM=1376))&($GET(LRELEC)=74!($GET(LRELEC)=83)!($GET(LRELEC)=114)!($GET(LRELEC)=1376))
- QUIT
- +4 SET LROKS=0
- SET LRNO=0
- +5 WRITE !!,"The MLTF LOINC code that you have selected does not have the"
- +6 WRITE !,"same specimen that you chose to test/specimen."
- +7 KILL DIR,DIRUT
- +8 SET DIR(0)="Y"
- SET DIR("A")="Are you sure you want to do this"
- +9 SET DIR("?")="If you enter yes, the test/specimen will be associated to this MLTF LOINC code."
- +10 SET DIR("B")="Yes"
- +11 DO ^DIR
- +12 IF $DATA(DIRUT)
- SET LRNO=1
- QUIT
- +13 IF Y<1
- SET LRNO=1
- +14 QUIT