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

BPCRC3.m

Go to the documentation of this file.
  1. BPCRC3 ; IHS/OIT/MJL - 12/03/96 -REFERRED CARE ROUTINES ; [ 03/22/2006 8:59 AM ]
  1. ;;1.5;BPC;**2**;MAY 26, 2005
  1. REFEDIT(RESULT,BPCFLAG,BPCPARAM) ;EP CALL FROM REMOTE PROC: BPC EDITREFERRAL
  1. EN ;
  1. S U="^",XWBWRAP=1,BPCS1="`",BPCS2="~",BPCS3="|" K RESULT
  1. I BPCFLAG="" S RESULT(1)=-1,RESULT(2)="NO EDIT FLAG RECEIVED!" D KILL Q
  1. I BPCPARAM="" S RESULT(1)=-1,RESULT(2)="NO PARAMETERS RECEIVED!" D KILL Q
  1. I "AED"'[BPCFLAG S RESULT(1)=-1,RESULT(2)="PROPER EDIT FLAG NOT SENT!" D KILL Q
  1. D:BPCFLAG="A" ADD D:BPCFLAG="E" EDIT D:BPCFLAG="D" DELETE D KILL
  1. Q
  1. KILL ;
  1. K BPCCDAT,BPCCLIN,BPCCPT,BPCEBDAT,BPCEEDAT,BPCERR,BPCFAC,BPCFDR,BPCFIEN,BPCFLAG,BPCHXS,BPCICD,BPCIDAT,BPCIEN,BPCLEN,BPCLOS,BPCLSCAT,BPCNOVIS,BPCNPARM,BPCNUM,BPCPAD,BPCPARAM,BPCPARM,BPCPAYOR,BPCPIEN,BPCPRIOR
  1. K BPCPRNAM,BPCPROV,BPCPTYPE,BPCPURP,BPCPVEND,BPCQ,BPCREFN,BPCROOT,BPCRTYPE,BPCSNDA,BPCSNOTE,BPCSUB,BPCTOIHS,BPCTOPRV,BPCUSR,BPCWDAYS,BPCX,BPCX1,BPCX2,BPCXR,BPCY,BPCYR,BPCS1,BPCS2
  1. K BPCRIEN,BPCDRG,BPCDXS,BPCPRCS,BPCIENS,BPCS3,BPCDTA,BPCDXIEN,BPCNARR,BPCNIEN,BPCPXIEN
  1. Q
  1. ADD ;
  1. S BPCERR=0
  1. D REFNO Q:BPCERR
  1. D GETDATA Q:BPCERR
  1. D ADDREF I BPCERR S RESULT(1)=-1,RESULT(2)="ERROR OCCURRED WHILE SAVING DATA!" Q
  1. S RESULT(1)=1,RESULT(2)=BPCRIEN_U_BPCREFN_U_BPCPURP_U_BPCPRNAM_U_BPCPROV_U_BPCIDAT_U_BPCEBDAT_U
  1. Q
  1. REFNO ;
  1. S BPCFAC=$P(BPCPARAM,BPCS1,4) I BPCFAC="" S BPCERR=1,RESULT(1)=-1,RESULT(2)="REQUESTING FACILITY NOT RECEIVED!" Q
  1. S BPCPARM=$G(^BMCPARM(BPCFAC,0)) I BPCPARM="" S BPCERR=1,RESULT(1)=-1,RESULT(2)="NO SITE PARAMETERS EXIST FOR REQUESTING FACILITY!" Q
  1. S BPCX=$P($G(^AUTTLOC(BPCFAC,0)),U,10) I BPCX="" S BPCERR=1,RESULT(1)=-1,RESULT(2)="NO FACILITY NUMBER AVAILABLE IN RCIS SITE PARAMETER FILE!" Q
  1. S BPCYR=$P(BPCPARM,U,2) I BPCYR="" S BPCERR=1,RESULT(1)=-1,RESULT(2)="NO FISCAL YEAR AVAILABLE IN RCIS SITE PARAMETER FILE!" Q
  1. S (BPCY,BPCNUM)=$P(BPCPARM,U,7)+1,BPCLEN=$L(BPCNUM),BPCPAD=5-BPCLEN F BPCQ=1:1:BPCPAD S BPCNUM="0"_BPCNUM
  1. S BPCREFN=BPCX_BPCYR_BPCNUM
  1. I $L(BPCREFN)'=13!('(BPCREFN?13N)) S BPCERR=1,RESULT(1)=-1,RESULT(2)="ERROR GENERATING NEW REFERRAL NUMBER!" Q
  1. D SAVNUM
  1. Q
  1. ;
  1. SAVNUMEP ;
  1. S BPCFAC=BGUV(BGUFILE,".01-P"),BPCY=BGUV(90001.31,.07)+1
  1. SAVNUM ;
  1. L +^BMCPARM(0):10 I '$T S BPCERR=1 Q
  1. K BPCFDA,BPCEMSG S BPCFDR="BPCFDA(1)",BPCFIEN=BPCFAC_","
  1. S BPCFDA(1,90001.31,BPCFIEN,.07)=BPCY
  1. D FILE^DIE("",BPCFDR,"BPCEMSG")
  1. I $D(BPCEMSG("DIERR")) S BPCERR=1
  1. L -^BMCPARM(0)
  1. S BPCNPARM=$G(^BMCPARM(BPCFAC,0))
  1. Q
  1. ADDREF ;
  1. L +^BMCREF(0):10 I '$T S BPCERR=1 Q
  1. K BPCFDA,BPCEMSG S BPCFDR="BPCFDA(1)"
  1. S BPCFDA(1,90001,"+1,",.01)=BPCIDAT
  1. S BPCFDA(1,90001,"+1,",.02)=BPCREFN
  1. S BPCFDA(1,90001,"+1,",.03)=BPCPIEN
  1. S BPCFDA(1,90001,"+1,",.04)=BPCRTYPE
  1. S BPCFDA(1,90001,"+1,",.05)=BPCFAC
  1. S BPCFDA(1,90001,"+1,",.06)=BPCPROV
  1. S BPCFDA(1,90001,"+1,",.07)=BPCPVEND
  1. S BPCFDA(1,90001,"+1,",.08)=BPCTOIHS
  1. S BPCFDA(1,90001,"+1,",.09)=BPCTOPRV
  1. S BPCFDA(1,90001,"+1,",.11)=BPCPAYOR
  1. S BPCFDA(1,90001,"+1,",.12)=BPCICD
  1. S BPCFDA(1,90001,"+1,",.13)=BPCCPT
  1. S BPCFDA(1,90001,"+1,",.14)=BPCPTYPE
  1. S BPCFDA(1,90001,"+1,",.15)="A" ;STATUS OF REFERRAL
  1. S BPCFDA(1,90001,"+1,",.21)=BPCDRG
  1. S BPCFDA(1,90001,"+1,",.23)=BPCCLIN
  1. S BPCFDA(1,90001,"+1,",.25)=BPCUSR
  1. S BPCFDA(1,90001,"+1,",.26)=BPCCDAT
  1. S BPCFDA(1,90001,"+1,",.27)=BPCCDAT ;DATE LAST MODIFIED
  1. S BPCFDA(1,90001,"+1,",.32)=BPCPRIOR
  1. S BPCFDA(1,90001,"+1,",.34)=BPCSNDA
  1. S BPCFDA(1,90001,"+1,",1105)=BPCEBDAT
  1. S BPCFDA(1,90001,"+1,",1107)=BPCEEDAT
  1. S BPCFDA(1,90001,"+1,",1109)=BPCLOS
  1. S BPCFDA(1,90001,"+1,",1111)=BPCNOVIS
  1. S BPCFDA(1,90001,"+1,",1201)=BPCPURP
  1. S BPCFDA(1,90001,"+1,",1301)=BPCSNOTE
  1. S BPCFDA(1,90001,"+1,",1302)=BPCWDAYS
  1. D DAT51
  1. I BPCLSCAT'="" D ADDLSCAT
  1. K BPCIEN D UPDATE^DIE("",BPCFDR,"BPCIEN","BPCEMSG")
  1. I $D(BPCEMSG("DIERR")) S BPCERR=1
  1. L -^BMCREF(0)
  1. I 'BPCERR,BPCHXS'="" D ADDHX
  1. I 'BPCERR S BPCRIEN=BPCIEN(1) D:BPCDXS'="" SETDXS
  1. I 'BPCERR,BPCPRCS'="" D SETPRCS
  1. Q
  1. DAT51 ; SETS NODE 51 DATA
  1. S BPCX=$G(^DPT(BPCPIEN,0))
  1. S BPCFDA(1,90001,"+1,",5101)=$P(BPCX,U,1) ;NAME
  1. S BPCFDA(1,90001,"+1,",5103)=$P(BPCX,U,3) ;DOB
  1. S BPCFDA(1,90001,"+1,",5104)=$P(BPCX,U,9) ;SSN
  1. S BPCFDA(1,90001,"+1,",5107)=$P(BPCX,U,2) ;SEX
  1. S BPCFDA(1,90001,"+1,",5102)=$P($G(^AUPNPAT(BPCPIEN,41,BPCFAC,0)),U,2)
  1. S BPCFDA(1,90001,"+1,",5113)=$P($G(^DIC(4,BPCFAC,0)),U,1)
  1. S BPCFDA(1,90001,"+1,",5114)=$P($G(^AUTTLOC(BPCFAC,0)),U,10)
  1. S BPCX=$G(^AUPNPAT(BPCPIEN,51)),BPCX1=$P(BPCX,U,18),BPCX2=$P(BPCX,U,8)
  1. S:BPCX1'="" BPCFDA(1,90001,"+1,",5105)=BPCX1
  1. S:BPCX2'="" BPCFDA(1,90001,"+1,",5106)=$P($G(^AUTTTRI(BPCX2,0)),U,2)
  1. I BPCPVEND'="" D
  1. . S BPCFDA(1,90001,"+1,",5108)=$P($G(^AUTTVNDR(BPCPVEND,0)),U,1)
  1. . S BPCFDA(1,90001,"+1,",5109)=$P($G(^AUTTVNDR(BPCPVEND,11)),U,1)
  1. S BPCFDA(1,90001,"+1,",5110)=$$MCR^AUPNPAT(BPCPIEN,BPCIDAT)
  1. S BPCFDA(1,90001,"+1,",5111)=$$MCD^AUPNPAT(BPCPIEN,BPCIDAT)
  1. S BPCFDA(1,90001,"+1,",5112)=$$PI^AUPNPAT(BPCPIEN,BPCIDAT)
  1. Q
  1. ADDHX ;
  1. K ^BPCTMP($J)
  1. Q:'$D(BPCIEN)
  1. F BPCQ=1:1:$L(BPCHXS,BPCS2) S BPCX=$P(BPCHXS,BPCS2,BPCQ),^BPCTMP($J,BPCQ,0)=BPCX
  1. S BPCROOT="^BPCTMP("_$J_")"
  1. D WP^DIE(90001,BPCIEN(1)_",",1,"",BPCROOT,"BPCEMSG")
  1. I $D(BPCEMSG("DIERR")) S BPCERR=1
  1. K ^BPCTMP($J)
  1. Q
  1. ADDLSCAT ;
  1. S BPCSUB=1 F BPCQ=1:1:$L(BPCLSCAT,BPCS2) S BPCX=$P(BPCLSCAT,BPCS2,BPCQ),BPCSUB=BPCSUB+1,BPCXR="BPCFDA(1,90001.21,"_""""_"+"_BPCSUB_",+1,"_""""_",.01)" S @BPCXR=BPCX
  1. Q
  1. SETDXS ;
  1. D SETDXS^BPCRC5
  1. Q
  1. SETPRCS ;
  1. D SETPRCS^BPCRC5
  1. Q
  1. GETDATA ;
  1. S BPCIDAT=$P(BPCPARAM,BPCS1,1)
  1. I BPCIDAT'="" S X=BPCIDAT D ^%DT S BPCIDAT=$S(Y'=-1:$P(Y,".",1),1:"")
  1. I BPCIDAT="" S RESULT(1)=-1,RESULT(2)="INITIATED DATE NOT IN PROPER FORMAT!",BPCERR=1 Q
  1. S BPCPIEN=$P(BPCPARAM,BPCS1,2) I BPCPIEN="" S BPCERR=1,RESULT(1)=-1,RESULT(2)="NO PATIENT IEN SENT!" Q
  1. I '$D(^DPT(BPCPIEN,0)) S BPCERR=1,RESULT(1)=-1,RESULT(2)="IEN SENT IS NOT A DEFINED PATIENT IEN!" Q
  1. S BPCRTYPE=$P(BPCPARAM,BPCS1,3) I "CION"'[BPCRTYPE S BPCERR=1,RESULT(1)=-1,RESULT(2)="REFERRAL TYPE CODE SENT IS NOT A PROPER REFERRAL TYPE CODE!" Q
  1. I BPCFLAG="E" S BPCFAC=$P(BPCPARAM,BPCS1,4) I BPCFAC="" S BPCERR=1,RESULT(1)=-1,RESULT(2)="REQUESTING FACILITY NOT RECEIVED!" Q
  1. S BPCPROV=+$P(BPCPARAM,BPCS1,5) I 'BPCPROV S BPCERR=1,RESULT(1)=-1,RESULT(2)="REQUESTING PROVIDER SENT IS NOT ASSIGNED!" Q
  1. I '$D(^VA(200,BPCPROV,0)) S BPCERR=1,RESULT(1)=-1,RESULT(2)="REQUESTING PROVIDER SENT IS NOT DEFINED!" Q
  1. S BPCPRNAM=$P(^VA(200,BPCPROV,0),U,1)
  1. S BPCPVEND=$P(BPCPARAM,BPCS1,6) I BPCPVEND'="" I '$D(^AUTTVNDR(BPCPVEND,0)) S BPCERR=1,RESULT(1)=-1,RESULT(2)="PRIMARY VENDOR SENT IS NOT DEFINED!" Q
  1. S BPCTOIHS=$P(BPCPARAM,BPCS1,7) I BPCTOIHS'="" I '$D(^AUTTLOC(BPCTOIHS,0)) S BPCERR=1,RESULT(1)=-1,RESULT(2)="TO IHS FACILITY SENT IS NOT DEFINED!" Q
  1. S BPCTOPRV=$P(BPCPARAM,BPCS1,8) I BPCTOPRV'="" I '$D(^BMCLPRV(BPCTOPRV,0)) S BPCERR=1,RESULT(1)=-1,RESULT(2)="TO OTHER PROVIDER SENT IS NOT DEFINED!" Q
  1. S BPCPAYOR=$P(BPCPARAM,BPCS1,9) I BPCPAYOR="" S BPCERR=1,RESULT(1)=-1,RESULT(2)="NO PRIMARY PAYOR SENT!" Q
  1. S BPCPAYOR=+BPCPAYOR I BPCPAYOR<1!(BPCPAYOR>8) S BPCERR=1,RESULT(1)=-1,RESULT(2)="PRIMARY PAYOR SENT IS NOT CORRECT!" Q
  1. S BPCICD=$P(BPCPARAM,BPCS1,10) I BPCICD'="" I '$D(^BMCTDXC(BPCICD,0)) S BPCERR=1,RESULT(1)=-1,RESULT(2)="SENT ICD CATEGORY CODE IS NOT DEFINED!" Q
  1. S BPCCPT=$P(BPCPARAM,BPCS1,11) I BPCCPT'="" I '$D(^BMCTSVC(BPCCPT,0)) S BPCERR=1,RESULT(1)=-1,RESULT(2)="SEND CPT CATEGORY CODE IS NOT DEFINED!" Q
  1. S BPCPTYPE=$P(BPCPARAM,BPCS1,12) I BPCPTYPE="" S BPCERR=1,RESULT(1)=-1,RESULT(2)="NO PATIENT TYPE SENT!" Q
  1. I "IO"'[BPCPTYPE S BPCERR=1,RESULT(1)=-1,RESULT(2)="PATIENT TYPE SENT IS NOT CORRECT!" Q
  1. S BPCCLIN=$P(BPCPARAM,BPCS1,13) I BPCCLIN'="" I '$D(^DIC(40.7,BPCCLIN,0)) S BPCERR=1,RESULT(1)=-1,RESULT(2)="CLINIC STOP SENT IS NOT DEFINED!" Q
  1. S BPCUSR=$P(BPCPARAM,BPCS1,14) I BPCUSR'="" I '$D(^VA(200,BPCUSR,0)) S BPCERR=1,RESULT(1)=-1,RESULT(2)="CREATED BY USER SENT IS NOT DEFINED!" Q
  1. S BPCCDAT=$P(BPCPARAM,BPCS1,15)
  1. I BPCCDAT'="" S X=BPCCDAT D ^%DT S BPCCDAT=$S(Y'=-1:$P(Y,".",1),1:"")
  1. I BPCCDAT="" S RESULT(1)=-1,RESULT(2)="DATE CREATED NOT IN PROPER FORMAT!",BPCERR=1 Q
  1. S BPCPRIOR=+$P(BPCPARAM,BPCS1,16) I BPCPRIOR<1!(BPCPRIOR>99) S BPCERR=1,RESULT(1)=-1,RESULT(2)="PRIORITY SENT IS NOT CORRECT!" Q
  1. S BPCSNDA=$P(BPCPARAM,BPCS1,17) I BPCSNDA'="" I "01"'[BPCSNDA S BPCSNDA=""
  1. S BPCEBDAT=$P(BPCPARAM,BPCS1,18) I BPCEBDAT'="" S X=BPCEBDAT D ^%DT S BPCEBDAT=$S(Y'=-1:$P(Y,".",1),1:"")
  1. S BPCEEDAT=$P(BPCPARAM,BPCS1,19) I BPCEEDAT'="" S X=BPCEEDAT D ^%DT S BPCEEDAT=$S(Y'=-1:$P(Y,".",1),1:"")
  1. S BPCLOS=$P(BPCPARAM,BPCS1,20),BPCNOVIS=$P(BPCPARAM,BPCS1,21)
  1. S BPCPURP=$P(BPCPARAM,BPCS1,22) I BPCPURP="" S BPCERR=1,RESULT(1)=-1,RESULT(2)="NO PURPOSE OF REFERRAL SENT!" Q
  1. S BPCSNOTE=$P(BPCPARAM,BPCS1,23),BPCWDAYS=$P(BPCPARAM,BPCS1,24),BPCLSCAT=$P(BPCPARAM,BPCS1,25),BPCHXS=$P(BPCPARAM,BPCS1,26)
  1. I BPCFLAG="E" S BPCREFN=$P(BPCPARAM,BPCS1,27),BPCRIEN=$P(BPCPARAM,BPCS1,31) I BPCRIEN="" S BPCERR=1,RESULT(1)=-1,RESULT(2)="NO REFERRAL IEN WAS SENT FOR THE EDIT!" Q
  1. S BPCDRG=$P(BPCPARAM,BPCS1,28),BPCDXS=$P(BPCPARAM,BPCS1,29),BPCPRCS=$P(BPCPARAM,BPCS1,30)
  1. Q
  1. EDIT ;
  1. S BPCERR=0
  1. D GETDATA Q:BPCERR
  1. I '$D(^BMCREF(BPCRIEN)) S BPCERR=1,RESULT(1)=-1,RESULT(2)="REFERRAL IEN SENT FOR EDIT IS INVALID!" Q
  1. D EDIT^BPCRC6
  1. Q
  1. DELETE ;
  1. Q