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

BQIPTRF.m

Go to the documentation of this file.
  1. BQIPTRF ;PRXM/HC/ALA-Patient Referrals ; 23 Feb 2007 2:22 PM
  1. ;;2.1;ICARE MANAGEMENT SYSTEM;;Feb 07, 2011
  1. ;
  1. Q
  1. ;
  1. REF(DATA,DFN,TMFRAME) ; EP -- BQI PATIENT REFERRALS
  1. ;
  1. ;Description - all the referrals that a patient has
  1. ;
  1. ;Input
  1. ; DFN - Patient internal entry number
  1. ; TMFRAME - Timeframe
  1. ;
  1. NEW UID,II,HEADER,BN,ENDT,RFIEN,PTYP,RTYP,VEND,BGDT,BPCADAT,BPCDTA,BPCEDAT
  1. NEW BPCIDAT,BPCPIEN,BPCPNAM,BPCPURP,BPCRNUM,BQIPAT,NTMP,FLDS,NM,TMP,VAL,RSTAT
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BQIPTRF",UID))
  1. K @DATA
  1. ;
  1. S TMFRAME=$G(TMFRAME,""),ENDT=""
  1. I TMFRAME'="" S ENDT=$$DATE^BQIUL1(TMFRAME)
  1. ;
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQIPTRF D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. S HEADER="I00010REF_IEN^T00013REF_NUMBER^T00080PURPOSE^T00035PROVIDER_NAME^I00010PROV_IEN^D00030INITIAL_DATE^D00030EXP_SERV_DATE^D00030ACT_SERV_DATE^"
  1. S HEADER=HEADER_"T00030PAT_TYPE^T00030REF_TYPE^T00030VENDOR^T00003REF_STAT"
  1. S @DATA@(II)=HEADER_$C(30)
  1. ;
  1. S BGDT=$S(ENDT="":"",1:ENDT-.0001)
  1. ;
  1. I $$PATCH^XPDUTL("BMC*4.0*4") D G DONE
  1. . S FLDS=".02/E;1201/E;.06/E;.06/I;.01/I;1105/I;1106/I;.14/E;.04/E;.07/E;.15/I"
  1. . S TMP=$NA(^TMP(UID)),BQIPAT(DFN)=""
  1. . D API^BMCAPI1(.BQIPAT,BGDT,"",FLDS,TMP)
  1. . S RFIEN=""
  1. . F S RFIEN=$O(@TMP@(DFN,RFIEN)) Q:RFIEN="" D
  1. .. S NM="",II=II+1,$P(@DATA@(II),U,1)=RFIEN
  1. .. F S NM=$O(@TMP@(DFN,RFIEN,NM)) Q:NM="" D
  1. ... S NTMP=$Q(@TMP@(DFN,RFIEN,NM))
  1. ... I NTMP["E" S VAL=@NTMP
  1. ... I NTMP["I" S VAL=$$FMTE^BQIUL1(@NTMP)
  1. ... S $P(@DATA@(II),U,1+NM)=VAL
  1. .. S @DATA@(II)=@DATA@(II)_$C(30)
  1. . K @TMP
  1. ;
  1. F S BGDT=$O(^BMCREF("AA",DFN,BGDT)) Q:BGDT="" D
  1. . S RFIEN=""
  1. . F S RFIEN=$O(^BMCREF("AA",DFN,BGDT,RFIEN)) Q:RFIEN="" D
  1. .. S BPCRNUM=$$GET1^DIQ(90001,RFIEN_",",.02,"E")
  1. .. S BPCPIEN=$$GET1^DIQ(90001,RFIEN_",",.06,"I")
  1. .. S BPCPNAM=$$GET1^DIQ(90001,RFIEN_",",.06,"E")
  1. .. I BPCPNAM="" S BPCPNAM="NO PROVIDER INDICATED"
  1. .. S BPCIDAT=$$FMTE^BQIUL1($$GET1^DIQ(90001,RFIEN_",",.01,"I"))
  1. .. S BPCPURP=$$GET1^DIQ(90001,RFIEN_",",1201,"E")
  1. .. S PTYP=$$GET1^DIQ(90001,RFIEN_",",.14,"E")
  1. .. S RSTAT=$$GET1^DIQ(90001,RFIEN_",",.15,"I")
  1. .. S RTYP=$$GET1^DIQ(90001,RFIEN_",",.04,"E")
  1. .. S VEND=$$GET1^DIQ(90001,RFIEN_",",.07,"E")
  1. .. S BPCEDAT=$$FMTE^BQIUL1($$GET1^DIQ(90001,RFIEN_",",1105,"I"))
  1. .. S BPCADAT=$$FMTE^BQIUL1($$GET1^DIQ(90001,RFIEN_",",1106,"I"))
  1. .. S BPCDTA=RFIEN_U_BPCRNUM_U_BPCPURP_U_BPCPNAM_U_BPCPIEN_U_BPCIDAT_U_BPCEDAT_U_BPCADAT
  1. .. S II=II+1,@DATA@(II)=BPCDTA_U_PTYP_U_RTYP_U_VEND_U_RSTAT_$C(30)
  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