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

SDEC44.m

Go to the documentation of this file.
  1. SDEC44 ;ALB/SAT - VISTA SCHEDULING RPCS ;JAN 15, 2016
  1. ;;5.3;Scheduling;**627**;Aug 13, 1993;Build 249
  1. ;
  1. Q
  1. ;
  1. ; Get primary provider for a visit
  1. ; VIEN = Visit IEN
  1. ; Returns Provider IEN ^ Provider Name ^ V Provider IEN
  1. PRIPRV(VIEN) ;EP
  1. N X,Y,RET
  1. Q:'VIEN $$ERR("Invalid visit IEN.")
  1. S X=0,RET=""
  1. F S X=$O(^AUPNVPRV("AD",VIEN,X)) Q:'X D Q:RET>0
  1. .S Y=$G(^AUPNVPRV(X,0))
  1. .S:$P(Y,U,4)="P" RET=$P(Y,U)_U_$P($G(^VA(200,+Y,0)),U)_U_X
  1. Q RET
  1. ;
  1. ; Set primary provider
  1. ; INP = Visit IEN [1] ^ Patient IEN [2] ^ Provider IEN [3] ^ Primary/Secondary (P/S) [4] ^
  1. ; Force Conversion to Primary (Y/N) [5]
  1. SETVPRV(RET,INP) ;
  1. N X,VIEN,VPRV,DFN,PRV,PRI,FORCE,PRIPRV,IENS,FDA,FNUM
  1. S RET="",FNUM=$$FNUM
  1. S VIEN=+INP
  1. S DFN=$P(INP,U,2)
  1. S RET=$$CHKVISIT^SDECUTL(VIEN,DFN)
  1. Q:RET
  1. S PRV=$P(INP,U,3)
  1. S PRI=$P(INP,U,4)
  1. S:'$L(PRI) PRI="S"
  1. S FORCE=$P(INP,U,5)
  1. S FORCE=FORCE!(FORCE="Y")
  1. S PRIPRV=$$PRIPRV(VIEN)
  1. I PRIPRV>0,PRI="P",+PRIPRV'=PRV D Q:RET
  1. .I FORCE S FDA(FNUM,$P(PRIPRV,U,3)_",",.04)="S"
  1. .E S RET=$$ERR("SDEC44",$P(PRIPRV,U,2))
  1. S (X,VPRV)=0
  1. F S X=$O(^AUPNVPRV("AD",VIEN,X)) Q:'X D Q:VPRV
  1. .S:$P($G(^AUPNVPRV(X,0)),U)=PRV VPRV=X
  1. S IENS=$S(VPRV:VPRV_",",1:"+1,")
  1. S FDA=$NA(FDA(FNUM,IENS))
  1. S @FDA@(.01)=PRV
  1. S @FDA@(.02)=DFN
  1. S @FDA@(.03)=VIEN
  1. S @FDA@(.04)=PRI
  1. S RET=$$UPDATE^SDECUTL(.FDA)
  1. Q
  1. ; Return V File #
  1. FNUM() Q 9000010.06
  1. ;
  1. GETVPRV(BGOY,VPRV) ;return data from the V PROVIDER file
  1. ;GETVPRV(BGOY,VPRV) external parameter tag is in SDEC
  1. ; .BGOY = returned pointer to list of V PROVIDER data
  1. ; VPRV = V PROVIDER code - pointer to ^AUPNVPRV
  1. ; called by SDEC GETVPRV
  1. N BGOI,BGONOD,BGOVP
  1. S BGOI=0
  1. K ^TMP("SDEC",$J)
  1. S BGOY="^TMP(""SDEC""_$J_"")"""
  1. S ^TMP("SDEC",$J,0)="T00020ERRORID"_$C(30)
  1. ;check for valid V PROVIDER
  1. I '+VPRV D ERR("SDEC44: Invalid V Provider ID") Q
  1. I '$D(^AUPNVPRV(VPRV,0)) D ERR("SDEC44: Invalid V Provider ID") Q
  1. S BGONOD=^AUPNVPRV(VPRV,0)
  1. ; 1 2 3 4 5
  1. S ^TMP("SDEC",$J,0)="I00020V_PROVIDER_IEN^I00020PROVIDER_IEN^I00020PATIENT_NAME^T00030VISIT^T00030PROVIDER_STATUS"_$C(30)
  1. S BGOVP=VPRV_U ; V_PROVIDER_IEN
  1. S BGOVP=BGOVP_$P(BGONOD,U,1)_U ; PROVIDER_IEN
  1. S BGOVP=BGOVP_$P(BGONOD,U,2)_U ; PATIENT_NAME
  1. S BGOVP=BGOVP_$P(BGONOD,U,3)_U ; VISIT
  1. S BGOVP=BGOVP_$P(BGONOD,U,5) ; PROVIDER_STATUS
  1. S BGOI=BGOI+1
  1. S ^TMP("SDEC",$J,BGOI)=BGOVP
  1. S BGOI=BGOI+1
  1. S ^TMP("SDEC",$J,BGOI)=$C(30)
  1. S BGOI=BGOI+1
  1. S ^TMP("SDEC",$J,BGOI)=$C(31)
  1. Q
  1. ;
  1. ERROR ;
  1. D ERR("Error")
  1. Q
  1. ;
  1. ERR(ERRNO) ;Error processing
  1. S BGOI=$G(BGOI)+1
  1. S ^TMP("SDEC",$J,BGOI)=ERRNO_$C(30)
  1. S BGOI=BGOI+1
  1. S ^TMP("SDEC",$J,BGOI)=$C(31)
  1. Q