Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: LRWU8

LRWU8.m

Go to the documentation of this file.
  1. LRWU8 ;DALOI/WPW - TOOL TO FIX ORGANISM SUBFILE AND DATA ;06/06/12 16:06
  1. ;;5.2;LAB SERVICE;**350**;Sep 27, 1994;Build 230
  1. ;
  1. ;Reference to ^DD supported by ICR# 29 and 999
  1. ;---------------------------------------------------------------
  1. ;
  1. ;Output:
  1. ;-------
  1. ; ^TMP("LR",$J,scenario [for email/report]
  1. ;
  1. ; scenario Description
  1. ; -------- -----------------------------------------------------
  1. ; S1........Bad Input Transform found.
  1. ; S2........Bad Help Text found.
  1. ; S3........Bad Key found.
  1. ; S4........Field number is good (ien) so build sensitivity,
  1. ; interp & screen definition based on good field
  1. ; number, no result data needs updating.
  1. ; S5........Field number is bad (ien) so delete bad definitions,
  1. ; build new sensitivity, interp & screen definitions
  1. ; and update results data as needed.
  1. ; S6........Everything left over that could not be
  1. ; programmatically corrected.
  1. ;
  1. ;---------------------------------------------------------------
  1. EN ; Interactive entry point.
  1. ;
  1. N FIX,INSTALL,LR,LRSITE,LRSUBFIL,LRTYPE,NBR,TSTR,XMDUZ,XMY
  1. ;
  1. I '$D(^XUSEC("LRLIASON",DUZ)) D Q
  1. .W !,"You do not have the LRLIASON key which is required to"
  1. .W " run this tool.",*7
  1. ;
  1. S FIX=$$ASK^LRWU8A(),INSTALL=0
  1. ;
  1. I 'FIX Q
  1. ;
  1. S FIX=FIX-1 ;FIX=0: Analyze, FIX=1: Analyze and Fix.
  1. ;
  1. S XMDUZ=DUZ,XMY(DUZ)=""
  1. D DES^XMA21 ; call to get the email recipients list.
  1. ;
  1. D PREP^XGF ; setup screen
  1. ;
  1. D INIT,SORT,DISCARD,ANALYZE,FIX0,FIX5,FIX1,FIX2,FIX3,FIX4
  1. D SEND^LRWU8A ; send email/report
  1. D CLEAN^XGF ; reset screen
  1. ;
  1. K ^TMP(LR,$J)
  1. ;
  1. Q
  1. ;---------------------------------------------------------------
  1. KIDS ; Entry point for post install run.
  1. ;
  1. N FIX,INSTALL,LR,LRSITE,LRSUBFIL,LRTYPE,NBR,XMY
  1. ;
  1. I $$PROD^XUPROD(),$G(^XMB("NETNAME"))["DOMAIN.EXT" S XMY("G.LAB DEV IRMFO@DOMAIN.EXT")="",XMY("G.CSCLIN4@DOMAIN.EXT")=""
  1. S XMY(DUZ)="",XMY("G.LMI")="",FIX=0,INSTALL=1 ;[ccr-8167]
  1. ;
  1. D INIT,SORT,DISCARD,ANALYZE,FIX0,FIX5,FIX1,FIX2,FIX3,FIX4
  1. D SEND^LRWU8A ; send email/report
  1. ;
  1. K ^TMP(LR,$J)
  1. ;
  1. Q
  1. ;---------------------------------------------------------------
  1. LRNIGHT ; Entry point for ^LRNIGHT run.
  1. ;
  1. N FIX,INSTALL,LR,LRSITE,LRSUBFIL,LRTYPE,NBR,XMY
  1. ;
  1. I $$PROD^XUPROD(),$G(^XMB("NETNAME"))["DOMAIN.EXT" S XMY("G.LAB DEV IRMFO@DOMAIN.EXT")="",XMY("G.CSCLIN4@DOMAIN.EXT")=""
  1. S (XMY(DUZ),XMY("G.LMI"))="",FIX=0,INSTALL=1
  1. ;
  1. D INIT,SORT,DISCARD,ANALYZE,FIX0,FIX5,FIX1,FIX2,FIX3,FIX4
  1. I $D(^TMP(LR,$J)) D SEND^LRWU8A ; send email/report
  1. ;
  1. K ^TMP(LR,$J)
  1. ;
  1. Q
  1. ;---------------------------------------------------------------
  1. INIT ; Initialize variables and such...
  1. ;
  1. D DT^DICRW ; load fileman variables.
  1. ;
  1. S LRTYPE=1,LR="LR",LRSITE=$$STA^XUAF4($$KSP^XUPARAM("INST"))
  1. S NBR="2.00"_LRSITE,LRSUBFIL=63.3,DT=$$DT^XLFDT
  1. ;
  1. ; Ignore fields inadvertently distributed by a previous Lab patch from
  1. ; a development account to some VA sites during patch testing.
  1. ; These fields were name spaced under site number 170 and 600.
  1. S TSTR=""
  1. I $E(LRSITE,1,3)'=170 S TSTR=TSTR_"|2.00170001|2.00170002|2.00170003|2.00170004|2.00170005"
  1. I $E(LRSITE,1,3)'=600 S TSTR=TSTR_"|2.00600001|2.00600002|2.00600003|2.00600004|2.00600005|2.00600006|2.00600007"
  1. S TSTR=TSTR_"|"
  1. ;
  1. K ^TMP(LR,$J)
  1. ;
  1. Q
  1. ;---------------------------------------------------------------
  1. SORT ; Sort Antibiotics fields: 1-Sensitivity, 2-Interp & 3-Screen.
  1. ;
  1. ; Input: None.
  1. ;
  1. ;Output: ^TMP(LR,$j,"SORT", = field number sort + 1, 2 and/or 3
  1. ; ^TMP(LR,$j,"S1",ien) = bad input transform
  1. ; ^TMP(LR,$j,"S2",ien) = bad help text
  1. ; ^TMP(LR,$j,"S3",ien) = bad key
  1. ;-----
  1. N D0,DATA,HELP,IT,KEY,NKEY
  1. ;
  1. S NKEY="A:ALWAYS DISPLAY;N:NEVER DISPLAY;R:RESTRICT DISPLAY;"
  1. ;
  1. S D0=""
  1. F S D0=$O(^DD(63.3,D0)) Q:D0="" D:$D(^DD(63.3,D0,0))
  1. .S DATA=$G(^DD(63.3,D0,0)) Q:DATA=""
  1. .I +$P(DATA,U,4)<2 Q
  1. .I +$P(DATA,U,4)>2.99999999 Q
  1. .S IT=$P(DATA,U,5,99),HELP=$G(^DD(63.3,D0,4)),KEY=$P(DATA,U,3)
  1. .I $P($P(DATA,U,4),";",2)=1 D
  1. ..I IT'="D ^LRMISR" D
  1. ...S ^TMP(LR,$J,"S1",D0)=IT_"|D ^LRMISR"
  1. ..I HELP'="D EN^LRMISR" D
  1. ...S ^TMP(LR,$J,"S2",D0)=HELP_"|D EN^LRMISR"
  1. .I $P($P(DATA,U,4),";",2)=2 D
  1. ..I IT'="D INT^LRMISR" D
  1. ...S ^TMP(LR,$J,"S1",D0)=IT_"|D INT^LRMISR"
  1. ..I HELP'="D HINT^LRMISR" D
  1. ...S ^TMP(LR,$J,"S2",D0)=HELP_"|D HINT^LRMISR"
  1. .I $P($P(DATA,U,4),";",2)=3 D
  1. ..I IT'="Q" D
  1. ...S ^TMP(LR,$J,"S1",D0)=IT_"|Q"
  1. ..I KEY'=NKEY D
  1. ...S ^TMP(LR,$J,"S3",D0)=KEY_"|"_NKEY
  1. .S ^TMP(LR,$J,"SORT",+$P(DATA,U,4),$P($P(DATA,U,4),";",2))=D0
  1. ;
  1. Q
  1. ;---------------------------------------------------------------
  1. DISCARD ; Discard Antibiotic if all 3 tests are defined.
  1. ;
  1. ; Input: ^TMP(LR,$J,"SORT"
  1. ;
  1. ;Output: ^TMP(LR,$J,"SORT"
  1. ;-----
  1. N CNT,DATA,LRX,LRFLD
  1. ;
  1. S (LRX,LRFLD)=""
  1. F S LRFLD=$O(^TMP(LR,$J,"SORT",LRFLD)) Q:LRFLD="" D
  1. .F CNT=0:1 S LRX=$O(^TMP(LR,$J,"SORT",LRFLD,LRX)) Q:LRX="" D
  1. ..S DATA=^TMP(LR,$J,"SORT",LRFLD,LRX)
  1. .;
  1. .; Ignore fields inadvertently distributed by a previous Lab patch from
  1. .; a development account to some VA sites during patch testing.
  1. .; These fields were name spaced under site number 170 and 600.
  1. .I CNT=3,TSTR'[("|"_LRFLD_"|") K ^TMP(LR,$J,"SORT",LRFLD) Q
  1. .S ^TMP(LR,$J,"SORT",LRFLD)=CNT_U_DATA
  1. ;
  1. Q
  1. ;---------------------------------------------------------------
  1. ANALYZE ; Check ^LR for entries after discard.
  1. ;
  1. ; Input: ^TMP(LR,$J,"SORT"
  1. ;
  1. ;Output: ^TMP(LR,$J,"CNT",LRFLD = total result entries for ien
  1. ;-----
  1. I '$D(^TMP(LR,$J,"SORT")) Q
  1. ;
  1. N CNT,D2,LRFLD,LRDFN,LRIDT
  1. ;
  1. S (LRDFN,LRIDT,D2,LRFLD)=""
  1. F CNT=1:1 S LRDFN=$O(^LR(LRDFN)) Q:LRDFN="" D
  1. .I 'INSTALL D
  1. ..I (CNT#1000)=1 D SAY^XGF(24,1,"Analyzing LRDFN: "_LRDFN)
  1. .I '$D(^LR(LRDFN,"MI")) Q
  1. .F S LRIDT=$O(^LR(LRDFN,"MI",LRIDT)) Q:LRIDT="" D
  1. ..I '$D(^LR(LRDFN,"MI",LRIDT,3)) Q
  1. ..F S D2=$O(^LR(LRDFN,"MI",LRIDT,3,D2)) Q:D2="" D
  1. ...F S LRFLD=$O(^TMP(LR,$J,"SORT",LRFLD)) Q:LRFLD="" D
  1. ....I '$D(^LR(LRDFN,"MI",LRIDT,3,D2,LRFLD)) Q
  1. ....S ^TMP(LR,$J,"CNT",LRFLD)=$G(^TMP(LR,$J,"CNT",LRFLD))+1
  1. ;
  1. Q
  1. ;---------------------------------------------------------------
  1. FIX0 ; Cleanup non data leftover fields from previous patches.
  1. ;
  1. ; Input: ^TMP(LR,$J,"SORT"
  1. ;
  1. ;Output: None
  1. ;-----
  1. I '$D(^TMP(LR,$J,"SORT")) Q
  1. ;
  1. N CNT,DA,DIK,LRFLD,LRTNODE,PCE
  1. ;
  1. F PCE=2:1 S LRFLD=$P(TSTR,"|",PCE) Q:LRFLD="" D
  1. .I +$G(^TMP(LR,$J,"CNT",LRFLD)) D Q
  1. ..I +$G(^TMP(LR,$J,"SORT",LRFLD))=3 D
  1. ...K ^TMP(LR,$J,"SORT",LRFLD),^TMP(LR,$J,"CNT",LRFLD)
  1. .;
  1. .F CNT=1:1:3 I $D(^TMP(LR,$J,"SORT",LRFLD,CNT)) D
  1. ..S DA=^TMP(LR,$J,"SORT",LRFLD,CNT)
  1. ..S DA(1)=LRSUBFIL,DIK="^DD("_DA(1)_","
  1. ..I FIX D ^DIK
  1. ..F LRTNODE="S1","S2","S3" K ^TMP(LR,$J,LRTNODE,DA)
  1. .;
  1. .K ^TMP(LR,$J,"SORT",LRFLD)
  1. ;
  1. Q
  1. ;---------------------------------------------------------------
  1. FIX1 ; Cleanup the bad Input Transforms, Help Text and Input Keys.
  1. ;
  1. ; Input: ^TMP(LR,$J,"S1" <= input transforms
  1. ; ^TMP(LR,$J,"S2" <= help text
  1. ; ^TMP(LR,$J,"S3" <= input keys
  1. ;
  1. ;Output: None
  1. ;-----
  1. I 'FIX Q
  1. I '$D(^TMP(LR,$J,"S1")),'$D(^TMP(LR,$J,"S2")),'$D(^TMP(LR,$J,"S3")) Q
  1. ;
  1. N DATA,LRFLD,NEW
  1. ;
  1. S LRFLD=""
  1. F S LRFLD=$O(^TMP(LR,$J,"S1",LRFLD)) Q:LRFLD="" D
  1. .S DATA=^DD(63.3,LRFLD,0),NEW=$P(^TMP(LR,$J,"S1",LRFLD),"|",2)
  1. .S ^DD(63.3,LRFLD,0)=$P(DATA,U,1,4)_U_NEW
  1. .S ^DD(63.3,LRFLD,"DT")=DT
  1. ;
  1. F S LRFLD=$O(^TMP(LR,$J,"S2",LRFLD)) Q:LRFLD="" D
  1. .S ^DD(63.3,LRFLD,4)=$P(^TMP(LR,$J,"S2",LRFLD),"|",2)
  1. .S ^DD(63.3,LRFLD,"DT")=DT
  1. ;
  1. F S LRFLD=$O(^TMP(LR,$J,"S3",LRFLD)) Q:LRFLD="" D
  1. .S DATA=^DD(63.3,LRFLD,0),NEW=$P(^TMP(LR,$J,"S3",LRFLD),"|",2)
  1. .S ^DD(63.3,LRFLD,0)=$P(DATA,U,1,2)_U_NEW_U_$P(DATA,U,4,99)
  1. .S ^DD(63.3,LRFLD,"DT")=DT
  1. ;
  1. Q
  1. ;---------------------------------------------------------------
  1. FIX2 ; If no ^LR data found kill any 2 & 3 positions from ^DD(63.3
  1. ; (2=interp & 3=screen) based on the ANALYZE sub findings.
  1. ;
  1. ; Input: ^TMP(LR,$J,"SORT"
  1. ;
  1. ;Output: None
  1. ;
  1. ;-----
  1. I '$D(^TMP(LR,$J,"SORT")) Q
  1. ;
  1. N CNT,LRFLD,D1,DA,DIK,LRNUM,LRNAME,LR6206
  1. ;
  1. S (LRFLD,D1)=""
  1. F S LRFLD=$O(^TMP(LR,$J,"SORT",LRFLD)) Q:LRFLD="" D
  1. .S LRNUM=$G(^TMP(LR,$J,"SORT",LRFLD,1))
  1. .S LRNAME=$P($G(^DD(63.3,+LRNUM,0)),U)
  1. .I $D(^TMP(LR,$J,"SORT",LRFLD,1)),LRNAME'[" INTERP",LRNAME'[" SCREEN" Q
  1. .S LR6206=$O(^LAB(62.06,"AD",LRFLD,""))
  1. .I LR6206 Q
  1. .I '$D(^TMP(LR,$J,"CNT",LRFLD)) D
  1. ..F CNT=1,2,3 I $D(^TMP(LR,$J,"SORT",LRFLD,CNT)) D
  1. ...S DA=^TMP(LR,$J,"SORT",LRFLD,CNT)
  1. ...S DA(1)=LRSUBFIL,DIK="^DD("_DA(1)_","
  1. ...I FIX D ^DIK
  1. ...K ^TMP(LR,$J,"SORT",LRFLD,CNT)
  1. ..F CNT=0:1 S D1=$O(^TMP(LR,$J,"SORT",LRFLD,D1)) Q:D1=""
  1. ..I 'CNT K ^TMP(LR,$J,"SORT",LRFLD)
  1. ..E S $P(^TMP(LR,$J,"SORT",LRFLD),U)=CNT
  1. ;
  1. Q
  1. ;---------------------------------------------------------------
  1. FIX3 ; Fix 1 and 1,2 and 1,3 DD entries, leaving 2 and 3 and 2,3
  1. ;
  1. ; Input: ^TMP(LR,$J,"SORT"
  1. ;
  1. ;Output: ^TMP(LR,$J,"S4",ien1) = ien2 ^ ien3
  1. ;
  1. ; [where: ien1 = ^DD(63.3,ien1 (for the sensitivity)
  1. ; ien2 = ^DD(63.3,ien2 (for the interp)
  1. ; ien3 = ^DD(63.3,ien3 (for the screen)]
  1. ;
  1. ; ^TMP(LR,$J,"S5",ien) = ien1 ^ ien2 ^ ien3 ^ cnt
  1. ;
  1. ; [where: ien = old ^DD(63.3,ien (for old sensitivity)
  1. ; ien1 = ^DD(63.3,ien1 (for the sensitivity)
  1. ; ien2 = ^DD(63.3,ien2 (for the interp)
  1. ; ien3 = ^DD(63.3,ien3 (for the screen)
  1. ; cnt = total # of ^LR's that has been updated]
  1. ;-----
  1. I '$D(^TMP(LR,$J,"SORT")) Q
  1. ;
  1. N CNT,DATA,LRFLD,DA,DIK,LR6206,LRFDA,LRNAME,LRNAME1,LRNAME2
  1. N LRNUM,LRNUM1,LRNUM2
  1. ;
  1. S LRFLD=""
  1. F S LRFLD=$O(^TMP(LR,$J,"SORT",LRFLD)) Q:LRFLD="" D
  1. .S LR6206=$O(^LAB(62.06,"AD",LRFLD,""))
  1. .I $D(^TMP(LR,$J,"SORT",LRFLD,1)) D
  1. ..S LRNUM=^TMP(LR,$J,"SORT",LRFLD,1)
  1. ..;
  1. ..; index and field match & are correct format.
  1. ..;
  1. ..I LRFLD=LRNUM,$E(LRNUM,1,$L(NBR))=NBR D Q
  1. ...S LRNUM1=LRNUM+.000000001,LRNUM2=LRNUM+.000000002
  1. ...S LRNAME=$P(^DD(63.3,LRNUM,0),U)
  1. ...I LRNAME[" INTERP"!(LRNAME[" SCREEN") Q
  1. ...S LRNAME1=LRNAME_" INTERP",LRNAME2=LRNAME_" SCREEN"
  1. ...I FIX D
  1. ....S DA(1)=LRSUBFIL,DIK="^DD("_DA(1)_","
  1. ....F DA=LRNUM,LRNUM1,LRNUM2 D ^DIK
  1. ....D SETFLDS^LRWU7
  1. ...S ^TMP(LR,$J,"S4",LRNUM)=LRNUM1_U_LRNUM2
  1. ...K ^TMP(LR,$J,"SORT",LRFLD)
  1. ..;
  1. ..; index and field don't match & are incorrect format.
  1. ..;
  1. ..I $E(LRNUM,1,$L(NBR))'=NBR D Q
  1. ...S LRNAME=$P(^DD(63.3,LRNUM,0),U)
  1. ...I LRNAME[" INTERP"!(LRNAME[" SCREEN") Q
  1. ...S LRNAME1=LRNAME_" INTERP",LRNAME2=LRNAME_" SCREEN"
  1. ...D NUMBER^LRWU7
  1. ...S DA=^TMP(LR,$J,"SORT",LRFLD,1)
  1. ...S DA(1)=LRSUBFIL,DIK="^DD("_DA(1)_","
  1. ...I FIX D
  1. ....D SETFLDS^LRWU7
  1. ....I LR6206]"" D
  1. .....S LRFDA(62.06,LR6206_",",5)=LRNUM
  1. .....D FILE^DIE(,"LRFDA")
  1. .....;
  1. .....D UPD624(LR6206,LRNUM) ; Update Auto Instrument File with new Drug Node
  1. ....F CNT=3,2,1 I $D(^TMP(LR,$J,"SORT",LRFLD,CNT)) D
  1. .....S DA=^TMP(LR,$J,"SORT",LRFLD,CNT) D ^DIK
  1. ...S CNT=+$G(^TMP(LR,$J,"CNT",LRFLD))
  1. ...K ^TMP(LR,$J,"CNT",LRFLD)
  1. ...S ^TMP(LR,$J,"S5",DA)=LRNUM_U_LRNUM1_U_LRNUM2_U_CNT
  1. ...K ^TMP(LR,$J,"SORT",LRFLD)
  1. ...S ^TMP(LR,$J,"SORT",LRFLD,"NEW")=LRNUM
  1. ;
  1. Q
  1. ;---------------------------------------------------------------
  1. FIX4 ; Cleanup the ^LR entries for single DD's.
  1. ;
  1. ; Input: ^TMP(LR,$J,"SORT"
  1. ;
  1. ;Output: ^TMP(LR,$J,"S6",ien) = "" [where: ien = ^DD(63.3,ien]
  1. ;-----
  1. I '$D(^TMP(LR,$J,"SORT")) Q
  1. ;
  1. N CNT,D2,LRFLD,DA,DIK,LRDFN,LRIDT,LRN,LRNUM
  1. ;
  1. S (LRDFN,LRIDT,D2)=""
  1. F S LRDFN=$O(^LR(LRDFN)) Q:LRDFN="" D
  1. .I '$D(^LR(LRDFN,"MI")) Q
  1. .F S LRIDT=$O(^LR(LRDFN,"MI",LRIDT)) Q:LRIDT="" D
  1. ..S D2=""
  1. ..F S D2=$O(^LR(LRDFN,"MI",LRIDT,3,D2)) Q:D2=""!(D2'?.N) D
  1. ...S LRFLD=2
  1. ...F S LRFLD=$O(^LR(LRDFN,"MI",LRIDT,3,D2,LRFLD)) Q:LRFLD=""!(LRFLD>3) D
  1. ....I '$D(^TMP(LR,$J,"SORT",LRFLD,"NEW")) Q
  1. ....S LRN=^TMP(LR,$J,"SORT",LRFLD,"NEW")
  1. ....I FIX D
  1. .....I 'INSTALL D
  1. ......D SAY^XGF(24,1,"Repairing LRDFN: "_LRDFN_" LRIDT: "_LRIDT)
  1. .....M ^LR(LRDFN,"MI",LRIDT,3,D2,LRN)=^LR(LRDFN,"MI",LRIDT,3,D2,LRFLD)
  1. .....K ^LR(LRDFN,"MI",LRIDT,3,D2,LRFLD)
  1. .....D UPDATE^LRPXRM(LRDFN,"MI",LRIDT) ;Update Clinical Reminders Index
  1. ;
  1. ; Move all non-programatically fixed data to Scenario 6 (S6).
  1. ;
  1. S (D2,LRFLD)=""
  1. F S D2=$O(^TMP(LR,$J,"SORT",D2)) Q:D2="" D
  1. .F S LRFLD=$O(^TMP(LR,$J,"SORT",D2,LRFLD)) Q:LRFLD="" D
  1. ..I LRFLD="NEW" K ^TMP(LR,$J,"SORT",D2,LRFLD) Q
  1. ..S DA=^TMP(LR,$J,"SORT",D2,LRFLD)
  1. ..S ^TMP(LR,$J,"S6",DA)=""
  1. .K ^TMP(LR,$J,"SORT",D2)
  1. ;
  1. ; Remove S1,S2 and/or S3 entries that do not have
  1. ; associated DD entries.
  1. ;
  1. S LRFLD=""
  1. F D2="S1","S2","S3" D:$D(^TMP(LR,$J,D2))
  1. .F S LRFLD=$O(^TMP(LR,$J,D2,LRFLD)) Q:LRFLD="" D
  1. ..I '$D(^DD(63.3,LRFLD)) K ^TMP(LR,$J,D2,LRFLD)
  1. ;
  1. Q
  1. ;---------------------------------------------------------------
  1. FIX5 ; Ensure that the fix entry is an ANTIBIOTIC NAME instead of an
  1. ; INTERP or SCREEN.
  1. ;
  1. ; Input: ^TMP(LR,$J,"S1" <= input transforms
  1. ; ^TMP(LR,$J,"S2" <= help text
  1. ; ^TMP(LR,$J,"S3" <= input keys
  1. ;
  1. ;Output: None
  1. ;-----
  1. N TYPE,LRFLD,DATA,DA,DIK
  1. ;
  1. F TYPE="S1","S2","S3" D
  1. .S LRFLD=""
  1. .F S LRFLD=$O(^TMP(LR,$J,TYPE,LRFLD)) Q:LRFLD="" D
  1. ..S DATA=$G(^DD(63.3,LRFLD,0))
  1. ..I $P($P(DATA,U,4),";",2)=1 D
  1. ...I $P(DATA,U)[" INTERP"!($P(DATA,U)[" SCREEN") K ^TMP(LR,$J,TYPE,LRFLD)
  1. ..I $P($P(DATA,U,4),";",2)=2 D
  1. ...I $P(DATA,U)'[" INTERP" K ^TMP(LR,$J,TYPE,LRFLD)
  1. ..I $P($P(DATA,U,4),";",2)=3 D
  1. ...I $P(DATA,U)'[" SCREEN" K ^TMP(LR,$J,TYPE,LRFLD)
  1. Q
  1. ;
  1. ;---------------------------------------------------------------
  1. ;
  1. UPD624(LR6206,LRNDRGND) ; Update Drug Node in Auto Instrument File
  1. ;
  1. ; Input:
  1. ; LR6206 - IEN in Antimicrobial Susceptibility File (#62.06)
  1. ; LRNDRGND - The new Drug Node
  1. ;
  1. ; Output: None
  1. ;
  1. N LR624,LR6243,LR6246,LRDRUG
  1. ;
  1. S LR624=0 F S LR624=$O(^LAB(62.4,LR624)) Q:'LR624 D
  1. . ;
  1. . S LR6243=0 F S LR6243=$O(^LAB(62.4,LR624,7,LR6243)) Q:'LR6243 D
  1. . . ;
  1. . . S LR6246=0 F S LR6246=$O(^LAB(62.4,LR624,7,LR6243,2,LR6246)) Q:'LR6246 D
  1. . . . ;
  1. . . . S LRDRUG=$P($G(^LAB(62.4,LR624,7,LR6243,2,LR6246,0)),U,1)
  1. . . . ;
  1. . . . I LRDRUG'=LR6206 Q
  1. . . . ;
  1. . . . N LRFDA,LRIENS
  1. . . . S LRIENS=LR6246_","_LR6243_","_LR624_","
  1. . . . S LRFDA(62.46,LRIENS,1)=LRNDRGND
  1. . . . D FILE^DIE("","LRFDA")
  1. ;
  1. Q