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

VENPCCYV.m

Go to the documentation of this file.
  1. VENPCCYV ; IHS/OIT/GIS - COMPONENT FRAMEWORK ; MANAGE VISIT CONTEXT
  1. ;;2.6;PCC+;**1,3**;APR 03, 2012;Build 24
  1. ;
  1. ;
  1. PPRV(VIEN) ; EP - GIVEN A VISIT IEN, RETURN THE PRIMARY PROVIDER NAME
  1. ; CALLED BY THE BMX SCHEMA
  1. I '$D(^AUPNVPRV("AD",+$G(VIEN))) Q ""
  1. N NAME,PIEN,VPIEN,X,Y,Z,%
  1. S VPIEN=0,PIEN=""
  1. F S VPIEN=$O(^AUPNVPRV("AD",VIEN,VPIEN)) Q:'VPIEN D I PIEN Q
  1. . S X=$G(^AUPNVPRV(VPIEN,0)) I X="" Q
  1. . S TYPE=$P(X,U,4)
  1. . I TYPE="P" S PIEN=+X
  1. . Q
  1. I 'PIEN S VPIEN=$O(^AUPNVPRV("AD",VIEN,0)) I VPIEN S PIEN=+$G(^AUPNVPRV(VPIEN,0))
  1. I 'PIEN Q ""
  1. S PIEN=$$PRV^VENPCCU(PIEN)
  1. S NAME=$P($G(^VA(200,PIEN,0)),U)
  1. Q NAME
  1. ;
  1. PPOV(VIEN) ; EP - GIVEN A VISIT IEN, RETURN THE PRIMARY PURPOSE OF VISIT ICD CODE (NARRATIVE)
  1. ; CALLED BY BMX SCHEMA
  1. I '$D(^AUPNVPOV("AD",+$G(VIEN))) Q ""
  1. N TXT,IIEN,VPIEN,X,Y,Z,%,ICD,NIEN,DX
  1. S VPIEN=0,IIEN=""
  1. F S VPIEN=$O(^AUPNVPOV("AD",VIEN,VPIEN)) Q:'VPIEN D I IIEN Q
  1. . S X=$G(^AUPNVPOV(VPIEN,0)) I X="" Q
  1. . S TYPE=$P(X,U,12)
  1. . I TYPE="P" S IIEN=+X
  1. . Q
  1. I 'IIEN S VPIEN=$O(^AUPNVPOV("AD",VIEN,0)) I VPIEN S IIEN=+$G(^AUPNVPOV(VPIEN,0))
  1. I IIEN,VPIEN
  1. E Q ""
  1. S ICD=$P($G(^ICD9(IIEN,0)),U) I '$L(ICD) Q ""
  1. S NIEN=$P($G(^AUPNVPOV(VPIEN,0)),U,4) I 'NIEN Q ""
  1. S TXT=$P($G(^AUTNPOV(NIEN,0)),U) I TXT="" Q ""
  1. I $L(TXT)>20 S TXT=$E(TXT,1,17)_"..."
  1. S DX=ICD_" ("_TXT_")"
  1. Q DX
  1. ;
  1. NEWV(VIEN,TS,NVIEN) ; EP - RPC: VEN CF CLONE VISIT AND RETURN THE NEW VISIT IEN
  1. ; GIVEN A PAST VISIT IEN AND NEW TIMESTAMP: CREATE A NEW VISIT AND NEW V POV & V PROVIDER ENTRIES
  1. I $D(^AUPNVSIT(+$G(VIEN),0)),$G(TS)
  1. E Q
  1. N DA,DIK,DIC,DIE,X,Y,Z,%,PRVIEN,POVIEN,NPRVIEN,NPOVIEN
  1. S POVIEN=$O(^AUPNVPOV("AD",VIEN,0)) I 'POVIEN Q
  1. S PRVIEN=$O(^AUPNVPRV("AD",VIEN,0)) I 'PRVIEN Q
  1. ; AT THIS POINT YOU HAVE A VALID SOURCE VISIT AND V FILES
  1. S NVIEN=$O(^AUPNVSIT(999999999999),-1) I 'NVIEN Q
  1. S NVIEN=NVIEN+1
  1. M ^AUPNVSIT(NVIEN)=^AUPNVSIT(VIEN)
  1. S $P(^AUPNVSIT(NVIEN,0),U)=TS ; RESET VISIT TIMESTAMP
  1. S DA=NVIEN,DIK="^AUPNVSIT(" D IX1^DIK ; SET THE INDEXES
  1. S NPOVIEN=$O(^AUPNVPOV(999999999999),-1)+1 ; MAKE NEW V POV ENTRY
  1. M ^AUPNVPOV(NPOVIEN)=^AUPNVPOV(POVIEN)
  1. S $P(^AUPNVPOV(NPOVIEN,0),U,3)=NVIEN
  1. S DA=NPOVIEN,DIK="^AUPNVPOV(" D IX1^DIK
  1. S NPRVIEN=$O(^AUPNVPRV(999999999999),-1)+1 ; MAKE A NEW V PROVIDER ENTRY
  1. M ^AUPNVPRV(NPRVIEN)=^AUPNVPRV(PRVIEN)
  1. S $P(^AUPNVPRV(NPRVIEN,0),U,3)=NVIEN
  1. S DA=NPRVIEN,DIK="^AUPNVPRV(" D IX1^DIK
  1. S $P(^AUPNVSIT(NVIEN,0),U,9)=2 ; RESET DEPENDENT ENTRY COUNT
  1. S $P(^AUPNVSIT(NVIEN,0),U,2)=DT ; RESET DATE VISIT CRATED
  1. D ^XBFMK
  1. Q
  1. ;
  1. VALV(DFN,IENS,MAX,OUT,TOT) ; EP - VALID VISIT ITERATION FOR BMX SCHEMA
  1. ; ONLY VALID VISITS ARE RETURNED
  1. I '$O(^AUPNVSIT("AA",+$G(DFN),0)) Q ""
  1. N IDT,VIEN,CNT,FIN,END,%
  1. S IDT=0,CNT=0,FIN=0
  1. S END=9999999-$G(START)
  1. I 'MAX S MAX=99
  1. F Q:FIN S IDT=$O(^AUPNVSIT("AA",DFN,IDT)) Q:'IDT S VIEN=999999999999 F Q:FIN S VIEN=$O(^AUPNVSIT("AA",DFN,IDT,VIEN),-1) Q:'VIEN D Q
  1. . I IDT>END S FIN=1 Q
  1. . S X=$G(^AUPNVSIT(VIEN,0)) I '$L(X) Q ; VISIT DATA MUST EXIST
  1. . I $P(X,U,11) Q ; MUST BE AN 'ACTIVE' VISIT - NOT 'DELETED'
  1. . I $P(X,U,3)="" Q ; VISIT MUST HAVE A TYPE
  1. . I '$P(X,U,6) Q ; MUST HAVE A VALID ENCOUNTER LOCATION
  1. . I $P(X,U,7)="" Q ; VISIT MUST HAVE A CATEGORY
  1. . I $P(X,U,8)="" Q ; VISIT MUST HAVE A VALID CLINIC FIN
  1. . ; I '$D(^AUPNVPOV("AD",VIEN)) Q ; MUST HAVE A POV ; PATCHED BY GIS 4/27/2009
  1. . I '$D(^AUPNVPRV("AD",VIEN)) Q ; MUST HAVE A PROVIDER
  1. . S DA=VIEN,IENS=DA_C
  1. . D DATA^BMXADOV1(IENS,DA)
  1. . S CNT=CNT+1
  1. . I CNT=MAX S FIN=1
  1. . Q
  1. Q ""
  1. ;