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

LA7VIN5B.m

Go to the documentation of this file.
  1. LA7VIN5B ;DALOI/JMC - Process Incoming UI Msgs, continued ;11/17/11 16:09
  1. ;;5.2;AUTOMATED LAB INSTRUMENTS;**74**;Sep 27, 1994;Build 229
  1. ;
  1. ; This routine is a continuation of LA7VIN5.
  1. ;
  1. Q
  1. ;
  1. ;
  1. ORESULTS ; Process results that accompany order (ORM) messages
  1. ;
  1. N I,LA74,LA764,LA7DIE,LA7ERR,LA7I,LA7WP,LA7X,LA7Y,X,Y
  1. ;
  1. ; Identify producing laboratory
  1. S LA7X=$$P^LA7VHLU(.LA7SEG,24,LA7FS),LA74=""
  1. I $P(LA7X,LA7CS,6)="CLIA" S LA74=$$IDX^XUAF4("CLIA",$P(LA7X,LA7CS,10))
  1. I 'LA74 S LA74=$$RESFID^LA7VHLU2($$P^LA7VHLU(.LA7SEG,16,LA7FS),LA7SFAC,LA7CS)
  1. ;
  1. ; Special handling of AP specimen codes in OBX segment.
  1. I LA7TEST(0,1)="LN",LA7TEST="22633-2" D APSPEC Q
  1. ;
  1. ; Special handling of AP specimen codes in OBX segment used by DoD CHCS
  1. I LA7TEST(0,1)="AS4",LA7TEST="5000.12" D APSPEC Q
  1. I LA7TEST(0,1)="99LAB",LA7TEST="TOP" D APSPEC Q
  1. ;
  1. ; Special handling of AP data in OBX segments
  1. I LA7TEST(0,1)="LN","10215-2^10218-6^10219-4^22634-0^22635-7^22636-5^22637-3^22639-9^"[LA7TEST D APDATA Q
  1. ;
  1. ; Special handling of frozen section AP data used by VistA.
  1. I LA7TEST(0,1)="99VA64",LA7TEST="88569.0000" D APDATA Q
  1. ;
  1. ; Special handling of AP data in OBX segments used by DoD CHCS.
  1. I LA7TEST(0,1)="AS4","5000.3^5000.4^5000.10^"[LA7TEST D APDATA Q
  1. ;
  1. S LA7I=2,X=""
  1. ;
  1. I LA7RLNC D
  1. . S X="[LOINC "_$$GET1^DIQ(95.3,LA7RLNC_",",.01)_"] "
  1. . S Y=$$GET1^DIQ(95.3,LA7RLNC_",",81)
  1. . I Y="" S Y=$$GET1^DIQ(95.3,LA7RLNC_",",80)
  1. . S X=X_Y
  1. I 'LA7RLNC,LA7RNLT D
  1. . S LA764=$$FIND1^DIC(64,"","X",LA7RNLT,"E","","LA7ERR")
  1. . I 'LA764 S LA7RNLT="" Q
  1. . S X="[NLT "_$$GET1^DIQ(64,LA764_",",1)_"] "_$$GET1^DIQ(64,LA764_",",.01,"I")
  1. I 'LA7RLNC,'LA7RNLT D
  1. . I LA7TEST(0)]""!(LA7TEST]"") S X="["_LA7TEST(0,1)_" "_LA7TEST_"] "_LA7TEST(0) Q
  1. . S X="["_LA7TEST(2,1)_" "_LA7TEST(2)_"] "_LA7TEST(2,0)
  1. ;
  1. S LA7WP(LA7I,0)="Test result: "_X
  1. ;
  1. ; Date value
  1. I LA7VTYP?1(1"DT",1"TS") D
  1. . S LA7X=$$P^LA7VHLU(.LA7SEG,6,LA7FS)
  1. . S LA7X=$$HL7TFM^XLFDT(LA7X,"L")
  1. . S LA7I=LA7I+1,LA7WP(LA7I,0)=" Test value: "_LA7X
  1. ;
  1. ; Coded entry
  1. I LA7VTYP?1(1"CE",1"CM",1"CNE",1"CWE") D
  1. . S LA7X=$P($$P^LA7VHLU(.LA7SEG,6,LA7FS),LA7CS,2)
  1. . S LA7X=$$UNESC^LA7VHLU3(LA7X,LA7FS_LA7ECH)
  1. . S LA7I=LA7I+1,LA7WP(LA7I,0)=" Test value: "_LA7X_$S(LA7UNITS'="":" "_LA7UNITS,1:"")
  1. ;
  1. ; Numeric/ Structured Numeric value
  1. I LA7VTYP?1(1"NM",1"SN") D
  1. . S LA7X=$$P^LA7VHLU(.LA7SEG,6,LA7FS)
  1. . S LA7X=$$UNESC^LA7VHLU3(LA7X,LA7FS_LA7ECH)
  1. . S LA7I=LA7I+1,LA7WP(LA7I,0)=" Test value: "_LA7X_$S(LA7UNITS]"":" "_LA7UNITS,1:"")
  1. ;
  1. ; String Data/ Formatted Text/ Text Data
  1. I LA7VTYP?1(1"ST",1"FT",1"TX") D
  1. . D PA^LA7VHLU(.LA7SEG,6,LA7FS,.LA7X)
  1. . D UNESCFT^LA7VHLU3(.LA7X,LA7FS_LA7ECH,.LA7Y)
  1. . I LA7Y=1,(($L(LA7Y(1,0))+$L(LA7UNITS))<225) S LA7I=LA7I+1,LA7WP(LA7I,0)=" Test value: "_LA7Y(1,0)_$S(LA7UNITS]"":" "_LA7UNITS,1:"") Q
  1. . S LA7I=LA7I+1,LA7WP(LA7I,0)=" Test value:"
  1. . F I=1:1:LA7Y S LA7I=LA7I+1,LA7WP(LA7I,0)=LA7Y(I,0)
  1. . I LA7UNITS'="" S LA7I=LA7I+1,LA7WP(LA7I,0)=" Test units: "_LA7UNITS
  1. ;
  1. ; Normals/ Reference range
  1. S LA7X=$$P^LA7VHLU(.LA7SEG,8,LA7FS)
  1. I LA7X'="" S LA7I=LA7I+1,LA7WP(LA7I,0)=" Test normals: "_LA7X
  1. ;
  1. ; Normalcy status
  1. S LA7X=$$P^LA7VHLU(.LA7SEG,9,LA7FS)
  1. I LA7X'="" D
  1. . S X=" L^ H^LL^HH^ <^ >^ N^ A^AA^ U^ D^ B^ W^ S^ R^ I^MS^VS"
  1. . S I=$F(X,LA7X)\3,LA7X=$P($T(ABFLAGS+I^LA7VHLU1),";;",2)
  1. . I LA7X'="" S LA7I=LA7I+1,LA7WP(LA7I,0)=" Test normalcy status: "_LA7X
  1. ;
  1. I $D(LA7WP) S LA7WP(1,0)=" " D WP^DIE(69.6,LA7696_",",99,"A","LA7WP","LA7DIE(99)")
  1. Q
  1. ;
  1. ;
  1. APSPEC ; Process anatomic pathology specimens that accompany order (ORM) messages
  1. ;
  1. N I,FDA,LA761,LA762,LA76961,LA7ALTXT,LA7DIE,LA7IEN,LA7TXT,LA7VAL,LA7X,LA7Y
  1. ;
  1. S (LA761,LA7ALTXT,LA7TXT)=""
  1. S LA7VAL=$$P^LA7VHLU(.LA7SEG,6,LA7FS)
  1. ;
  1. ; Coded entry
  1. I LA7VTYP?1(1"CE",1"CM",1"CNE",1"CWE") D
  1. . D FLD2ARR^LA7VHLU7(.LA7VAL,LA7FS_LA7ECH)
  1. . F I=1,4 D
  1. . . I $G(LA7VAL(I+2))="SCT" D Q
  1. . . . N LA7HL7
  1. . . . S LA7HL7("FSEC")=LA7FS_LA7ECH
  1. . . . S LA7HL7("OBX",3)=$$P^LA7VHLU(.LA7SEG,4,LA7FS)
  1. . . . S LA7HL7("OBX",5)=$$P^LA7VHLU(.LA7SEG,6,LA7FS)
  1. . . . S LA761=$$SCT2IEN^LA7VHLU6(LA7VAL(I),LA7VAL(I+1),$G(LA7VAL($S(I=1:7,1:8))),61,0,LA76248)
  1. . . . I 'LA761 S LA761=+$$EN^LRSCTX(61,LA7VAL(I+1),LA7VAL(I),.LA7HL7)
  1. . . . S LA7ALTXT=LA7VAL(I+1)
  1. . . I $G(LA7VAL(I+2))="",$G(LA7VAL(I+1))'="" S LA7TXT=LA7VAL(I+1)
  1. ;
  1. I LA7VTYP?1(1"ST",1"FT",1"TX") S LA7TXT=$$UNESC^LA7VHLU3(LA7VAL,LA7FS_LA7ECH)
  1. ;
  1. ; Handle OBX-3 with LOINC code
  1. I LA7TEST(0,1)="LN",LA7TEST="22633-2" D
  1. . I LA7TXT="",LA7ALTXT="" Q
  1. . S FDA(1,69.6061,"+2,"_LA7696_",",.01)=$S(LA7TXT'="":LA7TXT,1:LA7ALTXT)
  1. . I LA761 S FDA(1,69.6061,"+2,"_LA7696_",",.02)=LA761
  1. ;
  1. ; Handle OBX-3 with old AS4 code from HL7 standard - used by DoD CHCS
  1. I LA7TEST(0,1)="AS4",LA7TEST="5000.12",LA7TXT'="" S FDA(1,69.6061,"+2,"_LA7696_",",.01)=LA7TXT
  1. ;
  1. ; Handle OBX-3 with 99LAB - used by DoD CHCS
  1. I LA7TEST(0,1)="99LAB",LA7TEST="TOP" D
  1. . N LA7HL7
  1. . S LA7HL7("FSEC")=LA7FS_LA7ECH
  1. . S LA7HL7("OBX",3)=$$P^LA7VHLU(.LA7SEG,4,LA7FS)
  1. . S LA7HL7("OBX",5)=$$P^LA7VHLU(.LA7SEG,6,LA7FS)
  1. . I LA7VTYP?1(1"ST",1"FT",1"TX"),LA7TXT'="" S FDA(1,69.6061,"+2,"_LA7696_",",.01)=LA7TXT Q
  1. . S LA761=+$$EN^LRSCTX(61,LA7VAL,"",.LA7HL7)
  1. . S LA7IEN=$O(^LRO(69.6,LA7696,61," "),-1)
  1. . I LA7IEN,LA761 S FDA(2,69.6061,LA7IEN_","_LA7696_",",.02)=LA761
  1. ;
  1. ; File the data in the respective fields.
  1. I $D(FDA(1)) D
  1. . S LA762=$P(^LRO(69.6,LA7696,0),"^",8)
  1. . I LA762 S FDA(1,69.6061,"+2,"_LA7696_",",.03)=LA762
  1. . D UPDATE^DIE("","FDA(1)","LA76961","LA7DIE(1)")
  1. I $D(FDA(2)) D FILE^DIE("","FDA(2)","LA7DIE(2)")
  1. ;
  1. Q
  1. ;
  1. ;
  1. APDATA ; Process anatomic pathology information that accompany order (ORM) messages
  1. ;
  1. N I,FDA,LA769063,LA7DIE,LA7ERR,LA7I,LA7WP,LA7X,LA7Y,TYPE,X,Y
  1. ;
  1. S TYPE=0
  1. ;
  1. I LA7TEST(0,1)="LN" D
  1. . I LA7TEST="22636-5" S TYPE=.013 Q
  1. . I LA7TEST="10219-4" S TYPE=.014 Q
  1. . I LA7TEST="10215-2" S TYPE=.015 Q
  1. . I LA7TEST="10218-6" S TYPE=.016 Q
  1. . I LA7TEST="22634-0" S TYPE=1 Q
  1. . I LA7TEST="22635-7" D Q
  1. . . I LA7TEST(2,1)="99VA64",LA7TEST(2)="88569.0000" S TYPE=1.3 Q
  1. . . S TYPE=1.1
  1. . I LA7TEST="22637-3" S TYPE=1.4 Q
  1. . I LA7TEST="22639-9" S TYPE=1.2 Q
  1. ;
  1. I LA7TEST(0,1)="99VA64",LA7TEST="88569.0000" S TYPE=1.3
  1. ;
  1. I LA7TEST(0,1)="AS4" D
  1. . I LA7TEST="5000.10" S TYPE=.013 Q
  1. . I LA7TEST="5000.3" S TYPE=.014 Q
  1. . I LA7TEST="5000.4" S TYPE=.016 Q
  1. ;
  1. I LA7TEST(0,1)="99LAB",LA7TEST="FRZ" S TYPE=1.3
  1. ;
  1. ; String Data/ Formatted Text/ Text Data
  1. I LA7VTYP?1(1"ST",1"FT",1"TX") D
  1. . D PA^LA7VHLU(.LA7SEG,6,LA7FS,.LA7X)
  1. . D UNESCFT^LA7VHLU3(.LA7X,LA7FS_LA7ECH,.LA7WP)
  1. ;
  1. ; File the data in the respective fields.
  1. I TYPE,$D(LA7WP) D
  1. . S FDA(1,69.6063,"?+1,"_LA7696_",",.01)=TYPE
  1. . I LA74 S FDA(1,69.6063,"?+1,"_LA7696_",",.02)=LA74
  1. . D UPDATE^DIE("","FDA(1)","LA769063","LA7DIE(1)")
  1. . D WP^DIE(69.6063,LA769063(1)_","_LA7696_",",1,"A","LA7WP","LA7DIE(2)")
  1. ;
  1. Q