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

BLRMIEHR.m

Go to the documentation of this file.
  1. BLRMIEHR ; IHS/MSC/MKK - IHS Lab Micro Report for EHR; 15-Apr-2014 11:42 ; MKK
  1. ;;5.2;IHS LABORATORY;**1033**;NOV 01, 1997
  1. ;
  1. EEP ; Ersatz EP
  1. D EEP^BLRGMENU
  1. Q
  1. ;
  1. PEP ; EP
  1. EP ; EP
  1. S LINES=0,QFLG="NO"
  1. D HEADER
  1. D GRAMSTAN(LRDFN,LRIDT)
  1. S ORGL=.9999999,ORGHEAD=0
  1. F S ORGL=$O(^LR(LRDFN,"MI",LRIDT,3,ORGL)) Q:ORGL<1!(QFLG="Q") D
  1. . D ORGLINE
  1. . D DRUGSORT
  1. . D ADDLINE($J("",GIOM))
  1. ;
  1. D ADDLINE($J("",GIOM))
  1. ; D FOOTER
  1. D PERLABLN ; PERforming LAB LiNe
  1. ;
  1. Q
  1. ;
  1. ORIGEP ; EP - Original EP code
  1. S LINES=0
  1. ;
  1. S LRIDT=LRSIDT,QFLG="NO"
  1. F S LRIDT=$O(^LR(LRDFN,"MI",LRIDT)) Q:LRIDT<1!($P(LRIDT,".")>LREIDT)!(QFLG="Q") D
  1. . D HEADER
  1. . D GRAMSTAN(LRDFN,LRIDT)
  1. . S ORGL=.9999999,ORGHEAD=0
  1. . F S ORGL=$O(^LR(LRDFN,"MI",LRIDT,3,ORGL)) Q:ORGL<1!(QFLG="Q") D
  1. .. D ORGLINE
  1. .. D DRUGSORT
  1. .. D ADDLINE($J("",GIOM))
  1. . D ADDLINE($J("",GIOM))
  1. . D FOOTER
  1. Q
  1. ;
  1. NEW RF,STR
  1. ;
  1. D BLNKLINE
  1. ;
  1. D ADDLINE($$CJ^XLFSTR("---- MICROBIOLOGY ----",GIOM))
  1. ;
  1. D DATAHEAD
  1. K STR S STR="Accession:"_LRAS,$E(STR,44)="Received:"_RECDDATE D ADDLINE(STR)
  1. K STR S STR="Collection Sample:"_CSNAME,$E(STR,44)="Collection Date:"_COLLDATE D ADDLINE(STR)
  1. D ADDLINE("Site/Specimen:"_SSNAME)
  1. D ADDLINE("Provider:"_PROVIDER)
  1. D:$L(COMMENT) ADDLINE("Comment on Specimen:"_$G(COMMENT))
  1. ;
  1. D BLNKLINE
  1. ;
  1. D BLNKLINE,BLNKLINE ; Two blank lines
  1. ;
  1. D ORDTESTS
  1. ;
  1. Q
  1. ;
  1. ADDLINE(STR) ; EP - Add a line
  1. S ^TMP("LRC",$J,GCNT,0)=STR,GCNT=GCNT+1
  1. Q
  1. ;
  1. BLNKLINE ; EP - "Blank" line
  1. D ADDLINE($J("",GIOM))
  1. Q
  1. ;
  1. DATAHEAD ; EP - Get Data for Header
  1. S STR=$G(^LR(LRDFN,"MI",LRIDT,0))
  1. S COLLDATE=$$FMTE^XLFDT($P(STR,"^"),"5MZ") ; Collection Date
  1. ;
  1. S RECDDATE=$$FMTE^XLFDT($P(STR,"^",10),"5MZ") ; Received Date
  1. ;
  1. S LRAS=$P(STR,"^",6) ; Accession
  1. ;
  1. S SSIEN=+$P(STR,"^",5)
  1. S SSNAME=$$GET1^DIQ(61,SSIEN,"NAME") ; Site/Specimen Name
  1. ;
  1. S PHYIEN=+$P(STR,"^",7)
  1. S PROVIDER=$$GET1^DIQ(200,PHYIEN,"NAME")
  1. ;
  1. S CSIEN=+$P(STR,"^",11)
  1. S CSNAME=$$GET1^DIQ(62,CSIEN,"NAME") ; Collection Sample
  1. ;
  1. S COMMENT=$G(^LR(LRDFN,"MI",LRIDT,99))
  1. ;
  1. Q
  1. ;
  1. D PERLABLN ; PERforming LAB LiNe
  1. ;
  1. D ADDLINE($TR($J("",GIOM)," ","="))
  1. Q
  1. ;
  1. PATDEMO ; EP - Get Patient Demographics
  1. S PATNAME=$$GET1^DIQ(2,DFN,"NAME")
  1. S PATDOB=$$GET1^DIQ(2,DFN,"DATE OF BIRTH","I")
  1. S:$L(PATDOB) PATDOB=$$FMTE^XLFDT(PATDOB,"5DZ")
  1. S DOD=+$$GET1^DIQ(2,DFN,"DATE OF DEATH","I")
  1. S:DOD PATDOD=$$FMTE^XLFDT(DOD,"5DZ")
  1. S HRCN=$$HRCN^BDGF2(DFN,DUZ(2))
  1. Q
  1. ;
  1. PERLABLN ; EP - PERforming LAB LiNe
  1. S RF=$$GETPLIEN()
  1. ;
  1. Q:$$INSTDATA(RF,.STR1,.STR2)="Q"
  1. ;
  1. D ADDLINE("Performing Laboratory:")
  1. D ADDLINE($$LJ^XLFSTR("["_RF_"]",7)_STR1)
  1. D:$L(STR2) ADDLINE($J("",7)_STR2)
  1. D CCLABLN
  1. ;
  1. Q
  1. ;
  1. CCLABLN ; EP - County & Country LAB LiNes
  1. NEW COUNTRY,COUNTY,IENS,CCLINE
  1. ;
  1. S (COUNTY,COUNTRY)=""
  1. ;
  1. S IENS=LRIDT_","_LRDFN
  1. S COUNTY=$$GET1^DIQ(63.05,IENS,9999996)
  1. S COUNTRY=$$GET1^DIQ(63.05,IENS,9999997)
  1. Q:$L(COUNTY)<1&($L(COUNTRY)<1)
  1. ;
  1. S CCLINE=$J("",7)
  1. S:$L(COUNTY) CCLINE=CCLINE_$$LJ^XLFSTR("County:"_COUNTY,15)
  1. S:$L(COUNTRY) CCLINE=CCLINE_"Country:"_COUNTRY
  1. D ADDLINE(CCLINE)
  1. Q
  1. ;
  1. GETPLIEN() ; GET Performing Lab IEN
  1. S RF=+$G(^LR(LRDFN,"MI",LRIDT,"RF")) ; Reference Lab Node
  1. Q:RF RF
  1. ;
  1. ; Try to get from Organism structure
  1. S RF=+$P($G(^LR(LRDFN,"MI",LRIDT,3,1,"IHSOBX")),U,6) ; Performing Lab
  1. Q:RF RF
  1. ;
  1. S RF=+$P($G(^LR(LRDFN,"MI",LRIDT,0)),U,14) ; Accessioning Lab
  1. Q:RF RF
  1. ;
  1. ; Try the Accession Division
  1. NEW LRAA,LRAD,LRAN,LRACC
  1. S LRACC=$P($G(^LR(LRDFN,"MI",LRIDT,0)),"^",6)
  1. I $$GETACCCP^BLRUTIL3(LRACC,.LRAA,.LRAD,.LRAN)<1 Q $G(DUZ(2))
  1. ;
  1. S RF=+$G(^LRO(68,LRAA,1,LRAD,1,LRAN,.4))
  1. Q RF
  1. ;
  1. ORDTESTS ; EP - Ordered Tests(s)
  1. NEW COMPDATE,F6OIEN,F60DESC,IENSTR,LRAA,LRAD,LRAN,LRAS,TESTS
  1. NEW ORG,ORGCOMM,ORGDESC,ORGQUANT,UID
  1. ;
  1. D ADDLINE($$CJ^XLFSTR("Tests(s) Ordered:",GIOM))
  1. ;
  1. S UID=+$G(^LR(LRDFN,"MI",LRIDT,"ORU"))
  1. I UID D
  1. . S X=$Q(^LRO(68,"C",UID,0)),LRAA=$QS(X,4),LRAD=$QS(X,5),LRAN=$QS(X,6)
  1. I UID<1 D
  1. . S LRAS=$P($G(^LR(LRDFN,"MI",LRIDT,0)),"^",6)
  1. . D GETACCCP^BLRUTIL3(LRAS,.LRAA,.LRAD,.LRAN)
  1. ;
  1. S IENSTR=LRAN_","_LRAD_","_LRAA_","
  1. S TESTS=.9999999,X=0
  1. F S TESTS=$O(^LRO(68,LRAA,1,LRAD,1,LRAN,4,TESTS)) Q:TESTS<1 D
  1. . K STR S STR=TABIT_$$GET1^DIQ(60,TESTS,"NAME")
  1. . S COMPDATE=$$GET1^DIQ(68.04,TESTS_","_IENSTR,"COMPLETE DATE","I")
  1. . S:$L(COMPDATE) $E(STR,44)="Completed: "_$TR($$FMTE^XLFDT(COMPDATE,"MZ"),"@"," ")
  1. . D ADDLINE(STR)
  1. ;
  1. D BLNKLINE
  1. S IENSTR=LRIDT_","_LRDFN
  1. S BACRPTDA=$$GET1^DIQ(63.05,IENSTR,"BACT RPT DATE APPROVED","I")
  1. S BCRPTSTS=$$GET1^DIQ(63.05,IENSTR,"BACT RPT STATUS")
  1. S BCRPTDUZ=$$GET1^DIQ(63.05,IENSTR,"BACT PERSON","I")
  1. ;
  1. K STR S STR="BACTERIOLOGY "_BCRPTSTS_" => "_$$FMTE^XLFDT(BACRPTDA,"5DZ")
  1. S $E(STR,60)="TECH CODE:"_BCRPTDUZ
  1. D ADDLINE(STR),BLNKLINE,BLNKLINE
  1. ;
  1. D EHRPLIM^BLRMIRP2
  1. ;
  1. D REMARKS
  1. ;
  1. F S TESTS=$O(^LR(LRDFN,"MI",LRIDT,26,TESTS)) Q:TESTS<1 D
  1. Q
  1. ;
  1. REMARKS ; EP - BACT RPT REMARKS
  1. Q:$O(^LR(LRDFN,"MI",LRIDT,4,0))<1
  1. ;
  1. NEW BACTREM
  1. D ADDLINE(TABIT_"Bacteriology Remark(s):")
  1. S BACTREM=0
  1. F S BACTREM=$O(^LR(LRDFN,"MI",LRIDT,4,BACTREM)) Q:BACTREM<1 D ADDLINE(TABIT2_$G(^(BACTREM,0)))
  1. Q
  1. ;
  1. IHSTESTS ; EP
  1. Q
  1. ;
  1. INSTDATA(INST,STR1,STR2) ; EP
  1. NEW ARRAY,ERRS
  1. ;
  1. ; Use MAILING Address
  1. D GETS^DIQ(4,INST,".01;4.01;4.02;4.03;4.04;4.05",,"ARRAY","ERRS")
  1. ;
  1. Q:$D(ERRS) "Q"
  1. ;
  1. S RFS=INST_$C(44)
  1. ;
  1. S NAME=$G(ARRAY(4,RFS,.01)) ; Name
  1. S ADDR1=$G(ARRAY(4,RFS,4.01)) ; Street Address 1
  1. S:$L($G(ARRAY(4,RFS,4.02))) ADDR2=$G(ARRAY(4,RFS,1.02)) ; Street Address 2
  1. S CITY=$G(ARRAY(4,RFS,4.03)) ; City
  1. S STATE=$G(ARRAY(4,RFS,4.04)) ; State
  1. S ZIP=$G(ARRAY(4,RFS,4.05)) ; Zip
  1. ;
  1. I $L(ADDR1)<1 D ; No Address. Have to try and see if default address entries exist
  1. . K ARRAY,ERRS
  1. . D GETS^DIQ(4,INST,".01;1.01;1.02;1.03;.02;1.04",,"ARRAY","ERRS")
  1. . S NAME=$G(ARRAY(4,RFS,.01)) ; Name
  1. . S ADDR1=$G(ARRAY(4,RFS,1.01)) ; Street Address 1
  1. . S:$L($G(ARRAY(4,RFS,1.02))) ADDR2=$G(ARRAY(4,RFS,1.02))_" " ; Street Address 2
  1. . S CITY=$G(ARRAY(4,RFS,1.03)) ; City
  1. . S STATE=$G(ARRAY(4,RFS,.02)) ; State
  1. . S ZIP=$G(ARRAY(4,RFS,1.04)) ; Zip
  1. ;
  1. Q:$D(ERRS) "Q"
  1. Q:$L(ADDR1)<1 "Q"
  1. ;
  1. S STR1=NAME_" "_ADDR1_" "_$S($L($G(ADDR2)):ADDR2_" ",1:"")_CITY_", "_STATE_" "_ZIP
  1. I $L(STR1)<(IOM-10) S STR2="" Q "OK"
  1. ;
  1. ; Need to have 2 line Footer
  1. K STR1,STR2
  1. S STR1=NAME_" "_ADDR1_" "_$S($L($G(ADDR2)):ADDR2,1:"")
  1. S STR2=CITY_", "_STATE_" "_ZIP
  1. ;
  1. Q "OK"
  1. ;
  1. IHSVARS(LRDFN,LRIDT,ORGANISM) ; EP
  1. S STR=$G(^LR(LRDFN,"MI",LRIDT,3,ORGANISM,"IHS"))
  1. S RELDATE=$P(STR,"^")
  1. S STATUS=$P(STR,"^",2)
  1. S FLAG=$P(STR,"^",3)
  1. S SUSC=$P(STR,"^",4)
  1. S UP=$P(STR,"^",5)
  1. S:+UP UNITS=$$GET1^DIQ(90475.3,UP,"DESCRIPTION")
  1. S INTP=$P(STR,"^",6)
  1. Q
  1. ;
  1. GRAMSTAN(LRDFN,LRIDT) ; EP - GRAM STAIN Data
  1. NEW GRAMCNT,GRAMSTR
  1. ;
  1. Q:$D(^LR(LRDFN,"MI",LRIDT,2))<1
  1. ;
  1. S (D2,GRAMCNT)=0
  1. F S D2=$O(^LR(LRDFN,"MI",LRIDT,2,D2)) Q:D2<1 D
  1. . S GRAMSTR=$G(^LR(LRDFN,"MI",LRIDT,2,D2,0))
  1. . Q:$TR(GRAMSTR," ")="" ; Skip blank line
  1. . Q:GRAMSTR["***GRAM STAIN"
  1. . Q:GRAMSTR="GRAM STAIN"
  1. . Q:$TR(GRAMSTR," ")="GS"
  1. . ;
  1. . S GRAMCNT=GRAMCNT+1
  1. . D:GRAMCNT=1 ADDLINE("GRAM STAIN:")
  1. . D ADDLINE($J("",5)_GRAMSTR)
  1. ;
  1. D ADDLINE($J("",GIOM))
  1. Q
  1. ;
  1. ORGLINE ; EP - ORGANISM Line
  1. NEW ABNFLAG,HL7FLAG,IENSTR,OBSDATE,ORGCOMM,ORGIEN,ORGDESC,ORGQUANT,ORGSNOMD
  1. ;
  1. S HL7FLAG=0
  1. S STR=$G(^LR(LRDFN,"MI",LRIDT,3,ORGL,"IHSOBX"))
  1. S:$L(STR) HL7FLAG=1
  1. S SNOMED=$P(STR,"^")
  1. S (ABNFLAG,FLAG)=$P(STR,"^",3)
  1. S OBSDATE=$P(STR,"^",5)
  1. ;
  1. I $L(OBSDATE)<1 D
  1. . S OBSDATE=$P($G(^LR(LRDFN,"MI",LRIDT,ORGL,1)),"^")
  1. . S:$L(OBSDATE)<1 OBSDATE=$P($G(^LR(LRDFN,"MI",LRIDT,0)),"^",3) S:$L(OBSDATE)<1 OBSDATE=$P($G(^(0)),"^",10)
  1. ;
  1. I ORGHEAD<1 D
  1. . D ADDLINE("CULTURE RESULTS:")
  1. . S ORGHEAD=1+$G(ORGHEAD)
  1. ;
  1. S IENSTR=ORGL_","_LRIDT_","_LRDFN_","
  1. S ORGDESC=$$GET1^DIQ(63.3,IENSTR,"ORGANISM")
  1. S ORGQUANT=$$GET1^DIQ(63.3,IENSTR,"QUANTITY")
  1. ;
  1. I HL7FLAG D
  1. . K STR S $E(STR,5)="Description",$E(STR,40)="Quantity",$E(STR,59)="FLG",$E(STR,64)="Observation Date"
  1. . D ADDLINE(STR)
  1. . K STR S STR=ORGL_".",$E(STR,5)=ORGDESC,$E(STR,40)=ORGQUANT,$E(STR,60)=ABNFLAG,$E(STR,64)=$$FMTE^XLFDT(OBSDATE,"5MZ")
  1. . D ADDLINE(STR)
  1. ;
  1. I 'HL7FLAG D
  1. . K STR S $E(STR,5)="Description",$E(STR,40)="Quantity",$E(STR,64)="Observation Date"
  1. . D ADDLINE(STR)
  1. . K STR S STR=ORGL_".",$E(STR,5)=ORGDESC,$E(STR,40)=ORGQUANT,$E(STR,64)=$$FMTE^XLFDT(OBSDATE,"5MZ")
  1. . D ADDLINE(STR)
  1. ;
  1. S ORGCOMM=0
  1. F S ORGCOMM=$O(^LR(LRDFN,"MI",LRIDT,3,ORGL,1,ORGCOMM)) Q:ORGCOMM<1 D
  1. . K STR S $E(STR,10)=$G(^LR(LRDFN,"MI",LRIDT,3,ORGL,1,ORGCOMM,0))
  1. . D ADDLINE(STR)
  1. ;
  1. Q
  1. ;
  1. DRUGSORT ; Put drugs into Print Order
  1. S DRUGNODE=2
  1. F S DRUGNODE=$O(^LR(LRDFN,"MI",LRIDT,3,ORGL,DRUGNODE)) Q:DRUGNODE<1 D
  1. . S DRUGIEN=$O(^LAB(62.06,"AD",DRUGNODE,0))
  1. . S DRUGNAME=$$GET1^DIQ(62.06,DRUGIEN,"NAME")
  1. . S DRUGDISP=$$GET1^DIQ(62.06,DRUGIEN,"DISPLAY COMMENT")
  1. . S PRNTORDR=+$$GET1^DIQ(62.06,DRUGIEN,"PRINT ORDER")
  1. . S DRUGSORT(PRNTORDR,DRUGNODE)=DRUGIEN_"^"_DRUGNAME_"^"_DRUGDISP
  1. ;
  1. S PRNTORDR="",DRUGHEAD=0
  1. F S PRNTORDR=$O(DRUGSORT(PRNTORDR)) Q:PRNTORDR<1 D
  1. . S DRUGNODE=""
  1. . F S DRUGNODE=$O(DRUGSORT(PRNTORDR,DRUGNODE)) Q:DRUGNODE<1 D
  1. .. S STR=$G(DRUGSORT(PRNTORDR,DRUGNODE))
  1. .. S DRUGIEN=$P(STR,"^"),DRUGNAME=$P(STR,"^",2),DRUGDISP=$P(STR,"^",3)
  1. .. D DRUGAMTS
  1. Q
  1. ;
  1. DRUGAMTS ; EP - Drug values
  1. I $D(^LR(LRDFN,"MI",LRIDT,3,ORGL,"ISO")) D HL7DRUGS Q
  1. ;
  1. D INHOUSE
  1. Q
  1. ;
  1. INHOUSE ; EP - Drug values from RPMS entry
  1. S STR=$G(^LR(LRDFN,"MI",LRIDT,3,ORGL,DRUGNODE))
  1. S SUSC=$P(STR,"^")
  1. S INTP=$P(STR,"^",2)
  1. S ALTI=$P(STR,"^",3)
  1. Q:$L(SUSC)<1&($L(INTP)<1)&($L(ALTI)<1)
  1. ;
  1. ; Only display drugs that have valid interpretation for the result (the "AI" X-ref)
  1. S (BADSUSC,BADINTP)=1
  1. S:$L(INTP) BADINTP=$D(^LAB(62.06,"AI",DRUGNODE,INTP))
  1. S:$L(SUSC) BADSUSC=$D(^LAB(62.06,"AI",DRUGNODE,SUSC))
  1. Q:BADINTP<1&(BADSUSC<1)
  1. ;
  1. D:+$G(DRUGHEAD)<1 DRUGHEAD
  1. ;
  1. S RPTSTS=$P($G(^LR(LRDFN,"MI",LRIDT,1)),"^",2)
  1. ;
  1. S STR=$G(^LR(LRDFN,"MI",LRIDT,ORGL,1))
  1. S OBSDATE=$P(STR,"^")
  1. S:$L(OBSDATE)<1 OBSDATE=$P($G(^LR(LRDFN,"MI",LRIDT,0)),"^",3) S:$L(OBSDATE)<1 OBSDATE=$P($G(^(0)),"^",10)
  1. ;
  1. S LRAS=$P($G(^LR(LRDFN,"MI",LRIDT,0)),"^",6)
  1. S RF=$$GETPLIEN()
  1. S:$L(RF) LRPLS(RF)=""
  1. ;
  1. S:$L(OBSDATE) OBSDATE=$$FMTE^XLFDT(OBSDATE,"5MZ")
  1. S (FLAG,RESULT,UNITS)=""
  1. ;
  1. ; Special "trick". See file 62.06 & RESULT entry
  1. S RESULT=SUSC
  1. I $L($P(SUSC," ",2)) D
  1. . S RESULT=$P(SUSC," ")
  1. . S UNITS=$P(SUSC," ",2)
  1. . S SUSC=""
  1. ;
  1. K STR S STR=$E(DRUGNAME,1,25),$E(STR,28)=RESULT,$E(STR,34)=UNITS,$E(STR,41)=INTP
  1. S $E(STR,47)=ALTI,$E(STR,54)=OBSDATE
  1. S:$L(RF) $E(STR,75)="["_RF_"]"
  1. D ADDLINE(STR)
  1. I $L(DRUGDISP) K STR S $E(STR,15)=DRUGDISP D ADDLINE(STR)
  1. Q
  1. ;
  1. DRUGHEAD ; EP - In-House Drug "Heading"
  1. D BLNKLINE
  1. K STR S $E(STR,47)="ALT" D ADDLINE(STR)
  1. K STR S STR="ANTIBIOTIC",$E(STR,28)="SUSC",$E(STR,34)="UNITS",$E(STR,41)="INTP"
  1. S $E(STR,47)="INTP",$E(STR,54)="OBSERVATION DATE",$E(STR,76)="SITE"
  1. D ADDLINE(STR)
  1. S DRUGHEAD=1+$G(DRUGHEAD)
  1. Q
  1. ;
  1. HL7DRUGS ; EP - Drug values from INCOMING HL7 messages
  1. S STR=$G(^LR(LRDFN,"MI",LRIDT,3,ORGL,DRUGNODE))
  1. S SUSC=$P(STR,"^")
  1. S INTP=$P(STR,"^",2)
  1. ;
  1. ; Only display drugs that have valid interpretation for the result (the "AI" X-ref)
  1. ; Q:INTP&($D(^LAB(62.06,"AI",DRUGNODE,INTP))<1)
  1. ; Q:SUSC&($D(^LAB(62.06,"AI",DRUGNODE,SUSC))<1)
  1. ;
  1. D:+$G(DRUGHEAD)<1 HL7DHEAD
  1. ;
  1. S ISO=.9999999,FOUNDIT=0
  1. F S ISO=$O(^LR(LRDFN,"MI",LRIDT,3,ORGL,"ISO",ISO)) Q:ISO<1!(FOUNDIT) D
  1. . S:$G(^LR(LRDFN,"MI",LRIDT,3,ORGL,"ISO",ISO))[DRUGNODE FOUNDIT=ISO
  1. ;
  1. I FOUNDIT<1 D BLNKLINE Q
  1. ;
  1. S STR=$G(^LR(LRDFN,"MI",LRIDT,3,ORGL,"ISO","IHSOBX",FOUNDIT))
  1. S RESULT=$P(STR,"^"),UNITS=$P($P(STR,"^",2),"~"),FLAG=$P(STR,"^",3)
  1. S RPTSTS=$P(STR,"^",4),OBSDATE=$P(STR,"^",5),RF=$P(STR,"^",6)
  1. S:$L(RF) LRPLS(RF)=""
  1. S:$L(OBSDATE) OBSDATE=$$FMTE^XLFDT(OBSDATE,"5MZ")
  1. ;
  1. Q:SUSC="R"&(INTP="R")
  1. ;
  1. K STR S STR=$E(DRUGNAME,1,25),$E(STR,28)=RESULT,$E(STR,34)=UNITS,$E(STR,41)=FLAG
  1. S $E(STR,44)=SUSC,$E(STR,49)=INTP,$E(STR,55)=RPTSTS,$E(STR,58)=OBSDATE
  1. S:$L(RF) $E(STR,75)="["_RF_"]"
  1. D ADDLINE(STR)
  1. I $L(DRUGDISP) K STR S $E(STR,15)=DRUGDISP D ADDLINE(STR)
  1. ;
  1. Q
  1. ;
  1. HL7DHEAD ; EP - HL7 Incoming Drug "Heading"
  1. D BLNKLINE
  1. K STR S $E(STR,28)="CONC" D ADDLINE(STR)
  1. K STR S STR="ANTIBIOTIC",$E(STR,28)="RANGE",$E(STR,34)="UNITS",$E(STR,40)="FLG"
  1. S $E(STR,44)="SUSC",$E(STR,49)="INTP",$E(STR,54)="STS",$E(STR,58)="OBSERVATION DATE",$E(STR,76)="SITE"
  1. D ADDLINE(STR)
  1. S DRUGHEAD=1+$G(DRUGHEAD)
  1. Q
  1. ;
  1. GETLRDFN() ; EP - Always get LRDFN
  1. D ^LRPARAM
  1. ;
  1. D ^XBFMK
  1. S DIR(0)="PO^2:E"
  1. S DIR("A")="PATIENT"
  1. D ^DIR
  1. I +$G(Y)<1!(+$G(DIRUT)) D Q "Q"
  1. . W !,?4,"No/Invalid/Quit Entry. Routine Ends."
  1. . D PRESSKEY^BLRGMENU(9)
  1. ;
  1. S DFN=+$G(Y)
  1. S PNM=$P(Y,"^",2)
  1. ;
  1. S DOD=+$$GET1^DIQ(2,DFN,.351,"I")
  1. I DOD D WARN^LRDPA Q:DFN<1 "Q"
  1. ;
  1. S LRDFN=+$G(^DPT(DFN,"LR"))
  1. Q:LRDFN "OK"
  1. ;
  1. W !!,?4,"Patient ",$$GET1^DIQ(2,+Y,"NAME")," [",+Y,"] has NO Lab Data. Routine Ends."
  1. D PRESSKEY^BLRGMENU(9)
  1. Q "Q"
  1. ;
  1. ;
  1. TESTIT ; EP - Test Code
  1. NEW (DILOCKTM,DISYS,DT,DTIME,DUZ,IO,IOBS,IOF,IOM,ION,IOS,IOSL,IOST,IOT,IOXY,U,XPARSYS,XQXFLG)
  1. ;
  1. Q
  1. ;
  1. ; Following code cloned from LR7OSMZ0
  1. ;
  1. EN(DFN) ; EP - Process Microbiology entries listed in ^TMP("LRRR",$J,DFN,"MI",LRIDT,1)
  1. ;Return formated report in ^TMP("LRC",$J)
  1. Q:'$D(^TMP("LRRR",$J,+$G(DFN),"MI"))
  1. ;
  1. N LBL,LCNT,LRAA,LRACC,LRAD,LRAN,LRCMNT,LRDFN,LRDPF,LRIDT,LRJ02,LRLLT,LRPG,LRSB
  1. N LRONESPC,LREND,LRONETST,GCNT,GIOM,LREND,CCNT,CT1,COUNT,LRIN,SEX,TABIT
  1. ;
  1. K ^TMP("LRC",$J)
  1. S (LRONETST,LRONESPC)="",CCNT=1,(LREND,GCNT)=0,GIOSL=999999,GIOM=80
  1. Q:'$G(DFN)
  1. S LRDFN=$$LRDFN^LR7OR1(DFN)
  1. Q:'LRDFN
  1. S LRDPF="2^DPT(",SEX=$P($G(@("^"_$P(LRDPF,"^",2)_+LRDFN_",0)")),"^",2),LRIDT=0
  1. F S LRIDT=$O(^TMP("LRRR",$J,DFN,"MI",LRIDT)) Q:LRIDT<1 D
  1. . N DFN
  1. . D EN1
  1. Q
  1. ;
  1. EN1 ; EP
  1. S LRLLT=$G(^LR(LRDFN,"MI",LRIDT,0))
  1. S LRACC=$P(LRLLT,U,6)
  1. ;
  1. Q:$$GETACCCP^BLRUTIL3(LRACC,.LRAA,.LRAD,.LRAN)<1
  1. ;
  1. S LRCMNT=$S($D(^LR(LRDFN,"MI",LRIDT,99)):^(99),1:"")
  1. S LRPG=0
  1. S TABIT=$J("",5)
  1. S TABIT2=$J("",10)
  1. ; D EN^LR7OSMZ1
  1. D EP^BLRMIEHR
  1. Q
  1. ;