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

BCHUTIL.m

Go to the documentation of this file.
  1. BCHUTIL ; IHS/CMI/LAB - UTILITIES ;
  1. ;;2.0;IHS RPMS CHR SYSTEM;;OCT 23, 2012;Build 27
  1. ;
  1. XTMP(N,T) ;EP
  1. I $G(N)="" Q
  1. S ^XTMP(N,0)=$$FMADD^XLFDT(DT,14)_U_DT_U_T
  1. Q
  1. UNREQ ;EP - CALLED FROM SCREENMAN
  1. NEW BCHF
  1. F BCHF=3,4,5 D REQ^DDSUTL(BCHF,2,"ENTER CHR DATA",0)
  1. Q
  1. PPINI(REC) ;EP
  1. NEW X,Y,BCHX,BCHY,DIQ,DR,DA,BCHG,BCHINI
  1. S BCHY=$P(^BCHR(REC,0),U,3)
  1. I 'BCHY S BCHINI="???" Q BCHINI
  1. S DA=BCHY,DIC=200,DR=1,DIQ="BCHINI",DIQ(0)="I"
  1. D EN^DIQ1
  1. S BCHINI=$G(BCHINI(200,BCHY,1,"I"))
  1. S:BCHINI="" BCHINI="???"
  1. Q BCHINI
  1. PPNAME(REC) ;EP
  1. NEW X,Y,BCHX,BCHY,DIQ,DR,DA,BCHG,BCHNAME
  1. S BCHY=$P(^BCHR(REC,0),U,3)
  1. I '$D(BCHY) S BCHNAME="???" Q BCHNAME
  1. S BCHNAME=$P(^VA(200,BCHY,0),U)
  1. S:BCHNAME="" BCHNAME="???"
  1. Q BCHNAME
  1. PPINT(REC) ;
  1. NEW X,Y,BCHX,DIQ,DR,DA,BCHG,BCHY
  1. S BCHY=$P(^BCHR(REC,0),U,3)
  1. I '$D(BCHY) S BCHY="???" Q BCHY
  1. Q BCHY
  1. PPAFFL(REC,FORM) ;EP - get pp affiliation internal or external
  1. NEW X,Y,BCHX,BCHY,DIQ,DR,DA,BCHG,BCHAFFL
  1. S BCHY=$P(^BCHR(REC,0),U,3)
  1. I 'BCHY S BCHAFFL="?" Q BCHAFFL
  1. I '$D(^VA(200,BCHY)) S BCHAFFL="?" Q BCHAFFL
  1. S DA=BCHY,DIC=200,DR=9999999.01,DIQ="BCHAFFL" S:$G(FORM)="I" DIQ(0)="I"
  1. D EN^DIQ1
  1. S BCHAFFL=$S($G(FORM)="I":BCHAFFL(200,BCHY,9999999.01,"I"),1:BCHAFFL(200,BCHY,"9999999.01"))
  1. S:BCHAFFL="" BCHAFFL="?"
  1. Q BCHAFFL
  1. PPCLS(REC,FORM) ;EP
  1. NEW X,Y,BCHX,BCHY,DIQ,DR,DA,BCHG,BCHCLS
  1. S BCHY=$P(^BCHR(REC,0),U,3)
  1. I 'BCHY S BCHCLS="???" Q BCHCLS
  1. S DA=BCHY,DIC=200,DR=53.5,DIQ="BCHCLS" S:$G(FORM)="I" DIQ(0)="I"
  1. D EN^DIQ1
  1. S BCHCLS=$S($G(FORM)="I":$G(BCHCLS(200,BCHY,53.5,"I")),1:$G(BCHCLS(200,BCHY,"53.5")))
  1. S:BCHCLS="" BCHCLS="???"
  1. Q BCHCLS
  1. PPCLSC(REC) ;EP GET PRIMARY PROVIDER CLASS CODE
  1. NEW X,Y,CODE,DIC,DR,DA,DIQ,CLS
  1. S CLS=$$PPCLS^BCHUTIL(REC,"I")
  1. I CLS="???" S CODE="???" Q CODE
  1. S DIC=7,DR="9999999.01",DA=CLS,DIQ="CODE"
  1. D EN^DIQ1
  1. S CODE=CODE(7,CLS,"9999999.01")
  1. S:CODE="" CODE="???"
  1. Q CODE
  1. CALLDIE ;EP
  1. Q:'$D(DA)
  1. Q:'$D(DIE)
  1. Q:'$D(DR)
  1. D ^DIE
  1. K DIE,DIC,DR,DA,D0,D,D1,DO,%X,%Y,X,A,Z,DIU,DIV,DIY,DIW,DIADD,DLAYGO,%,%E,%D,%W,DI,DIFLD,DIG,DIH,DK,DL,DISYS
  1. Q
  1. PROVCLC(PROV) ;get provider class code
  1. NEW CODE,A
  1. S CODE=""
  1. I 'PROV Q CODE
  1. S A=$P($G(^VA(200,PROV,"PS")),U,5)
  1. I A="" Q CODE
  1. S CODE=$P($G(^DIC(7,A,9999999)),U)
  1. Q CODE
  1. CANNEDN() ;EP - return canned narrative
  1. NEW BCHX
  1. ;*****CALLED FROM SCREENMAN
  1. S BCHX=$$GET^DDSVAL(90002.01,.DA,.04,"","I") I BCHX,$P($G(^BCHTSERV(BCHX,0)),U,4) D HLP^DDSUTL("You must type in a narrative for those services that pass to PCC") Q ""
  1. I $$GET^DDSVAL(90002.01,.DA,.01,"","I")="" Q "<???>"
  1. I $$GET^DDSVAL(90002.01,.DA,.04,"","I")="" Q $P(^BCHTPROB($$GET^DDSVAL(90002.01,.DA,.01,"","I"),0),U)
  1. Q $E($P(^BCHTPROB($$GET^DDSVAL(90002.01,.DA,.01,"","I"),0),U)_":"_$P(^BCHTSERV($$GET^DDSVAL(90002.01,.DA,.04,"","I"),0),U),1,80)
  1. UPDPCC ;EP - called when pcc adds a visit
  1. Q:'$D(BCHEV) ;quit if not initiated by chr
  1. Q:'$G(BCHEV("CHR IEN")) ;quit if don't know chr record ien
  1. Q:'$D(BCHV) ;quit if no pcc data passed back
  1. S DIE="^BCHR(",DA=BCHEV("CHR IEN"),DR=".15////"_BCHV("VISIT","9000010") D CALLDIE
  1. K Y,DA,DR,DIE
  1. S BCHX=0 F S BCHX=$O(BCHV("VFILES",BCHX)) Q:BCHX'=+BCHX D
  1. .S BCHY=0 F S BCHY=$O(BCHV("VFILES",BCHX,BCHY)) Q:BCHY'=+BCHY D
  1. ..S DA=BCHEV("CHR IEN"),DR="3101///""`"_BCHX_"""",DIE="^BCHR("
  1. ..S DR(2,90002.03101)=".02////"_BCHY
  1. ..D CALLDIE
  1. ..K DIE,DA,DR,Y,X
  1. ..Q
  1. .Q
  1. K BCHX,BCHY
  1. Q
  1. NARRPOST ;EP
  1. NEW BCHX
  1. I BCHWTD="Y",X="" S BCHWTD="N"
  1. I BCHWTD="Y",X]"" S DDSBR=5 Q
  1. I X]"",BCHWTD="N" S DDACT="CL" Q
  1. S BCHX=X
  1. I BCHX="" S BCHX=$$CANNEDN^BCHUTIL() D:BCHX]"" PUT^DDSVAL(DIE,.DA,.06,BCHX,"","E")
  1. I BCHX="" S DDSBR=2
  1. ;S DDACT="CL"
  1. Q
  1. SC(Y) ;EP - called from input transform
  1. I $G(BCHPNP)=""!($G(BCHPNP)="N") Q 1
  1. I BCHPNP="P",$P(^BCHTSERV(Y,0),U,6) Q 1
  1. I BCHPNP="P",'$P(^BCHTSERV(Y,0),U,6) Q 0
  1. Q 1
  1. ;
  1. PR(Y) ;EP - called from input transform
  1. ;I $G(BCHPNP)=""!($G(BCHPNP)="N") Q 1
  1. I $G(BCHPNP)="P",$P(^BCHTPROB(Y,0),U,2)="AM" Q 0
  1. I $G(BCHPNP)="P",$P(^BCHTPROB(Y,0),U,2)="LT" Q 0
  1. Q 1
  1. CHKCF ;EP - called from screenman screen
  1. NEW Z
  1. S Z=$$GET^DDSVAL(DIE,DA,.01,,"I")
  1. S Z=$P(^BCHTPROB(Z,0),U,2)
  1. I Z="HB"!(Z="LP") D
  1. .Q:$P(^BCHTSERV(BCHSERV,0),U,3)="CF"
  1. .Q:$P(^BCHTSERV(BCHSERV,0),U,3)="IT"
  1. .D HLP^DDSUTL("For Problem Codes HB and LP you can only use a Service Code of CF or IT.") S BCHQ=1
  1. Q
  1. ;
  1. SETDEFNX(R) ;EP - called from screenman screen
  1. I '$G(R) Q ""
  1. NEW X,Y,G,Z
  1. S G=1
  1. I $G(BCHPNP)="P" Q 1
  1. I $G(BCHPNP)="N" Q 0
  1. S X=0 F S X=$O(^BCHRPROB("AD",R,X)) Q:X'=+X D
  1. .S Y=$P(^BCHRPROB(X,0),U,1)
  1. .I Y S Y=$P(^BCHTPROB(Y,0),U,2)
  1. .I Y="AM" S G=0 Q
  1. .I Y="LT" S G=0 Q
  1. .I Y["-" S G=0 Q
  1. .S Z=$$GET^DDSVAL(90002.01,X,.04,,"I")
  1. .I Z S Y=$P(^BCHTSERV(Z,0),U,3)
  1. .I Y="LT" S G=0 Q
  1. .I Y="AM" S G=0 Q
  1. .I Y="NF" S G=0 Q
  1. .I Y="OT" S G=0 Q
  1. .I Y="CD" S G=0 Q
  1. .Q
  1. Q G
  1. NR ;EP - unrequire .05,spec,city,state
  1. D REQ^DDSUTL("SPECIALTY",1,1.2,0)
  1. D REQ^DDSUTL("CITY",1,1.2,0)
  1. D REQ^DDSUTL("STATE",1,1.2,0)
  1. Q
  1. SERCS ;EP - require spec,city,state
  1. I X="" D
  1. .D REQ^DDSUTL("SPECIALTY",,,1)
  1. .D REQ^DDSUTL("CITY",,,1)
  1. .D REQ^DDSUTL("STATE",,,1)
  1. I X]"" D
  1. .D REQ^DDSUTL("SPECIALTY",,,0)
  1. .D REQ^DDSUTL("CITY",,,0)
  1. .D REQ^DDSUTL("STATE",,,0)
  1. Q
  1. SETDEFTT(R) ;EP - called from screenman screen
  1. I '$G(R) Q ""
  1. NEW X,Y,G,Z
  1. S G=""
  1. I $G(BCHPNP)="P" Q ""
  1. S X=0 F S X=$O(^BCHRPROB("AD",R,X)) Q:X'=+X D
  1. .S Y=$P(^BCHRPROB(X,0),U,1)
  1. .I Y S Y=$P(^BCHTPROB(Y,0),U,2)
  1. .;I Y="AM" S G=0 Q
  1. .I Y="LT" S G=0 Q
  1. .;I Y["-" S G=0 Q
  1. .S Z=$$GET^DDSVAL(90002.01,X,.04,,"I")
  1. .I Z S Y=$P(^BCHTSERV(Z,0),U,3)
  1. .I Y="LT" S G=0 Q
  1. .;I Y="AM" S G=0 Q
  1. .;I Y="NF" S G=0 Q
  1. .;I Y="OT" S G=0 Q
  1. .;I Y="CD" S G=0 Q
  1. .Q
  1. Q G
  1. SETDEFAL(R) ;EP - called from screenman screen
  1. I '$G(R) Q ""
  1. NEW X,Y,G,Z
  1. S G=""
  1. S X=0 F S X=$O(^BCHRPROB("AD",R,X)) Q:X'=+X D
  1. .S Y=$P(^BCHRPROB(X,0),U,1)
  1. .I Y S Y=$P(^BCHTPROB(Y,0),U,2)
  1. .;I Y="AM" S G=0 Q
  1. .I Y="LT" S G="NONE" Q
  1. .;I Y["-" S G=0 Q
  1. .S Z=$$GET^DDSVAL(90002.01,X,.04,,"I")
  1. .I Z S Y=$P(^BCHTSERV(Z,0),U,3)
  1. .I Y="LT" S G="NONE" Q
  1. .;I Y="AM" S G=0 Q
  1. .;I Y="NF" S G=0 Q
  1. .I Y="OT" S G="NONE" Q
  1. .Q
  1. I G]"" Q $O(^BCHTACTL("B",G,0))
  1. Q ""
  1. SETDEFNS ;
  1. NEW %
  1. S %=$$GET^DDSVAL("^BCHR(",BCHR,.12)
  1. ;I %]"" Q
  1. NEW G S G=$$SETDEFNX(BCHR)
  1. I G]"" D PUT^DDSVAL("^BCHR(",BCHR,.12,G,,"I")
  1. ;NOW SET DEFAULT ACTIVITY LOCATION
  1. NEW G S G=$$SETDEFAL(BCHR)
  1. I G]"" D PUT^DDSVAL("^BCHR(",BCHR,.06,G,,"E")
  1. ;NOW SET DEFAULT TRAVEL TIME
  1. S %=$$GET^DDSVAL("^BCHR(",BCHR,.11)
  1. ;I %]"" Q
  1. NEW G S G=$$SETDEFTT(BCHR)
  1. I G]"" D PUT^DDSVAL("^BCHR(",BCHR,.11,G,,"I")
  1. Q
  1. SETNAR ;EP
  1. Q:X=""
  1. D PUT^DDSVAL(DIE,.DA,.06,$P(^BCHTCNAR(X,0),U,1),"","E")
  1. Q
  1. SETDICS(PC,SC) ;EP
  1. NEW PCSC,SCE
  1. S SC=$G(SC)
  1. I SC S SCE=$P(^BCHTSERV(SC,0),U,3)
  1. S PC=$G(PC)
  1. I PC S PC=$P(^BCHTPROB(PC,0),U,2)
  1. S PCSC=PC_"-"_SCE
  1. I $D(^BCHTCNAR(Y,11,"B",SC))!($D(^BCHTSERV(Y,12,"B",PCSC))) Q 1
  1. Q 0
  1. GETNARRS(PC,SC) ;
  1. K BCHCOUNT,BCHCANNN
  1. K ^BCHRPROB(DA,81)
  1. NEW PCSC,SCE,C,X,PCN,V,N,Z,BCHO
  1. S SCE=""
  1. S C=0
  1. S SC=$G(SC)
  1. I 'SC Q
  1. I SC S SCE=$P(^BCHTSERV(SC,0),U,3)
  1. S PC=$G(PC)
  1. I 'PC Q
  1. S PCN=""
  1. I PC S PCN=$P(^BCHTPROB(PC,0),U,1),PC=$P(^BCHTPROB(PC,0),U,2)
  1. S PCSC=PC_"-"_SCE
  1. ;
  1. S O=0 F S O=$O(^BCHTCNAR("ACOMB",PCSC,O)) Q:O'=+O D
  1. .S X=0 F S X=$O(^BCHTCNAR("ACOMB",PCSC,O,X)) Q:X'=+X D
  1. ..I $G(BCHPNP)]"" Q:$P(^BCHTCNAR(X,0),U,2)'=BCHPNP
  1. ..I $G(BCHPNP)="" S V=$P(^BCHPROB(DA,0),U,3),N=$P(^BCHR(V,0),U,12) I N'=1,$P(^BCHTCNAR(X,0),U,2)'="N" Q
  1. ..I $G(BCHPNP)="" S V=$P(^BCHPROB(DA,0),U,3),N=$P(^BCHR(V,0),U,12) I N=1,$P(^BCHTCNAR(X,0),U,2)'="P" Q
  1. ..S Z=$$VAL^XBDIQ1(90002.59,X,.01)
  1. ..I Z["DX-" S Z=Z_PC ;$P(Z,"HPC",1)_PCN_$P(Z,"HPC",2)
  1. ..S C=C+1,BCHCANNN(O)=O_U_Z_""_U_X
  1. I $D(BCHCANNN) G SET
  1. ;NOW CHECK SC
  1. S O=0 F S O=$O(^BCHTCNAR("ASCO",SCE,O)) Q:O'=+O D
  1. .S X=0 F S X=$O(^BCHTCNAR("ASCO",SCE,O,X)) Q:X'=+X D
  1. ..I $G(BCHPNP)]"" Q:$P(^BCHTCNAR(X,0),U,2)'=BCHPNP
  1. ..I $G(BCHPNP)="" S V=$P(^BCHPROB(DA,0),U,3),N=$P(^BCHR(V,0),U,12) I N'=1,$P(^BCHTCNAR(X,0),U,2)'="N" Q
  1. ..I $G(BCHPNP)="" S V=$P(^BCHPROB(DA,0),U,3),N=$P(^BCHR(V,0),U,12) I N=1,$P(^BCHTCNAR(X,0),U,2)'="P" Q
  1. ..S Z=$$VAL^XBDIQ1(90002.59,X,.01)
  1. ..I Z["DX-" S Z=Z_PC
  1. ..S C=C+1,BCHCANNN(O)=O_U_Z_""_U_X
  1. I $D(BCHCANNN) D SET
  1. Q
  1. SET ;
  1. NEW X,C,Y
  1. S Y=0
  1. S C=0 F S C=$O(BCHCANNN(C)) Q:C'=+C D
  1. .S ^BCHRPROB(DA,81,$P(BCHCANNN(C),U,1),0)=$P(BCHCANNN(C),U,1)_U_$P(BCHCANNN(C),U,2)
  1. .S ^BCHRPROB(DA,81,"B",$P(BCHCANNN(C),U,1),$P(BCHCANNN(C),U,1))=""
  1. .S ^BCHRPROB(DA,81,0)="^90002.0181A^"_$P(BCHCANNN(C),U,1)_"^"_C
  1. .S Y=Y+1
  1. .S BCHCOUNT=Y
  1. Q
  1. N1 ;
  1. I $G(BCHCANNN(1))="" S Y="" Q
  1. S Y=$P($G(BCHCANNN(1)),U,1)_". "_$P($G(BCHCANNN(1)),U,2)
  1. Q
  1. N2 ;
  1. I $G(BCHCANNN(2))="" S Y="" Q
  1. S Y=$P($G(BCHCANNN(2)),U,1)_". "_$P($G(BCHCANNN(2)),U,2)
  1. Q
  1. N3 ;
  1. I $G(BCHCANNN(3))="" S Y="" Q
  1. S Y=$P($G(BCHCANNN(3)),U,1)_". "_$P($G(BCHCANNN(3)),U,2)
  1. Q
  1. N4 ;
  1. I $G(BCHCANNN(4))="" S Y="" Q
  1. S Y=$P($G(BCHCANNN(4)),U,1)_". "_$P($G(BCHCANNN(4)),U,2)
  1. Q
  1. N5 ;
  1. I $G(BCHCANNN(5))="" S Y="" Q
  1. S Y=$P($G(BCHCANNN(5)),U,1)_". "_$P($G(BCHCANNN(5)),U,2)
  1. Q
  1. N6 ;
  1. I $G(BCHCANNN(6))="" S Y="" Q
  1. S Y=$P($G(BCHCANNN(6)),U,1)_". "_$P($G(BCHCANNN(6)),U,2)
  1. Q
  1. SETCNAR ;EP - called from canned narrative block
  1. NEW BCHX,BCHY,BCHZ
  1. S BCHY=""
  1. S BCHX=0 F S BCHX=$O(^BCHRPROB(DA(1),92,BCHX)) Q:BCHX'=+BCHX D
  1. .I BCHY]"" S BCHY=BCHY_". "
  1. .S BCHY=BCHY_$P($G(BCHCANNN($P(^BCHRPROB(DA(1),92,BCHX,0),U,1))),U,2)
  1. I BCHY]"" S BCHY=BCHY_"" D PUT^DDSVAL(90002.01,DA(1),.06,$E(BCHY,1,158),,"E")
  1. Q
  1. NARRPRE ;EP
  1. I BCHWTD="Y",$$GET^DDSVAL(DIE,DA,.06,,"I")]"" S DDSBR=5 Q
  1. D HLP^DDSUTL("For services PC, HE, CF, CM, MP, EC and HS you must type a narrative.")
  1. Q
  1. ADDNARR ;EP
  1. NEW BCHX,BCHY
  1. I X="" Q
  1. S BCHX=$$GET^DDSVAL(DIE,DA,.06,,"E")
  1. S BCHY=$$GET^DDSVAL(DIE,DA,1101,,"E")
  1. S BCHX=BCHX_" "_BCHY
  1. D PUT^DDSVAL(DIE,DA,.06,BCHX,,"E")
  1. D PUT^DDSVAL(DIE,DA,1101,"",,"I")
  1. Q
  1. GETNARRG(PC,SC) ;
  1. K BCHCOUNT,BCHCANNN
  1. K ^BCHRGAS(DA,81)
  1. NEW PCSC,SCE,C,X,PCN,V,N,Z
  1. S C=0
  1. S SC=$G(SC)
  1. I 'SC Q
  1. S SCE=""
  1. I SC S SCE=$P(^BCHTSERV(SC,0),U,3)
  1. S PC=$G(PC)
  1. I 'PC Q
  1. S PCN=""
  1. I PC S PCN=$P(^BCHTPROB(PC,0),U,1),PC=$P(^BCHTPROB(PC,0),U,2)
  1. S PCSC=PC_"-"_SCE
  1. ;
  1. S O=0 F S O=$O(^BCHTCNAR("ACOMB",PCSC,O)) Q:O'=+O D
  1. .S X=0 F S X=$O(^BCHTCNAR("ACOMB",PCSC,O,X)) Q:X'=+X D
  1. ..Q:$P(^BCHTCNAR(X,0),U,2)'="G"
  1. ..S Z=$$VAL^XBDIQ1(90002.59,X,.01)
  1. ..I Z["DX-" S Z=Z_PC ;_$P(Z,"HPC",2)
  1. ..S C=C+1,BCHCANNN(O)=O_U_Z_""_U_X
  1. I $D(BCHCANNN) G SETG
  1. ;NOW CHECK SC
  1. S O=0 F S O=$O(^BCHTCNAR("ASCO",SCE,O)) Q:O'=+O D
  1. .S X=0 F S X=$O(^BCHTCNAR("ASCO",SCE,O,X)) Q:X'=+X D
  1. ..Q:$P(^BCHTCNAR(X,0),U,2)'="G"
  1. ..S C=C+1,BCHCANNN(O)=O_U_$$VAL^XBDIQ1(90002.59,X,.01)_""_U_X
  1. I $D(BCHCANNN) D SETG
  1. Q
  1. SETG ;
  1. NEW X,C,Y
  1. S Y=0
  1. S C=0 F S C=$O(BCHCANNN(C)) Q:C'=+C D
  1. .S ^BCHRGAS(DA,81,C,0)=C_U_$P(BCHCANNN(C),U,2)
  1. .S ^BCHRGAS(DA,81,"B",C,C)=""
  1. .S ^BCHRGAS(DA,81,0)="^90002.9881A^"_C_"^"_C
  1. .S Y=Y+1
  1. .S BCHCOUNT=Y
  1. Q
  1. ;
  1. NARRPREG ;EP
  1. I BCHWTD="Y",$$GET^DDSVAL(DIE,DA,.06,,"I")]"" S DDSBR=5 Q
  1. D HLP^DDSUTL("For services PC, HE, CF, CM, MP, EC and HS you must type a narrative.")
  1. Q
  1. ;
  1. NARRPOSG ;EP
  1. NEW BCHX
  1. I BCHWTD="Y",X="" S BCHWTD="N"
  1. I BCHWTD="Y",X]"" S DDSBR=5 Q
  1. I X]"",BCHWTD="N" S DDACT="CL" Q
  1. S BCHX=X
  1. I BCHX="" S BCHX=$$CANNEDNG^BCHUTIL() D:BCHX]"" PUT^DDSVAL(DIE,.DA,.06,BCHX,"","E")
  1. I BCHX="" S DDSBR=2
  1. ;S DDACT="CL"
  1. Q
  1. ;
  1. CANNEDNG() ;EP - return canned narrative
  1. NEW BCHX
  1. ;*****CALLED FROM SCREENMAN
  1. S BCHX=$$GET^DDSVAL(90002.98,.DA,.04,"","I") I BCHX,$P($G(^BCHTSERV(BCHX,0)),U,4) D HLP^DDSUTL("You must type in a narrative for those services that pass to PCC") Q ""
  1. I $$GET^DDSVAL(90002.98,.DA,.01,"","I")="" Q "<???>"
  1. I $$GET^DDSVAL(90002.98,.DA,.04,"","I")="" Q $P(^BCHTPROB($$GET^DDSVAL(90002.01,.DA,.01,"","I"),0),U)
  1. Q $E($P(^BCHTPROB($$GET^DDSVAL(90002.98,.DA,.01,"","I"),0),U)_":"_$P(^BCHTSERV($$GET^DDSVAL(90002.98,.DA,.04,"","I"),0),U),1,80)
  1. ;
  1. ADDNARRG ;EP
  1. NEW BCHX,BCHY
  1. I X="" Q
  1. S BCHX=$$GET^DDSVAL(DIE,DA,.06,,"E")
  1. S BCHY=$$GET^DDSVAL(DIE,DA,1101,,"E")
  1. S BCHX=BCHX_" "_BCHY
  1. D PUT^DDSVAL(DIE,DA,.06,BCHX,,"E")
  1. D PUT^DDSVAL(DIE,DA,1101,"",,"I")
  1. Q
  1. SETGNAR ;EP - called from canned narrative block
  1. NEW BCHX,BCHY,BCHZ
  1. S BCHY=""
  1. S BCHX=0 F S BCHX=$O(^BCHRGAS(DA(1),92,BCHX)) Q:BCHX'=+BCHX D
  1. .I BCHY]"" S BCHY=BCHY_". "
  1. .S BCHY=BCHY_$P($G(BCHCANNN($P(^BCHRGAS(DA(1),92,BCHX,0),U,1))),U,2)
  1. I BCHY]"" S BCHY=BCHY_"" D PUT^DDSVAL(90002.98,DA(1),.06,$E(BCHY,1,158),,"E")
  1. Q
  1. HELPREF ;EP - called from dd field 8902
  1. NEW BCHX,BCHY,BCHZ
  1. D EN^DDIOL("Enter a list of Referral Types separated by commas. You can")
  1. D EN^DDIOL("enter the numbers or the name of the referral type in the list.")
  1. D EN^DDIOL("Examples: 1,5 or 3 or MEDICAL,NURSING or MD,NR ")
  1. S BCHX="" F S BCHX=$O(^BCHTREF("C",BCHX)) Q:BCHX="" D
  1. .S BCHY=$O(^BCHTREF("C",BCHX,0))
  1. .S BCHZ=$$VAL^XBDIQ1(90002.52,BCHY,.01),$E(BCHZ,25)=$$VAL^XBDIQ1(90002.52,BCHY,.02),$E(BCHZ,30)=$$VAL^XBDIQ1(90002.52,BCHY,.03)
  1. .D EN^DDIOL(BCHZ)
  1. .Q
  1. Q
  1. REFIT ;EP
  1. NEW A,B,C,D,E,F,S
  1. ;input transform for referral range
  1. I X?1N,$D(^BCHTREF("C",X)) Q
  1. I X?1A.E D FTR Q
  1. ;GET THE COMMA PIECES
  1. ;STRIP SPACES
  1. S S=X
  1. S (S,X)=$$STRIP^XLFSTR(X," ")
  1. F A=1:1 S B=$P(S,",",A) Q:B=""!('$D(X)) D
  1. .I '$D(^BCHTREF("C",B)) K X Q
  1. Q
  1. FTR ;
  1. ;PARSE AND CHECK EACH ELEMENT
  1. ;GET THE COMMA PIECES
  1. ;STRIP SPACES
  1. S S=X
  1. S (S,C)=X ;$$STRIP^XLFSTR(X,", ")
  1. F A=1:1 S B=$P(S,",",A) Q:B=""!('$D(C)) D
  1. .S B=$$SB(B) S X=B,DIC="^BCHTREF(",DIC(0)="M" D ^DIC I Y=-1 K C Q
  1. I '$D(C) K X Q
  1. S X=S
  1. Q
  1. SB(X) ;EP - Strip leading and trailing blanks from X.
  1. X ^DD("FUNC",$O(^DD("FUNC","B","STRIPBLANKS",0)),1)
  1. Q X
  1. FILEREF ;EP
  1. K ^BCHR(BCHR,BCHNODE)
  1. NEW BCHX,BCHY,BCHA,BCHB,BCHC,BCHS,BCHFULL
  1. S BCHFULL=""
  1. ;input transform for referral range
  1. S BCHC=0
  1. I X?1N,$D(^BCHTREF("C",X)) S BCHX=$O(^BCHTREF("C",X,0)) D SETREF D REFRESH^DDSUTL Q
  1. I X?1A.E D FTRREF D REFRESH^DDSUTL Q
  1. ;GET THE COMMA PIECES
  1. ;STRIP SPACES
  1. S BCHS=X
  1. S (BCHS)=$$STRIP^XLFSTR(X," ")
  1. F BCHA=1:1 S BCHB=$P(BCHS,",",BCHA) Q:BCHB="" D
  1. .S BCHX=$O(^BCHTREF("C",BCHB,0)) D SETREF
  1. D REFRESH^DDSUTL
  1. Q
  1. FTRREF ;
  1. ;PARSE AND CHECK EACH ELEMENT
  1. ;GET THE COMMA PIECES
  1. ;STRIP SPACES
  1. S BCHY=X
  1. NEW X,Y
  1. F BCHA=1:1 S BCHB=$P(BCHY,",",BCHA) Q:BCHB="" D
  1. .S BCHB=$$SB(BCHB) S X=BCHB,DIC="^BCHTREF(",DIC(0)="M" D ^DIC I Y=-1 Q
  1. .S BCHX=+Y D SETREF
  1. Q
  1. SETREF ;
  1. SET1 ;
  1. S BCHC=BCHC+1
  1. S ^BCHR(BCHR,BCHNODE,BCHC,0)=BCHX
  1. S ^BCHR(BCHR,BCHNODE,"B",BCHX,BCHC)=""
  1. S ^BCHR(BCHR,BCHNODE,0)="^90002.1"_BCHNODE_"PA^"_BCHC_"^"_BCHC
  1. I BCHFULL]"" S BCHFULL=BCHFULL_", "
  1. S BCHFULL=BCHFULL_$P(^BCHTREF(BCHX,0),U,1)
  1. ;S $P(^BCHR(BCHR,86),U,$S(BCHNODE=41:1,1:2))=BCHFULL
  1. S F=$S(BCHNODE=41:8601,1:8602)
  1. D PUT^DDSVAL("^BCHR(",BCHR,F,BCHFULL,,"E")
  1. Q