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

BQIVFTRL.m

Go to the documentation of this file.
  1. BQIVFTRL ;PRXM/HC/ALA-V File Trigger RPC for Lab fields ; 24 May 2007 4:53 PM
  1. ;;2.1;ICARE MANAGEMENT SYSTEM;;Feb 07, 2011
  1. Q
  1. ;
  1. EN(DATA,LAB,SITE,RSLT,BQDFN) ;EP - BQI VFILE TRIGGER LAB
  1. ;
  1. ; Input
  1. ; SITE - The site specimen IEN
  1. ; LAB - Lab test IEN
  1. ; RSLT - Lab test result
  1. ; BQDFN - Patient internal entry number
  1. ;
  1. NEW UID,II,PARMS,DA,IENS,NM,VALUE
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BQIVFTRL",UID))
  1. K @DATA
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQIVFTRL D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. S SITE=$G(SITE,""),RSLT=$G(RSLT,""),BQDFN=$G(BQDFN,"")
  1. I SITE="",RSLT="" D TBL G DONE
  1. I SITE'="",RSLT="" D SITE G DONE
  1. I RSLT'="" D RES G DONE
  1. Q
  1. ;
  1. SITE ; Get site specific defaults
  1. NEW LOINC,LOW,HIGH,SEX,AGE
  1. S @DATA@(II)="T00008SOURCE^T00001CODE_TYPE^T01024PARMS^T00200HELP_TEXT"_$C(30)
  1. S DA(1)=LAB,DA=SITE,IENS=$$IENS^DILF(.DA)
  1. S LOW=$$GET1^DIQ(60.01,IENS,1,"E")
  1. I LOW["$S(" D
  1. . I $G(BQDFN)="" S LOW="" Q
  1. . S AGE=$$AGE^BQIAGE(BQDFN)
  1. . S SEX=$$GET1^DIQ(2,BQDFN_",",.02,"I")
  1. . S LOW="S LOW="_LOW
  1. . X LOW
  1. S HIGH=$$GET1^DIQ(60.01,IENS,2,"E")
  1. I HIGH["$S" D
  1. . I $G(BQDFN)="" S HIGH="" Q
  1. . S AGE=$$AGE^BQIAGE(BQDFN)
  1. . S SEX=$$GET1^DIQ(2,BQDFN_",",.02,"I")
  1. . S HIGH="S HIGH="_HIGH
  1. . X HIGH
  1. S PARMS("APCDTRFL")=LOW
  1. S PARMS("APCDTRFH")=HIGH
  1. S PARMS("APCDTUNI")=$$GET1^DIQ(60.01,IENS,6,"E")
  1. ;S PARMS("APCDTCPT")=$$GET1^DIQ(60.01,IENS,15,"E")
  1. S LOINC=$$GET1^DIQ(60.01,IENS,95.3,"E")
  1. I LOINC'="" S PARMS("APCDTLNC")=$$GET1^DIQ(60.01,IENS,95.3,"I")_$C(29)_$$GET1^DIQ(60.01,IENS,95.3,"E")
  1. S NM="",VALUE=""
  1. F S NM=$O(PARMS(NM)) Q:NM="" D
  1. . S II=II+1,@DATA@(II)=NM_U_U_PARMS(NM)_U_$C(30)
  1. Q
  1. ;
  1. DONE ;
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. ERR ;
  1. D ^%ZTER
  1. NEW Y,ERRDTM
  1. S Y=$$NOW^XLFDT() X ^DD("DD") S ERRDTM=Y
  1. S BMXSEC="Recording that an error occurred at "_ERRDTM
  1. I $D(II),$D(DATA) S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. TBL ; Get all possible lab results values
  1. ;
  1. NEW LIST,HELP,LDATA,LTYPE,WHERE,BII,IEN,VALUE,PARMS
  1. S @DATA@(II)="T00008SOURCE^T00001CODE_TYPE^T01024PARMS^T00200HELP_TEXT"_$C(30)
  1. S IEN=0,VALUE="",PARMS="",LTYPE=""
  1. ;
  1. S WHERE=$P(^LAB(60,LAB,0),U,12)
  1. I WHERE'="" D
  1. . S LDATA=U_WHERE_"0)"
  1. . S LTYPE=$P(@LDATA,U,2)
  1. . S LTYPE=$S(LTYPE["N":"N",LTYPE["S":"S",1:"F")
  1. . ;I LTYPE="S" S LIST=$P(@LDATA,U,3)
  1. . S LIST=$P(@LDATA,U,3)
  1. . S LDATA=U_WHERE_"3)",HELP=$G(@LDATA)
  1. . I HELP="",LTYPE["S" D
  1. .. S HELP="Select one of the following:"_$C(10)
  1. .. F BII=1:1:$L(LIST,";") S HELP=HELP_$P($P(LIST,";",BII),":",2)_$C(10)
  1. . I LTYPE="S" S LTYPE="C"
  1. . S LIST=$TR(LIST,":",$C(29)),LIST=$TR(LIST,";",$C(28))
  1. ;
  1. S II=II+1,@DATA@(II)="APCDTRES"_U_LTYPE_U_$G(LIST)_U_$G(HELP)_$C(30)
  1. ;
  1. F S IEN=$O(^LAB(60,LAB,1,IEN)) Q:'IEN D
  1. . S VALUE=VALUE_IEN_$C(29)_$$GET1^DIQ(61,IEN,.01,"E")_$C(28)
  1. S VALUE=$$TKO^BQIUL1(VALUE,$C(28))
  1. S II=II+1,@DATA@(II)="APCDTSTE"_U_"C"_U_VALUE_U_$C(30)
  1. Q
  1. ;
  1. RES ; Get trigger abnormal value from result
  1. NEW LRTS,LRQ,LRSPEC,LRSB,HELP,NM,VALUE,LRFLG
  1. S X=RSLT,LRTS=LAB,LRQ=1,LRSPEC=SITE,LRSB=LAB
  1. I BQDFN'="" S AGE=$$AGE^BQIAGE(BQDFN),SEX=$P(^DPT(BQDFN,0),U,2)
  1. D V25^LRVER5
  1. D RANGE^LRVER5
  1. S @DATA@(II)="T00008SOURCE^T00001CODE_TYPE^T01024PARMS^T00200HELP_TEXT"_$C(30)
  1. S PARMS("APCDTABN")=$G(LRFLG)
  1. S HELP="L*=Critical Low, L=Low, H=High, H*=Critical High, Blank for normal"
  1. S NM="",VALUE=""
  1. F S NM=$O(PARMS(NM)) Q:NM="" D
  1. . S II=II+1,@DATA@(II)=NM_U_U_PARMS(NM)_U_HELP_$C(30)
  1. Q