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

LA7VIN7B.m

Go to the documentation of this file.
  1. LA7VIN7B ;DALOI/JDB - Process ORU's OBX for Micro ;08/05/16 08:16
  1. ;;5.2;AUTOMATED LAB INSTRUMENTS;**74,90**;Sep 27, 1994;Build 17
  1. ;
  1. ; Continuation of LA7VIN7 and is only called from there.
  1. ; Process OBX segments for "MI" subscript tests.
  1. Q
  1. ;
  1. ;
  1. 4 ;
  1. ; process Mycobaterium (Subscript 12)
  1. N X,SUB,ISQN2
  1. I DDS<0!(DDP<1) D DDERR^LA7VIN7A Q
  1. I LA7612<1 D Q ;
  1. . ; Unknown entity in OBX-5
  1. . N LA7VOBX5
  1. . S LA7VOBX5=OBX5 ;needed for log
  1. . S LA7VOBX5=$$UNESC^LA7VHLU3(LA7VOBX5,LA7FS_LA7ECH)
  1. . D CREATE^LA7LOG(204)
  1. . S LA7KILAH=1 S LA7QUIT=2
  1. ;
  1. S ISQN2=0
  1. I SUBID'="" S ISQN2=$$SUBID^LAGEN(LWL,LA7ISQN,"MI",12,SUBID)
  1. I SUBID="" I $G(PSUBID)'="" S ISQN2=$$SUBID^LAGEN(LWL,LA7ISQN,"MI",12,PSUBID)
  1. I 'ISQN2 D Q ;
  1. . D SUBIDERR^LA7VIN71
  1. ;
  1. S SUB="12,"_ISQN2_",0"
  1. D LAH(SUB,DDP,LA7612) ; organism #61.2 IEN
  1. S X=OBX5_$S(OBX6'="":" "_OBX6,1:"")
  1. S SUB="12,"_ISQN2_",.1"
  1. D LAH(SUB,1,SUBID) ; isolate id
  1. S SUB="12,"_ISQN2_","_DDS_",.01"
  1. D LAH(SUB,1,LA7RLNC) ; LOINC IEN
  1. D LAH(SUB,2,LA7RNLT) ; NLT code
  1. D LAH(SUB,3,LA7SCT) ; SCT Code
  1. S SUB="12,"_ISQN2_","_DDS_",.01,0"
  1. D LAH(SUB,1,OBX11) ;
  1. S SUB="12,"_ISQN2_","_DDS_",.01,1"
  1. D LAH(SUB,1,LA74)
  1. S X=$P(LA7RO,"^",3)
  1. D LAH(SUB,2,X)
  1. D NTE
  1. Q
  1. ;
  1. ;
  1. 9 ;
  1. ; Process fungus (Subscript 9)
  1. N X,SUB,ISQN2
  1. I LA7612<1 D Q ;
  1. . ; Unknown entity in OBX-5
  1. . N LA7VOBX5
  1. . S LA7VOBX5=OBX5 ;needed for log
  1. . S LA7VOBX5=$$UNESC^LA7VHLU3(LA7VOBX5,LA7FS_LA7ECH)
  1. . D CREATE^LA7LOG(204)
  1. . S LA7KILAH=1 S LA7QUIT=2
  1. ;
  1. S ISQN2=0
  1. I SUBID'="" S ISQN2=$$SUBID^LAGEN(LWL,LA7ISQN,"MI",9,SUBID)
  1. I SUBID="" I $G(PSUBID)'="" S ISQN2=$$SUBID^LAGEN(LWL,LA7ISQN,"MI",9,PSUBID)
  1. I 'ISQN2 D Q ;
  1. . D SUBIDERR^LA7VIN71
  1. ;
  1. S SUB="9,"_ISQN2_",0"
  1. D LAH(SUB,1,LA7612) ; #61.2 IEN
  1. S SUB="9,"_ISQN2_",.1"
  1. D LAH(SUB,1,SUBID) ; isolate id
  1. S SUB="9,"_ISQN2_",0,.01"
  1. D LAH(SUB,1,LA7RLNC) ; LOINC IEN
  1. D LAH(SUB,2,LA7RNLT) ; NLT code
  1. D LAH(SUB,3,LA7SCT) ; SCT Code
  1. S SUB="9,"_ISQN2_",0,.01,0"
  1. D LAH(SUB,1,OBX11) ;
  1. S SUB="9,"_ISQN2_",0,.01,1"
  1. D LAH(SUB,1,LA74)
  1. S X=$P(LA7RO,"^",3)
  1. D LAH(SUB,2,X)
  1. D NTE
  1. Q
  1. ;
  1. ;
  1. 11 ;
  1. ; Process Fungal Colony Count (Subscript 9)
  1. N X,SUB,ISQN2,UNITS
  1. S ISQN2=0
  1. I SUBID'="" S ISQN2=$$SUBID^LAGEN(LWL,LA7ISQN,"MI",9,SUBID)
  1. I SUBID="" I $G(PSUBID)'="" S ISQN2=$$SUBID^LAGEN(LWL,LA7ISQN,"MI",9,PSUBID)
  1. I 'ISQN2 D Q ;
  1. . D SUBIDERR^LA7VIN71
  1. ;
  1. D LAH("9,0",-1,"")
  1. S SUB="9,"_ISQN2_",0"
  1. S X=$$UNESC^LA7VHLU3(OBX5,LA7FS_LA7ECH)
  1. S UNITS=$$UNESC^LA7VHLU3(OBX6,LA7FS_LA7ECH)
  1. I UNITS'="" S X=X_" "_UNITS
  1. D LAH(SUB,2,X) ;quantity
  1. S SUB="9,"_ISQN2_",0,1"
  1. D LAH(SUB,1,LA7RLNC) ; LOINC
  1. S SUB="9,"_ISQN2_",0,1,0"
  1. D LAH(SUB,1,OBX11) ; Obsv Results
  1. S SUB="9,"_ISQN2_",0,1,1"
  1. D LAH(SUB,1,LA74)
  1. S X=$P(LA7RO,"^",3)
  1. D LAH(SUB,2,X) ; Resp Obsv.
  1. D NTE
  1. Q
  1. ;
  1. ;
  1. 15(COM) ;
  1. ; Process Mycology Rpt Remark (Subscript 10)
  1. ; Input
  1. ; COM : <opt> The text to use for the remark (comment)
  1. ; : If empty OBX5 is used
  1. ;
  1. N X,SUB,ISQN2,TEXT,TEXT2,MAXLEN
  1. ; dont initialize COM
  1. S SUB="10,0"
  1. D LAH(SUB,1,LA74)
  1. S X=$P(LA7RO,"^",3)
  1. D LAH(SUB,2,X) ; resp obsv
  1. D LAH(SUB,3,LA7RLNC) ; LOINC
  1. D LAH(SUB,4,OBX11) ;obsv status
  1. S ISQN2=$O(^LAH(LWL,1,LA7ISQN,"MI",10,"A"),-1)+1
  1. ; pull comment from COM or OBX5
  1. S TEXT="OBX5"
  1. I $D(COM)=1 S TEXT="COM"
  1. I TEXT="OBX5" S TEXT2=$$UNESC^LA7VHLU3(OBX5,LA7FS_LA7ECH)
  1. I TEXT="COM" S TEXT2=$G(COM)
  1. S MAXLEN=68 ; COMMENTS field size
  1. S SUB="10,"_ISQN2_",0"
  1. ; insert separator line if needed
  1. I ISQN2>1 D LAH(SUB,1," ") S ISQN2=ISQN2+1 S SUB="10,"_ISQN2_",0"
  1. ;
  1. ; if this an override insert Original Concept name
  1. I $P(DSOBX3,"^",6) I $P(DSOBX3,"^",1)'=$P(DSOBX3,"^",6) D ;
  1. . S X=$P(DSOBX3,"^",6) ;original concept
  1. . S X=$G(^LAB(62.47,X,0))
  1. . S X=$P(X,U,1)
  1. . Q:X=""
  1. . D LAH(SUB,1,"["_X_"]")
  1. . S ISQN2=ISQN2+1 S SUB="13,"_ISQN2_",0"
  1. ;
  1. ; modify MAXLEN for prefixed Subid
  1. I $L(TEXT2)'>MAXLEN D ;
  1. . D LAH(SUB,1,TEXT2)
  1. I $L(TEXT2)>MAXLEN D ;
  1. . N I,Y,PASS
  1. . S PASS=$L(TEXT2)\MAXLEN
  1. . S:($L(TEXT2)#MAXLEN)>0 PASS=PASS+1
  1. . F I=0:1:PASS-1 S Y=(I*MAXLEN)+1 D ;
  1. . . D LAH(SUB,1,$E(TEXT2,Y,(Y+MAXLEN)-1))
  1. . . S Y=Y+MAXLEN
  1. . . S ISQN2=ISQN2+1
  1. . . S SUB="10,"_ISQN2_",0"
  1. . ;
  1. D NTE^LA7VIN71(LA76247,ISQN)
  1. Q
  1. ;
  1. ;
  1. 20 ;
  1. ; Process Mycobacterium Colony Count (Subscript 12)
  1. N X,SUB,ISQN2,UNITS
  1. S ISQN2=0
  1. I SUBID'="" S ISQN2=$$SUBID^LAGEN(LWL,LA7ISQN,"MI",12,SUBID)
  1. I SUBID="" I $G(PSUBID)'="" S ISQN2=$$SUBID^LAGEN(LWL,LA7ISQN,"MI",12,PSUBID)
  1. I 'ISQN2 D Q ;
  1. . D SUBIDERR^LA7VIN71
  1. ;
  1. S SUB="12,"_ISQN2_",0"
  1. S X=$$UNESC^LA7VHLU3(OBX5,LA7FS_LA7ECH)
  1. S UNITS=$$UNESC^LA7VHLU3(OBX6,LA7FS_LA7ECH)
  1. I UNITS'="" S X=X_" "_UNITS
  1. D LAH(SUB,2,X) ;quantity
  1. S SUB="12,"_ISQN2_",0,1"
  1. D LAH(SUB,1,LA7RLNC) ; LOINC
  1. S SUB="12,"_ISQN2_",0,1,0"
  1. D LAH(SUB,1,OBX11) ; Obsv Results
  1. S SUB="12,"_ISQN2_",0,1,1"
  1. D LAH(SUB,1,LA74)
  1. S X=$P(LA7RO,"^",3)
  1. D LAH(SUB,2,X) ; Resp Obsv.
  1. D NTE
  1. Q
  1. ;
  1. ;
  1. 21 ;
  1. ; Process mycobacteria susceptibilities (Subscript 12)
  1. N LA76206,LA7X,X,X2,SUB,ISQN2,ASCRN
  1. I DDS<0!(DDP'>0) D DDERR^LA7VIN7A Q
  1. S ISQN2=0
  1. I SUBID'="" S ISQN2=$$SUBID^LAGEN(LWL,LA7ISQN,"MI",12,SUBID)
  1. I SUBID="" I $G(PSUBID)'="" S ISQN2=$$SUBID^LAGEN(LWL,LA7ISQN,"MI",12,PSUBID)
  1. I 'ISQN2 D Q ;
  1. . D SUBIDERR^LA7VIN71
  1. ;
  1. S ASCRN=$$FIELD^LA7VHLU7(13)
  1. I ASCRN'="" D ;
  1. . N X,DATA
  1. . S X=$P(DSOBX3,"^",4)
  1. . S X=X+.2
  1. . D CHK^DIE(63.3,X,"",ASCRN,.DATA)
  1. . S ASCRN=$P(DATA,"^",1)
  1. S SUB="12,"_ISQN2_","_DDS
  1. S X=OBX5_$S(OBX6'="":" "_OBX6,1:"")
  1. ; convert SCT susc code to local code
  1. I LA7VTYP?1(1"CE",1"CM",1"CNE",1"CWE") D
  1. . N LA7I,VAR,VER,X2
  1. . S X2="",VAR=OBX5 D FLD2ARR^LA7VHLU7(.VAR,LA7FS_LA7ECH)
  1. . F LA7I=1,4 D Q:X2'=""
  1. . . I $G(VAR(LA7I))="",$G(VAR(LA7I+1))="" Q ; Quit if no code or text for this tuple
  1. . . S VER=$S(LA7I=1:7,1:8)
  1. . . S X2=$$SCT2KB^LA7VHLU6($G(VAR(LA7I)),$G(VAR(LA7I+1)),$G(VAR(LA7I+2)),$G(VAR(VER)))
  1. . . I X2'="" S X=X2 Q
  1. . . S X2=$$SCT2PN^LA7VHLU6($G(VAR(LA7I)),$G(VAR(LA7I+1)),$G(VAR(LA7I+2)),$G(VAR(VER)))
  1. . . I X2'="" S X=X2
  1. ;
  1. S X=$TR(X,"^"," ")
  1. D LAH(SUB,DDP,X) ; result
  1. S SUB="12,"_ISQN2_","_DDS_",.01"
  1. D LAH(SUB,1,LA7RLNC) ; LOINC
  1. D LAH(SUB,2,LA7RNLT) ; NLT code
  1. D LAH(SUB,3,LA7SCT) ; SCT
  1. S SUB="12,"_ISQN2_","_DDS_",.01,0"
  1. D LAH(SUB,1,OBX11) ;obsv status
  1. S SUB="12,"_ISQN2_","_DDS_",.01,1"
  1. D LAH(SUB,1,LA74) ; #4 IEN
  1. S X=$P(LA7RO,"^",3)
  1. D LAH(SUB,2,X) ; resp observer
  1. ;
  1. ; Set prefix to antibiotic abbrevation or full name to annotate comments.
  1. S LA7X=$$ABPREFIX^LA7VIN7A(2,LA7DD)
  1. I LA7X="" S LA7X=LA7DD("LABEL")
  1. D NTE^LA7VIN71(LA76247,ISQN2,LA7X)
  1. Q
  1. ;
  1. ;
  1. 79 ;
  1. ; Process Acid Fast Stain (Subscript 11)
  1. N X,SUB,ISQN2,UNITS,DATAOK
  1. S SUB="11,0"
  1. S X=$$UNESC^LA7VHLU3(OBX5,LA7FS_LA7ECH)
  1. D ;
  1. . N Z,LAMSG
  1. . D CHK^DIE(63.05,24,"",X,.Z,"LAMSG")
  1. . I $G(Z)'="^" S X=Z
  1. S DATAOK=$$DATAOK^LA7VIN7(63.05,24,X)
  1. S UNITS=$$UNESC^LA7VHLU3(OBX6,LA7FS_LA7ECH)
  1. ; Workaround 01/10/2007 (store anything in Set of Codes)
  1. D LAH(SUB,3,X)
  1. I DATAOK D ;
  1. . D LAH(SUB,3,X)
  1. ;
  1. I 'DATAOK D ;
  1. . I UNITS'="" S X=X_" "_UNITS
  1. . D LAH(SUB,4,X) ;quantity
  1. ;
  1. S SUB="11,0,.01"
  1. D LAH(SUB,1,LA7RLNC) ; LOINC
  1. S SUB="11,0,.01,0"
  1. D LAH(SUB,1,OBX11) ; Obsv Results
  1. S SUB="11,0,.01,1"
  1. D LAH(SUB,1,LA74)
  1. S X=$P(LA7RO,"^",3)
  1. D LAH(SUB,2,X) ; Resp Obsv.
  1. D NTE^LA7VIN71(LA76247,ISQN)
  1. Q
  1. ;
  1. ;
  1. 85 ;
  1. ; Process Acid Fast Stain Quantity (Subscript 11)
  1. N X,SUB,ISQN2,UNITS
  1. S SUB="11,0"
  1. S X=$$UNESC^LA7VHLU3(OBX5,LA7FS_LA7ECH)
  1. S UNITS=$$UNESC^LA7VHLU3(OBX6,LA7FS_LA7ECH)
  1. I UNITS'="" S X=X_" "_UNITS
  1. D LAH(SUB,4,X)
  1. ;
  1. S SUB="11,0,.02"
  1. D LAH(SUB,1,LA7RLNC) ; LOINC
  1. S SUB="11,0,.02,0"
  1. D LAH(SUB,1,OBX11) ; Obsv Results
  1. S SUB="11,0,.02,1"
  1. D LAH(SUB,1,LA74)
  1. S X=$P(LA7RO,"^",3)
  1. D LAH(SUB,2,X) ; Resp Obsv.
  1. D NTE^LA7VIN71(LA76247,ISQN)
  1. Q
  1. ;
  1. ;
  1. LAH(LASUB,LAP,LAVAL) ;
  1. ; Convenience method
  1. D LAH^LAGEN(+$G(LWL),+$G(LA7ISQN),"MI",LASUB,LAP,LAVAL)
  1. Q
  1. ;
  1. ;
  1. NTE ;
  1. ; Convenience method
  1. D NTE^LA7VIN71(LA76247,ISQN2)
  1. Q