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

BQIRGPT.m

Go to the documentation of this file.
  1. BQIRGPT ;PRXM/HC/ALA-Get register data by patient ; 05 Nov 2007 12:19 PM
  1. ;;2.3;ICARE MANAGEMENT SYSTEM;;Apr 18, 2012;Build 59
  1. ;
  1. Q
  1. ;
  1. EN(DATA,DFN,REG) ;EP -- BQI GET REG DATA BY PATIENT
  1. ;Input parameter
  1. ; DFN - Patient internal entry number
  1. ; REG - Register name
  1. ;
  1. NEW UID,II
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BQIRGPT",UID))
  1. K @DATA
  1. ;
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQIRGPT D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;Build record by patient
  1. NEW IEN,HDR,VALUE,HEADR,SENS,HDOB,Y,STVW,TEXT,ORD,HDIEN,SUB,SREG,RIENS,RGIEN
  1. NEW CODE,TYPE,BI,IENS,RIEN,SEXEC,SFIL,SFLD,VAL
  1. ;
  1. S RGIEN=$O(^BQI(90506.3,"B",REG,""))
  1. I RGIEN="" S @DATA@(II)="T00030IEN"_$C(30) G DONE
  1. ;
  1. ; Check if this is a sub-definition
  1. ;
  1. S SUB=+$P(^BQI(90506.3,RGIEN,0),U,7)
  1. ;
  1. S SREG=$O(^BQI(90507,"B",REG,""))
  1. NEW PTEXEC
  1. S PTEXEC=$$GET1^DIQ(90507,SREG_",",3,"E")
  1. I PTEXEC'="" X PTEXEC S RIENS=IENS
  1. ;
  1. ; if not a subdefinition, define the record internal entry number
  1. S HDIEN=$O(^BQI(90506.3,RGIEN,10,"AE","Y",""))
  1. S HEADR=$S(HDIEN'="":$P(^BQI(90506.3,RGIEN,10,HDIEN,0),U,2),1:"T00030IEN")_"^"
  1. S VALUE=$G(RIENS)_U
  1. ;
  1. S ORD="" K DISPLAY
  1. F S ORD=$O(^BQI(90506.3,RGIEN,10,"C",ORD)) Q:ORD="" D
  1. . S RIEN=""
  1. . F S RIEN=$O(^BQI(90506.3,RGIEN,10,"C",ORD,RIEN)) Q:RIEN="" D
  1. .. ;I $P(^BQI(90506.3,RGIEN,10,RIEN,0),U,4)'="S" Q
  1. .. S CODE=$P(^BQI(90506.3,RGIEN,10,RIEN,0),U,7) I CODE="" Q
  1. .. S TYPE=$P($G(^BQI(90506.3,RGIEN,10,RIEN,1)),U,1)
  1. .. S IEN=$O(^BQI(90506.1,"B",CODE,"")) I IEN="" Q
  1. .. I $$GET1^DIQ(90506.1,IEN_",",.1,"I")=1 Q
  1. .. I $$GET1^DIQ(90506.1,IEN_",",3.07,"I")=1 Q
  1. .. S KEY=$$GET1^DIQ(90506.1,IEN_",",3.1,"E")
  1. .. I KEY'="",'$$KEYCHK^BQIULSC(KEY,DUZ) Q
  1. .. S STVW=$P(^BQI(90506.1,IEN,0),U,1)
  1. .. S HDR=$$GET1^DIQ(90506.1,IEN_",",.08,"E")
  1. .. I SUB S DISPLAY(ORD)=HDR_"^"_$$GET1^DIQ(90506.1,IEN_",",.06,"E")_"^"_TYPE Q
  1. .. S STVW=IEN D CVAL
  1. .. S VALUE=VALUE_VAL_"^"
  1. .. S HEADR=HEADR_HDR_"^"
  1. ;
  1. I SUB D
  1. . S SREG=$P(^BQI(90506.3,RGIEN,0),U,8)
  1. . S SFIL=$P(^BQI(90506.3,RGIEN,0),U,10)
  1. . S SFLD=$P(^BQI(90506.3,RGIEN,0),U,11)
  1. . S SEXEC=$G(^BQI(90506.3,RGIEN,1))
  1. . I SEXEC'="" X SEXEC
  1. . ;D EN^BQIRGHML(.HEADR,.VALUE,DFN,SFIL,SFLD,.DISPLAY)
  1. ;
  1. S HEADR=$$TKO^BQIUL1(HEADR,"^")
  1. ;
  1. S @DATA@(II)=HEADR_$C(30)
  1. I $D(VALUE)=1,$G(VALUE)="" G DONE
  1. I $D(VALUE)<11 D
  1. . S VALUE=$$TKO^BQIUL1(VALUE,"^")
  1. . S II=II+1,@DATA@(II)=VALUE_$C(30)
  1. I $D(VALUE)>1 D
  1. . S BI=""
  1. . F S BI=$O(VALUE(BI)) Q:BI="" D
  1. .. S VALUE=VALUE(BI)
  1. .. S VALUE=$$TKO^BQIUL1(VALUE,"^")
  1. .. S II=II+1,@DATA@(II)=VALUE_$C(30)
  1. ;
  1. K VALUE
  1. ;
  1. DONE S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. CVAL ; Get demographic values
  1. ;Parameters
  1. ; FIL = FileMan file number
  1. ; FLD = FileMan field number
  1. ; EXEC = If an executable is needed to determine value
  1. ; HDR = Header value
  1. ;the executable expects the value to be returned in variable VAL
  1. NEW FIL,FLD,EXEC
  1. S FIL=$$GET1^DIQ(90506.1,STVW_",",.05,"E")
  1. S FLD=$$GET1^DIQ(90506.1,STVW_",",.06,"E")
  1. S EXEC=$$GET1^DIQ(90506.1,STVW_",",1,"E")
  1. S HDR=$$GET1^DIQ(90506.1,STVW_",",.08,"E")
  1. I $G(DFN)="" S VAL="" Q
  1. ;
  1. I $G(EXEC)'="" X EXEC Q
  1. ;
  1. I FIL'="",FLD'="" S VAL=$$GET1^DIQ(FIL,DFN_",",FLD,"E")
  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. FND(SBFIL,SBFLD) ;
  1. NEW PTEXEC
  1. S PTEXEC=$$GET1^DIQ(90507,SREG_",",3,"E") I PTEXEC="" Q
  1. X PTEXEC
  1. ;
  1. Q