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

AGGPTPVT.m

Go to the documentation of this file.
  1. AGGPTPVT ;VNGT/HS/ALA-Private Insurance ; 15 Jul 2010 3:33 PM
  1. ;;1.0;PATIENT REGISTRATION GUI;;Nov 15, 2010
  1. ;
  1. ;
  1. BLD(DATA,DFN,PIIEN,IINS) ; EP -- AGG BUILD PRIVATE INS
  1. ; Input Parameters
  1. ; DFN - Patient IEN
  1. ; PIIEN - Record IEN
  1. ; IINS - Insurer IEN
  1. ;
  1. NEW UID,II,AGIEN,AGCN,AGDATA,FLD,TYPE,CODE,DEXEC,ARRAY,AN,DQTY,VAL,VALUE,HEADR,HDATA,FILE,FL,FD
  1. NEW VHD,J,K,LEN,LG,LN,ECHR,HDR,SECFILE,SECFLD,RET,VAL1,VAL2,IENS,SIENS,PHIEN,DEF,AGGPEC,AGGPINUM
  1. NEW AGGPIMBN
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("AGGWDISP",UID))
  1. K @DATA
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^AGGWDISP D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. S DEF="Insurance Edit"
  1. S AGIEN=$O(^AGG(9009068.3,"B",DEF,""))
  1. I AGIEN=0 S BMXSEC="RPC Failed: Passed in window name "_DEF_" not found" Q
  1. ;
  1. S FILE=$P(^AGG(9009068.3,AGIEN,0),U,2),SECFILE=$P(^AGG(9009068.3,AGIEN,0),U,14)
  1. ;
  1. I $G(PIIEN)'="" S PHIEN=$P($G(^AUPNPRVT(DFN,11,PIIEN,0)),U,8)
  1. I $G(IINS)'="" S AGGIINS=IINS
  1. I $G(IINS)="" S AGGIINS=$P($G(^AUPNPRVT(DFN,11,PIIEN,0)),U,1)
  1. ;
  1. NEW DA,IENS
  1. I $G(PIIEN)'="" S DA(1)=DFN,DA=PIIEN,IENS=$$IENS^DILF(.DA)
  1. K DA
  1. I $G(PHIEN)'="" S DA=PHIEN,SIENS=$$IENS^DILF(.DA)
  1. ;
  1. S HEADR="",HDATA=""
  1. S AGCN=0
  1. F S AGCN=$O(^AGG(9009068.3,AGIEN,10,AGCN)) Q:'AGCN D
  1. . I $P(^AGG(9009068.3,AGIEN,10,AGCN,0),U,11)'="" Q
  1. . S AGDATA=$G(^AGG(9009068.3,AGIEN,10,AGCN,0))
  1. . S FLD=$P($G(^AGG(9009068.3,AGIEN,10,AGCN,3)),U,1),SECFLD=$P($G(^AGG(9009068.3,AGIEN,10,AGCN,3)),U,7)
  1. . S RET=$P($G(^AGG(9009068.3,AGIEN,10,AGCN,3)),U,2)
  1. . S TYPE=$P($G(^AGG(9009068.3,AGIEN,10,AGCN,1)),U,1)
  1. . S CODE=$P(AGDATA,U,7),HDR=$P(AGDATA,U,2)
  1. . S DEXEC=$G(^AGG(9009068.3,AGIEN,10,AGCN,8))
  1. . I TYPE="M" S VALUE=""
  1. . ;
  1. . I TYPE="T" D
  1. .. I DEXEC'="" D Q
  1. ... S VAL=""
  1. ... I DEXEC'["DQTY" X DEXEC Q
  1. ... S DQTY="I" X DEXEC S VAL=VALUE_$C(28)
  1. ... S DQTY="E" X DEXEC S VALUE=VAL_VALUE
  1. .. I $G(IENS)="",$G(SIENS)="" S VALUE="" Q
  1. .. I FLD'="" S VALUE=$$GET1^DIQ(FILE,IENS,FLD,"I")_$C(28)_$$GET1^DIQ(FILE,IENS,FLD,"E") Q
  1. .. S VALUE=$$GET1^DIQ(SECFILE,SIENS,SECFLD,"I")_$C(28)_$$GET1^DIQ(SECFILE,SIENS,SECFLD,"E")
  1. . I (TYPE="C")!(TYPE="K") D
  1. .. I DEXEC'="" D Q
  1. ... S VAL=""
  1. ... I DEXEC'["DQTY" X DEXEC Q
  1. ... S DQTY="I" X DEXEC S VAL=VALUE_$C(28)
  1. ... S DQTY="E" X DEXEC S VALUE=VAL_VALUE
  1. .. I $G(IENS)="",$G(SIENS)="" S VALUE="" Q
  1. .. I FLD'="" D Q
  1. ... S VAL1=$$GET1^DIQ(FILE,IENS,FLD,"I") I VAL1="" Q
  1. ... S VAL2=$O(^AGG(9009068.3,AGIEN,10,AGCN,5,"C",VAL1,"")) I VAL2="" Q
  1. ... S VAL2=$P(^AGG(9009068.3,AGIEN,10,AGCN,5,VAL2,0),U,1)
  1. ... S VALUE=VAL1_$C(28)_VAL2
  1. .. S VAL1=$$GET1^DIQ(SECFILE,SIENS,SECFLD,"I") I VAL1="" Q
  1. .. S VAL2=$O(^AGG(9009068.3,AGIEN,10,AGCN,5,"C",VAL1,"")) I VAL2="" Q
  1. .. S VAL2=$P(^AGG(9009068.3,AGIEN,10,AGCN,5,VAL2,0),U,1)
  1. .. S VALUE=VAL1_$C(28)_VAL2
  1. . I TYPE="X"!(TYPE="N") D
  1. .. NEW TYPE
  1. .. I DEXEC'="" X DEXEC Q
  1. .. I FLD'="",FLD=.001 S VALUE=$G(PIIEN) Q
  1. .. I SECFLD'="",SECFLD=.001 S VALUE=$G(PHIEN) Q
  1. .. I $G(IENS)="",$G(SIENS)="" S VALUE="" Q
  1. .. I FLD'="",RET="I" D Q
  1. ... S VALUE=$$GET1^DIQ(FILE,IENS,FLD,"I") Q
  1. ... S VALUE=$$GET1^DIQ(SECFILE,SIENS,SECFLD,"I")
  1. .. I $G(IENS)="",$G(SIENS)="" S VALUE="" Q
  1. .. I FLD'="" S VALUE=$$GET1^DIQ(FILE,IENS,FLD,"E") Q
  1. .. S VALUE=$$GET1^DIQ(SECFILE,SIENS,SECFLD,"E")
  1. . I TYPE="D" D
  1. .. I DEXEC'="" X DEXEC Q
  1. .. I $G(IENS)="",$G(SIENS)="" S VALUE="" Q
  1. .. I FLD'="" S VALUE=$$GET1^DIQ(FILE,IENS,FLD,"I"),VALUE=$$FMTE^AGGUL1(VALUE) Q
  1. .. S VALUE=$$GET1^DIQ(SECFILE,SIENS,SECFLD,"I"),VALUE=$$FMTE^AGGUL1(VALUE)
  1. . I TYPE="W" D
  1. .. NEW FL,FD
  1. .. K ARRAY S VALUE=""
  1. .. I DEXEC'="" X DEXEC
  1. .. I $G(IENS)="",$G(SIENS)="" S VALUE="" Q
  1. .. I DEXEC="" D
  1. ... I FLD'="" D GETS^DIQ(FILE,IENS,FLD,"E","ARRAY") Q
  1. ... D GETS^DIQ(SECFILE,SIENS,SECFLD,"E","ARRAY")
  1. .. S FL=$O(ARRAY("")) I FL="" Q
  1. .. S FD=$O(ARRAY(FL,IENS,"")) I FD="" Q ;** look at this one **
  1. .. S AN=0,TXT=ARRAY(FL,IENS,FD,"E") I TXT="" Q
  1. .. K @TXT@("E")
  1. .. F S AN=$O(@TXT@(AN)) Q:AN="" S VALUE=VALUE_@TXT@(AN)_$C(10)
  1. . I HDR["AGGPINUM" S AGGPINUM=VALUE
  1. . I HDR["AGGPIMBN" S AGGPIMBN=VALUE,AGGPEC=$L(HEADR,"^")
  1. . I CODE="AGGPINUM",$G(AGGPIMBN)="" S $P(HDATA,U,AGGPEC)=AGGPINUM
  1. . S HEADR=HEADR_HDR_"^"
  1. . S HDATA=HDATA_$G(VALUE)_"^",VALUE=""
  1. S HEADR=$$TKO^AGGUL1(HEADR,"^"),HDATA=$$TKO^AGGUL1(HDATA,"^")
  1. S @DATA@(II)=HEADR_$C(30)
  1. I $$STRIP^XLFSTR(HDATA,$C(28)_"^")'="" S II=II+1,@DATA@(II)=HDATA_$C(30)
  1. S II=II+1,@DATA@(II)=$C(31)
  1. K AGGIINS,I,INS,IDATA,ST,STATUS,TYP
  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. INS(AGGIINS,PEC) ;EP
  1. NEW CTY,ST,ZIP
  1. I $G(AGGIINS)="" Q ""
  1. D GET^AGGINSUR(.IDATA,AGGIINS)
  1. I $G(PEC)="" D
  1. . S CTY=$P($G(@IDATA@(1)),U,4),ST=$P($G(@IDATA@(1)),U,5),ZIP=$P($G(@IDATA@(1)),U,6)
  1. . S VALUE=CTY_", "_ST_" "_ZIP
  1. I $G(PEC)'="" S VALUE=$P($G(@IDATA@(1)),U,PEC)
  1. K @IDATA
  1. Q VALUE