BQIRPASM ;VNGT/HS/ALA-Asthma Patient Care Summary ; 23 Jun 2009 1:43 PM
;;2.1;ICARE MANAGEMENT SYSTEM;;Feb 07, 2011
;
EN(DATA,DFN) ; EP -- BQI PATIENT ASTHMA SUMMARY
;Description
; Generates a Patient Supplement for a given DFN and Supplement
;
;Input
; DFN - Patient Internal ID
;
;Output
; DATA - Name of global in which data is stored(^TMP("BQIRPASM"))
;
NEW UID,BQII,EXEC,PRGM,%,SUPL
NEW HSTEXT,HSPATH,HSFN,Y,IOSL,IOST,IOM,I,N
NEW APCHSPAT,APCHSHDR,APCHSTIM
S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
S DATA=$NA(^TMP("BQIRPASM",UID))
K @DATA
;
S BQII=0
;
NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQIRPASM D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
;
D HDR
;
I $$TMPFL^BQIUL1("W",UID,DFN) G DONE
;
S IOSL=999,IOM=80,IOST="P-OTHER80"
; APCHSPAT variable is required by APCH routines
S APCHSPAT=DFN
;
; Sometimes the header needs to be defined
S Y=DT X ^DD("DD") S APCHSDAT=Y D NOW^%DTC S X=% X ^DD("FUNC",2,1) S APCHSTIM=X
S APCHSHDR="CONFIDENTIAL PATIENT INFORMATION -- "_$$FMTE^XLFDT(DT,5)_$J(APCHSTIM,9)_" ["_$P(^VA(200,DUZ,0),U,2)_"]"
S X="",$P(X,"*",((IOM-6-$L(APCHSHDR))\2)+1)="*"
S APCHSHDR=X_" "_APCHSHDR_" "_X
;
S SUPL=$$FIND1^DIC(9001022,"","B","ASTHMA PATIENT CARE SUMMARY","","","ERROR") I 'SUPL G DONE
S EXEC=$G(^APCHSUP(SUPL,11)) I EXEC="" G DONE
S PRGM=$P(EXEC,"^",2)
I PRGM["(" S PRGM=$P(PRGM,"(",1)
I $T(@("^"_PRGM))="" G DONE
;
U IO X EXEC
U IO W $C(9)
;
I $$TMPFL^BQIUL1("C") G DONE
;
I $$TMPFL^BQIUL1("R",UID,DFN) G DONE
;
F U IO R HSTEXT:.1 Q:HSTEXT[$C(9) D
. S HSTEXT=$$STRIP^XLFSTR(HSTEXT,"^")
. I HSTEXT="" S HSTEXT=" "
. S BQII=BQII+1,@DATA@(BQII)=HSTEXT_$C(13)_$C(10)
S BQII=BQII+1,@DATA@(BQII)=$C(30)
;
I $$TMPFL^BQIUL1("C") G DONE
;
I $$TMPFL^BQIUL1("D",UID,DFN) G DONE
;
DONE ;
;
S BQII=BQII+1,@DATA@(BQII)=$C(31)
Q
;
HDR ;
S @DATA@(BQII)="T00120REPORT_TEXT"_$C(30)
Q
;
ERR ;
D ^%ZTER
NEW Y,ERRDTM
S Y=$$NOW^XLFDT() X ^DD("DD") S ERRDTM=Y
S BMXSEC="Recording that an error occurred at "_ERRDTM
I $D(BQII),$D(DATA) S BQII=BQII+1,@DATA@(BQII)=$C(31)
I $$TMPFL^BQIUL1("C")
Q
BQIRPASM ;VNGT/HS/ALA-Asthma Patient Care Summary ; 23 Jun 2009 1:43 PM
+1 ;;2.1;ICARE MANAGEMENT SYSTEM;;Feb 07, 2011
+2 ;
EN(DATA,DFN) ; EP -- BQI PATIENT ASTHMA SUMMARY
+1 ;Description
+2 ; Generates a Patient Supplement for a given DFN and Supplement
+3 ;
+4 ;Input
+5 ; DFN - Patient Internal ID
+6 ;
+7 ;Output
+8 ; DATA - Name of global in which data is stored(^TMP("BQIRPASM"))
+9 ;
+10 NEW UID,BQII,EXEC,PRGM,%,SUPL
+11 NEW HSTEXT,HSPATH,HSFN,Y,IOSL,IOST,IOM,I,N
+12 NEW APCHSPAT,APCHSHDR,APCHSTIM
+13 SET UID=$SELECT($GET(ZTSK):"Z"_ZTSK,1:$JOB)
+14 SET DATA=$NAME(^TMP("BQIRPASM",UID))
+15 KILL @DATA
+16 ;
+17 SET BQII=0
+18 ;
+19 ; SAC 2006 2.2.3.3.2
NEW $ESTACK,$ETRAP
SET $ETRAP="D ERR^BQIRPASM D UNWIND^%ZTER"
+20 ;
+21 DO HDR
+22 ;
+23 IF $$TMPFL^BQIUL1("W",UID,DFN)
GOTO DONE
+24 ;
+25 SET IOSL=999
SET IOM=80
SET IOST="P-OTHER80"
+26 ; APCHSPAT variable is required by APCH routines
+27 SET APCHSPAT=DFN
+28 ;
+29 ; Sometimes the header needs to be defined
+30 SET Y=DT
XECUTE ^DD("DD")
SET APCHSDAT=Y
DO NOW^%DTC
SET X=%
XECUTE ^DD("FUNC",2,1)
SET APCHSTIM=X
+31 SET APCHSHDR="CONFIDENTIAL PATIENT INFORMATION -- "_$$FMTE^XLFDT(DT,5)_$JUSTIFY(APCHSTIM,9)_" ["_$PIECE(^VA(200,DUZ,0),U,2)_"]"
+32 SET X=""
SET $PIECE(X,"*",((IOM-6-$LENGTH(APCHSHDR))\2)+1)="*"
+33 SET APCHSHDR=X_" "_APCHSHDR_" "_X
+34 ;
+35 SET SUPL=$$FIND1^DIC(9001022,"","B","ASTHMA PATIENT CARE SUMMARY","","","ERROR")
IF 'SUPL
GOTO DONE
+36 SET EXEC=$GET(^APCHSUP(SUPL,11))
IF EXEC=""
GOTO DONE
+37 SET PRGM=$PIECE(EXEC,"^",2)
+38 IF PRGM["("
SET PRGM=$PIECE(PRGM,"(",1)
+39 IF $TEXT(@("^"_PRGM))=""
GOTO DONE
+40 ;
+41 USE IO
XECUTE EXEC
+42 USE IO
WRITE $CHAR(9)
+43 ;
+44 IF $$TMPFL^BQIUL1("C")
GOTO DONE
+45 ;
+46 IF $$TMPFL^BQIUL1("R",UID,DFN)
GOTO DONE
+47 ;
+48 FOR
USE IO
READ HSTEXT:.1
IF HSTEXT[$CHAR(9)
QUIT
Begin DoDot:1
+49 SET HSTEXT=$$STRIP^XLFSTR(HSTEXT,"^")
+50 IF HSTEXT=""
SET HSTEXT=" "
+51 SET BQII=BQII+1
SET @DATA@(BQII)=HSTEXT_$CHAR(13)_$CHAR(10)
End DoDot:1
+52 SET BQII=BQII+1
SET @DATA@(BQII)=$CHAR(30)
+53 ;
+54 IF $$TMPFL^BQIUL1("C")
GOTO DONE
+55 ;
+56 IF $$TMPFL^BQIUL1("D",UID,DFN)
GOTO DONE
+57 ;
DONE ;
+1 ;
+2 SET BQII=BQII+1
SET @DATA@(BQII)=$CHAR(31)
+3 QUIT
+4 ;
HDR ;
+1 SET @DATA@(BQII)="T00120REPORT_TEXT"_$CHAR(30)
+2 QUIT
+3 ;
ERR ;
+1 DO ^%ZTER
+2 NEW Y,ERRDTM
+3 SET Y=$$NOW^XLFDT()
XECUTE ^DD("DD")
SET ERRDTM=Y
+4 SET BMXSEC="Recording that an error occurred at "_ERRDTM
+5 IF $DATA(BQII)
IF $DATA(DATA)
SET BQII=BQII+1
SET @DATA@(BQII)=$CHAR(31)
+6 IF $$TMPFL^BQIUL1("C")
+7 QUIT