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

BLRRLMUA.m

Go to the documentation of this file.
  1. BLRRLMUA ; IHS/MSC/MKK - Reference Lab Meaningful use Utilities, Part A ; 22-Oct-2013 09:22 ; MKK
  1. ;;5.2;IHS LABORATORY;**1033**;NOV 1, 1997
  1. ;
  1. EEP ; Ersatz EP
  1. D EEP^BLRGMENU
  1. Q
  1. ;
  1. MU2TEST ; Test of code that reads INCOMING HL7 message
  1. NEW (DILOCKTM,DISYS,DT,DTIME,DUZ,IO,IOBS,IOF,IOM,ION,IOS,IOSL,IOST,IOT,IOXY,LRUID,U,XPARSYS,XQXFLG)
  1. ;
  1. S DIR(0)="NO"
  1. S DIR("A")="Enter UID:"
  1. D ^DIR
  1. I +$G(DIRUT) D ENDMESG^BLRRLMU2("No/Invalid Entry. Routine Ends.") Q
  1. ;
  1. S LRUID=X
  1. ;
  1. I $D(^LRO(68,"C",$P(LRUID,"A")))<1 D ENDMESG^BLRRLMU2("No Accessfion File Data. Routine Ends.") Q ; Skip if no UID data
  1. ;
  1. S X=$Q(^LRO(68,"C",$P(LRUID,"A"),0))
  1. S LRAA=$QS(X,4),LRAD=$QS(X,5),LRAN=$QS(X,6)
  1. ;
  1. S LRDFN=+$G(^LRO(68,LRAA,1,LRAD,1,LRAN,0)),LRIDT=$P($G(^(3)),"^",5)
  1. S LRSS=$$GET1^DIQ(68,LRAA,.02,"I")
  1. ;
  1. W !!,"LRUID:",LRUID,!
  1. W ?4,"LRAA:",LRAA,?19,"LRAD:",LRAD,?34,"LRAN:",LRAN,?49,"LRAS:",$G(^LRO(68,LRAA,1,LRAD,1,LRAN,.2)),!!
  1. ;
  1. K ^TMP("BLRRLMUU",$J,LRUID) ; DEBUG - Reset everything
  1. ;
  1. S PIEN=$$SHL7SEGS^BLRRLMUU(LRUID) ; Store HL7 data in ^TMP
  1. ;
  1. I PIEN<1 D ENDMESG^BLRRLMU2("No Information for PID "_LRUID_" found in 62.49. Routine Ends.") Q
  1. ;
  1. W "FILE 62.49 -- PIEN:",PIEN,!!
  1. ;
  1. ; Display the various HL7 segments' data
  1. S SEG=""
  1. F S SEG=$O(^TMP("BLRRLMUU",$J,LRUID,PIEN,SEG)) Q:SEG="" D
  1. . S SEGIEN=0
  1. . F S SEGIEN=$O(^TMP("BLRRLMUU",$J,LRUID,PIEN,SEG,SEGIEN)) Q:SEGIEN<1 D SHOWSEG
  1. ;
  1. D PRESSKEY^BLRGMENU(9)
  1. Q
  1. ;
  1. DISPMSH ; EP - Don't process anything in the MSH Segment
  1. Q
  1. ;
  1. DISPPID ; EP - Don't process anything in the PID Segment
  1. Q
  1. ;
  1. DISPOBR ; EP
  1. NEW CHNGDTT,DATANAME,DNDTT,F60IEN,OBRIEN,OBSDTT,RCTOSTR,TESTNAME,TSTLOINC
  1. ;
  1. S TSTLOINC=$P($P(STR,"|",5),"^")
  1. S TESTNAME=$P($P(STR,"|",5),"^",2)
  1. S ORIGTEXT=$P($P(STR,"|",5),"^",9)
  1. ;
  1. W ?9,"TSTLOINC:",TSTLOINC,?39,"TESTNAME:"
  1. W:$L(TESTNAME)<31 TESTNAME,!
  1. I $L(TESTNAME)>30 D LINEWRAP^BLRGMENU(49,TESTNAME,30) W !
  1. W ?9,"ORIGTEXT:",ORIGTEXT,!
  1. ;
  1. S F60IEN=$$FIND1^DIC(60,,,ORIGTEXT_",")
  1. W ?9,"F60IEN:",F60IEN,!
  1. ;
  1. S DATANAME=$$GET1^DIQ(60,+F60IEN,400,"I")
  1. W ?9,"DATANAME:",DATANAME,!
  1. ;
  1. S OBSDTT=$P($P(STR,"|",8),"^") ; Observation Date/Time
  1. W ?9,"OBSDTT:",OBSDTT
  1. D:$L(OBSDTT) SHOWDATE^BLRRLMU2(OBSDTT)
  1. W !
  1. ;
  1. S CHNGDTT=$P($P(STR,"|",23),"^") ; Status/Result Change Date/Time
  1. W ?9,"CHNGDTT:",CHNGDTT
  1. D:$L(CHNGDTT) SHOWDATE^BLRRLMU2(CHNGDTT)
  1. W !
  1. ;
  1. S DNDTT=$S($L(CHNGDTT):CHNGDTT,1:OBSDTT) ; DataName Date/Time
  1. W ?9,"DNDTT:",DNDTT
  1. D:$L(DNDTT) SHOWDATE^BLRRLMU2(CHNGDTT)
  1. W !
  1. ;
  1. S RCTOSTR=$P(STR,"|",29) ; Result Copies To
  1. I $L(RCTOSTR) D
  1. . S SUBSTR2=$TR($P(RCTOSTR,"^",2,6),"^"," ")
  1. . Q:$L($TR(SUBSTR2," "))<1 ; If only spaces, skip
  1. . ;
  1. . W ?9,"RCTOSTR:",RCTOSTR,!,?14,"SUBSTR2:",SUBSTR2,!
  1. . ;
  1. . ; Assumption is that the NAME is in $P(SUBSTR," ",1,3)
  1. . S SUBSTR2=$P(SUBSTR2," ")_","_$P(SUBSTR2," ",2,$L(SUBSTR2," "))
  1. . W ?19,"SUBSTR2:",SUBSTR2,!
  1. ;
  1. Q
  1. ;
  1. DISPOBX ; EP
  1. NEW ANSDTT,DATANAME,F60IEN,OBRIEN,STATUS,TESTNAME,TSTLOINC
  1. ;
  1. S TSTLOINC=$P($P(STR,"|",4),"^")
  1. S TESTNAME=$P($P(STR,"|",4),"^",2)
  1. S ORIGTEXT=$P($P(STR,"|",4),"^",9)
  1. ;
  1. W ?9,"TSTLOINC:",TSTLOINC,?39,"TESTNAME:"
  1. W:$L(TESTNAME)<31 TESTNAME,!
  1. I $L(TESTNAME)>30 D LINEWRAP^BLRGMENU(49,TESTNAME,30) W !
  1. W ?9,"ORIGTEXT:",ORIGTEXT,!
  1. ;
  1. S F60IEN=$$FIND1^DIC(60,,,ORIGTEXT_",")
  1. W ?9,"F60IEN:",F60IEN,!
  1. ;
  1. S DATANAME=$$GET1^DIQ(60,+F60IEN,400,"I")
  1. W ?9,"DATANAME:",DATANAME,!
  1. ;
  1. S ANSDTT=$P($P(STR,"|",15),"^") ; Analysis Date/Time
  1. W ?9,"ANSDTT:",ANSDTT
  1. D:$L(ANSDTT) SHOWDATE^BLRRLMU2(ANSDTT)
  1. W !
  1. ;
  1. S STATUS=$P(STR,"|",12)
  1. W ?9,"STATUS:",STATUS,!
  1. ;
  1. Q
  1. ;
  1. DISPORC ; EP - Don't process anything in the PID Segment
  1. Q
  1. ;
  1. DISPSPM ; EP
  1. NEW CONDSPEC,SPMIEN
  1. ;
  1. S CONDSPEC=$P($P(STR,"|",25),"^") ; SPECIMEN CONDITION
  1. W ?9,"CONDSPEC:",CONDSPEC,!
  1. ;
  1. S REJREASN=$P($P(STR,"|",22),"^",2)
  1. W ?9,"REJREASN:",REJREASN,!
  1. Q
  1. ;
  1. DISPNTE ; EP - Don't process anything in the NTE Segment
  1. Q
  1. ;
  1. DISPTQ1 ; EP - Don't process anything in the TQ1 Segment
  1. Q
  1. ;
  1. SHOWSEG ; EP - Show segment and setup STR variable
  1. NEW STR
  1. ;
  1. W ?4,SEG,!,?9,"PIEN:",PIEN,?39,"SEGIEN:",SEGIEN,!
  1. S STR=$G(^LAHM(62.49,PIEN,150,SEGIEN,0))
  1. S DOTELL="DISP"_SEG
  1. D @DOTELL
  1. Q