- BMCADDS ;IHS/ITSC/FCJ - ADD SECONDARY REFERRAL; [ 09/27/2006 1:31 PM ]
- ;;4.0;REFERRED CARE INFO SYSTEM;**1,2,3,8,12**;JAN 09, 2006;Build 101
- ;
- ; 4.0 ADD THE BMCMODE VAR AND CALLIN OPTION
- ; 4.0*1 IHS/OIT/FCJ SP BAR VAR
- ; 4.0*2 IHS/OIT/FCJ ADDED EP FOR API ROUTINE
- ; 4.0*2 8/15/06 IHS/OIT/FCJ ADDED AUTO POP POV
- ; 4.0*3 8.13.07 IHS.OIT.FCJ ADD BO/CHS COMMENTS
- ; 4.0*12 9.12.17 IHS.OIT.FCJ ADDED CALL IN NOTIFICATION
- ;
- ; See ^BMCVDOC for system wide variables set by main menu
- ; Subscripted BMCREC is EXTERNAL form.
- ; BMCREC("PAT NAME")=patient name
- ; BMCREC("REF DATE")=referral date
- ; BMCDFN=patient ien
- ; BMCRDATE=referral date in internal FileMan form
- ; BMCRNUMB=referral number
- ; BMCRIEN=referral ien
- ; BMCSRIEN=Secondary referral ien
- ; BMCMODE=A for add, M for modify
- ; BMCRSTAT=referral status (.15 field)
- ; BMCRTYPE=type of referral (.04 field)
- ; BMCRIO=Inpatient or Outpatient (.14 field)
- ; BMCVCT=Vist count
- ; BMCCURFY=Restrict access to current fiscal year only
- ;
- START ;
- D:'$D(BMCPARM) PARMCHK^BMC
- F D MAIN Q:BMCQ D HDR^BMC
- G EXIT
- Q
- ;
- MAIN ;
- S BMCQ=0,BMCMODE="A",BMCSTRM="",BMCPROV="" ;BMC*4.0*8 ADDED BMCSTRM
- D GETREF ; Select Prim referral
- Q:BMCQ
- D CALLIN Q:BMCQ
- D ADD Q:BMCQ ;ADD NEW SEC REF
- I BMCPCC,'$G(BMCOUTR),'BMCCAL S BMCIEN=BMCRIEN,BMCRIEN=BMCSRIEN D DSPV^BMCADDP S BMCRIEN=BMCIEN I BMCQ D DELETE Q ;BMC*4.0*8 TEST FOR PCC LINK AND GO TO REQUIRE A VST
- D EDIT I BMCQ D DELETE Q
- I BMCPCC,'$G(BMCCAL) S BMCIEN=BMCRIEN,BMCRIEN=BMCSRIEN D ADDVREF^BMCADD S BMCRIEN=BMCIEN ;BMC*4.0*8 Add to V Ref file
- D MEDHX
- D SBCOM ;BMC*4.0*3 8.13.07 IHS.OIT.FCJ ADD BO/CHS COMMENTS
- Q
- ;
- GETREF ;Screens out closed Referrals
- S BMCQ=1
- W !
- I $G(BMCRIEN) S DA=BMCRIEN
- ;S DIC="^BMCREF(",DIC("S")="I $$FILTER^BMCFLTR(0,BMCCURFY)",DIC(0)="AEMQ",DIC("A")="Select REFERRAL by Patient or by Referral Date or #: "
- S DIC="^BMCREF(",DIC(0)="AEMQ",DIC("A")="Select REFERRAL by Patient or by Referral Date or #: "
- ;S DIC("S")="I $$FILTER^BMCFLTR(0,BMCCURFY,0)"
- ;S DIC("S")="I $$FILTER^BMCFLTR(0,0,0)"
- S DIC("S")="I $$FILTER^BMCFLTR(3,0,0)" ;*9 ALLOW CLOSED REF
- D DIC^BMCFMC
- Q:Y<1
- S BMCRIEN=+Y
- S BMCREC=^BMCREF(BMCRIEN,0)
- S BMCQ=0
- Q
- CALLIN ;EP;TEST FOR CALL-IN REF
- S BMCCAL=0
- S DIR(0)="Y",DIR("A")="Is this a Call-in Secondary Referral",DIR("B")="NO"
- D ^DIR K DIR
- ;S:Y=1 BMCCAL=1
- I Y=1 S BMCCAL=1 D CALLIN^BMCADD ;BMC*4.0*12
- I $D(DUOUT) S BMCQ=1
- Q
- ;
- ADD ;EP;FIND SUFFIX
- S (Y1,Y2,Y3)=0
- I '$D(^BMCREF("S",BMCRNUMB)) S Y1=0
- E S Y="" F S Y=$O(^BMCREF("S",BMCRNUMB,Y)) Q:Y="" D
- .S Y3=$E(Y,2,$L(Y)),Y2=Y2+1
- .S:Y3>Y1 Y1=Y3
- S Y1=Y1+1,Y2=Y2+1,BMCSUF="A"_Y1
- ;VISTS REMAINING
- S BMCVCT=($P(^BMCREF(BMCRIEN,11),U,11)-Y2)
- S:BMCVCT<0 BMCVCT=0
- ;ADD SECONDARY REF ENTRY
- D ^XBFMK K DIADD,DINUM
- S X=DT,DIC="^BMCREF(",DIC(0)="L",DLAYGO=90001
- ;BMC*4.0*8 SPLIT NXT LINE AND ADDED TOC STATUS FIELD 1304
- S BMCPROV=$P(BMCREC,U,6)
- S DIC("DR")=".02////"_BMCRNUMB_";.03////"_BMCDFN_";.04////"_BMCRTYPE_";.25////"_DUZ_";1304////P"
- S DIC("DR")=DIC("DR")_";101////"_BMCSUF_";102////"_BMCRIEN_";1111////"_BMCVCT
- S DIC("DR")=DIC("DR")_";.11////"_$P(BMCREC,U,11)_";.14////"_$P(BMCREC,U,14)_";.15////A"_";.26////"_DT_";.32////"_$P(BMCREC,U,32)
- I BMCCAL=0 S DIC("DR")=DIC("DR")_";.06////"_$P(BMCREC,U,6)
- E S DIC("DR")=DIC("DR")_";103////"_BMCCDT_";104////"_BMCCBY ;BMC*4.0*12 OIT/IHS/FCJ CALL DATE AND BY
- ;BMC 4.0*2 8/15/06 IHS/OIT/FCJ ADDED NXT LINE TO AUTO POP POV 1.26.07 ADD $TR TO STR BECAUSE OF FM
- I $P($G(^BMCPARM(DUZ(2),4100)),U,6)="Y" S DIC("DR")=DIC("DR")_";1201////"_$TR($P(^BMCREF(BMCRIEN,12),U),";"," ")
- K DD,DO D FILE^DICN S BMCSRIEN=+Y D ^XBFMK K DIADD,DINUM
- Q ;BMC*4.0*8 ADDED TO ADD CALL FOR VISIT
- EDIT ; EDIT REFERRAL RECORD JUST ADDED
- S DDSFILE=90001,DA=BMCSRIEN,DDSPARM="C"
- S DR=$S(BMCCAL=1:"[BMC SEC REF ADD CI]",1:"[BMC SEC REF ADD]")
- D DDS^BMCFMC
- I '$G(DDSCHANG) D DELETE S BMCQ=1 Q
- S X=$S(BMCRTYPE="I":$P(^BMCREF(BMCSRIEN,0),U,8),BMCRTYPE="N":$P(^BMCREF(BMCSRIEN,0),U,23),1:$P(^BMCREF(BMCSRIEN,0),U,7))
- I 'X W !,"You must enter a Vendor or IHS Facility, depending on the Referral type.",! D PAUSE^BMC G EDIT
- Q
- ;
- DELETE ; DELETE REFERRAL JUST ADDED BECAUSE OPERATOR DIDN'T FINISH
- W !!,"INCOMPLETE SECONDARY REFERRAL...BEING DELETED!",!!
- S DIK="^BMCREF(",DA=BMCSRIEN D ^DIK
- D PAUSE^BMC
- Q
- MEDHX ;EP;DISPLAY MED HX COMMENTS IF ANY AND ADD NEW COMMENTS TO SEC REF
- S BMCV="COM",BMCTERM="Medical HX/Findings Comments",BMCATEMP="[BMC COMMENTS ADD]",BMCG="^BMCCOM(",BMCETEMP="[BMC COMMENTS EDIT]"
- ;BMC*4.0*3 12.14.07 IHS.OIT.FCJ ADDED S BMCRIEN IN NXT LINE
- S BMCCTYP="M",BMCRIEN=$P(^BMCREF(BMCSRIEN,1),U,2)
- W @IOF,!,$$CTR^BMC("MEDICAL COMMENTS FROM PRIMARY REFERRAL",80)
- W !,$$CTR^BMC("REFERRAL: "_BMCRNUMB_" PATIENT: "_BMCREC("PAT NAME"),80),!
- F I=1:1:80 W "-"
- S BMCNONE=0 D DISPCOM^BMCMOD1
- I BMCNONE=1 W !,"THERE ARE NOT ANY MEDICAL COMMENTS FROM PRIMARY REFERRAL TO DISPLAY...",!
- W ! F I=1:1:80 W "-"
- W !,"Enter Comments for Secondary Referral..."
- MEDCOM ;ADD MED HX COMMENTS
- W !
- S DIR("A")="Do you want to enter Medical History and Findings Comments"
- S BMCCTYP="M"
- S BMCTMPS=BMCSRIEN,BMCTMP=BMCRIEN,BMCRIEN=BMCSRIEN
- D COMMENTS^BMCADD
- S BMCRIEN=BMCTMP,BMCSRIEN=BMCTMPS
- Q
- ;
- SBCOM ;ADD BO/CHS COMMENTS ;BMC*4.0*3 8.13.07 IHS.OIT.FCJ ADD BO/CHS COMMENTS
- S BMCV="COM",BMCTERM="Business Office/CHS Comments",BMCATEMP="[BMC COMMENTS ADD]",BMCG="^BMCCOM(",BMCETEMP="[BMC COMMENTS EDIT]"
- S BMCCTYP="S"
- S BMCTMPS=BMCSRIEN,BMCTMP=BMCRIEN,BMCRIEN=BMCSRIEN
- D ASK^BMCMOD
- S BMCRIEN=BMCTMP,BMCSRIEN=BMCTMPS
- ;
- RECORD ;RECORD SECONDARY REFERRAL
- W !!,"Secondary Referral has been completed, "_BMCRNUMB_BMCSUF,!
- D PAUSE^BMC
- S ^DISV(DUZ,"^BMCREF(")=$P(^BMCREF(BMCSRIEN,1),U,2) ;BMC*4.0*1 IHS/OIT/FCJ SP BAR VAR
- Q
- ;
- BUSINESS ; EDIT BUSINESS OFFICE COMMENTS
- D 80^BMCMOD
- Q
- EXIT ;EXIT PROGRAM
- D ^BMCKILL
- K DDSCHANG,DDSPARM,DILN,DISYS,DIWI,DIWTC,DIWX,DIC,DIE,DA,Y,Y1,Y2,W1
- K BMCMODE,BMCRSTAT,BMCRIEN,BMCSUF,BMCVCT,BMCTMP,BMCTMPS,BMCCAL
- Q
- BMCADDS ;IHS/ITSC/FCJ - ADD SECONDARY REFERRAL; [ 09/27/2006 1:31 PM ]
- +1 ;;4.0;REFERRED CARE INFO SYSTEM;**1,2,3,8,12**;JAN 09, 2006;Build 101
- +2 ;
- +3 ; 4.0 ADD THE BMCMODE VAR AND CALLIN OPTION
- +4 ; 4.0*1 IHS/OIT/FCJ SP BAR VAR
- +5 ; 4.0*2 IHS/OIT/FCJ ADDED EP FOR API ROUTINE
- +6 ; 4.0*2 8/15/06 IHS/OIT/FCJ ADDED AUTO POP POV
- +7 ; 4.0*3 8.13.07 IHS.OIT.FCJ ADD BO/CHS COMMENTS
- +8 ; 4.0*12 9.12.17 IHS.OIT.FCJ ADDED CALL IN NOTIFICATION
- +9 ;
- +10 ; See ^BMCVDOC for system wide variables set by main menu
- +11 ; Subscripted BMCREC is EXTERNAL form.
- +12 ; BMCREC("PAT NAME")=patient name
- +13 ; BMCREC("REF DATE")=referral date
- +14 ; BMCDFN=patient ien
- +15 ; BMCRDATE=referral date in internal FileMan form
- +16 ; BMCRNUMB=referral number
- +17 ; BMCRIEN=referral ien
- +18 ; BMCSRIEN=Secondary referral ien
- +19 ; BMCMODE=A for add, M for modify
- +20 ; BMCRSTAT=referral status (.15 field)
- +21 ; BMCRTYPE=type of referral (.04 field)
- +22 ; BMCRIO=Inpatient or Outpatient (.14 field)
- +23 ; BMCVCT=Vist count
- +24 ; BMCCURFY=Restrict access to current fiscal year only
- +25 ;
- START ;
- +1 IF '$DATA(BMCPARM)
- DO PARMCHK^BMC
- +2 FOR
- DO MAIN
- IF BMCQ
- QUIT
- DO HDR^BMC
- +3 GOTO EXIT
- +4 QUIT
- +5 ;
- MAIN ;
- +1 ;BMC*4.0*8 ADDED BMCSTRM
- SET BMCQ=0
- SET BMCMODE="A"
- SET BMCSTRM=""
- SET BMCPROV=""
- +2 ; Select Prim referral
- DO GETREF
- +3 IF BMCQ
- QUIT
- +4 DO CALLIN
- IF BMCQ
- QUIT
- +5 ;ADD NEW SEC REF
- DO ADD
- IF BMCQ
- QUIT
- +6 ;BMC*4.0*8 TEST FOR PCC LINK AND GO TO REQUIRE A VST
- IF BMCPCC
- IF '$GET(BMCOUTR)
- IF 'BMCCAL
- SET BMCIEN=BMCRIEN
- SET BMCRIEN=BMCSRIEN
- DO DSPV^BMCADDP
- SET BMCRIEN=BMCIEN
- IF BMCQ
- DO DELETE
- QUIT
- +7 DO EDIT
- IF BMCQ
- DO DELETE
- QUIT
- +8 ;BMC*4.0*8 Add to V Ref file
- IF BMCPCC
- IF '$GET(BMCCAL)
- SET BMCIEN=BMCRIEN
- SET BMCRIEN=BMCSRIEN
- DO ADDVREF^BMCADD
- SET BMCRIEN=BMCIEN
- +9 DO MEDHX
- +10 ;BMC*4.0*3 8.13.07 IHS.OIT.FCJ ADD BO/CHS COMMENTS
- DO SBCOM
- +11 QUIT
- +12 ;
- GETREF ;Screens out closed Referrals
- +1 SET BMCQ=1
- +2 WRITE !
- +3 IF $GET(BMCRIEN)
- SET DA=BMCRIEN
- +4 ;S DIC="^BMCREF(",DIC("S")="I $$FILTER^BMCFLTR(0,BMCCURFY)",DIC(0)="AEMQ",DIC("A")="Select REFERRAL by Patient or by Referral Date or #: "
- +5 SET DIC="^BMCREF("
- SET DIC(0)="AEMQ"
- SET DIC("A")="Select REFERRAL by Patient or by Referral Date or #: "
- +6 ;S DIC("S")="I $$FILTER^BMCFLTR(0,BMCCURFY,0)"
- +7 ;S DIC("S")="I $$FILTER^BMCFLTR(0,0,0)"
- +8 ;*9 ALLOW CLOSED REF
- SET DIC("S")="I $$FILTER^BMCFLTR(3,0,0)"
- +9 DO DIC^BMCFMC
- +10 IF Y<1
- QUIT
- +11 SET BMCRIEN=+Y
- +12 SET BMCREC=^BMCREF(BMCRIEN,0)
- +13 SET BMCQ=0
- +14 QUIT
- CALLIN ;EP;TEST FOR CALL-IN REF
- +1 SET BMCCAL=0
- +2 SET DIR(0)="Y"
- SET DIR("A")="Is this a Call-in Secondary Referral"
- SET DIR("B")="NO"
- +3 DO ^DIR
- KILL DIR
- +4 ;S:Y=1 BMCCAL=1
- +5 ;BMC*4.0*12
- IF Y=1
- SET BMCCAL=1
- DO CALLIN^BMCADD
- +6 IF $DATA(DUOUT)
- SET BMCQ=1
- +7 QUIT
- +8 ;
- ADD ;EP;FIND SUFFIX
- +1 SET (Y1,Y2,Y3)=0
- +2 IF '$DATA(^BMCREF("S",BMCRNUMB))
- SET Y1=0
- +3 IF '$TEST
- SET Y=""
- FOR
- SET Y=$ORDER(^BMCREF("S",BMCRNUMB,Y))
- IF Y=""
- QUIT
- Begin DoDot:1
- +4 SET Y3=$EXTRACT(Y,2,$LENGTH(Y))
- SET Y2=Y2+1
- +5 IF Y3>Y1
- SET Y1=Y3
- End DoDot:1
- +6 SET Y1=Y1+1
- SET Y2=Y2+1
- SET BMCSUF="A"_Y1
- +7 ;VISTS REMAINING
- +8 SET BMCVCT=($PIECE(^BMCREF(BMCRIEN,11),U,11)-Y2)
- +9 IF BMCVCT<0
- SET BMCVCT=0
- +10 ;ADD SECONDARY REF ENTRY
- +11 DO ^XBFMK
- KILL DIADD,DINUM
- +12 SET X=DT
- SET DIC="^BMCREF("
- SET DIC(0)="L"
- SET DLAYGO=90001
- +13 ;BMC*4.0*8 SPLIT NXT LINE AND ADDED TOC STATUS FIELD 1304
- +14 SET BMCPROV=$PIECE(BMCREC,U,6)
- +15 SET DIC("DR")=".02////"_BMCRNUMB_";.03////"_BMCDFN_";.04////"_BMCRTYPE_";.25////"_DUZ_";1304////P"
- +16 SET DIC("DR")=DIC("DR")_";101////"_BMCSUF_";102////"_BMCRIEN_";1111////"_BMCVCT
- +17 SET DIC("DR")=DIC("DR")_";.11////"_$PIECE(BMCREC,U,11)_";.14////"_$PIECE(BMCREC,U,14)_";.15////A"_";.26////"_DT_";.32////"_$PIECE(BMCREC,U,32)
- +18 IF BMCCAL=0
- SET DIC("DR")=DIC("DR")_";.06////"_$PIECE(BMCREC,U,6)
- +19 ;BMC*4.0*12 OIT/IHS/FCJ CALL DATE AND BY
- IF '$TEST
- SET DIC("DR")=DIC("DR")_";103////"_BMCCDT_";104////"_BMCCBY
- +20 ;BMC 4.0*2 8/15/06 IHS/OIT/FCJ ADDED NXT LINE TO AUTO POP POV 1.26.07 ADD $TR TO STR BECAUSE OF FM
- +21 IF $PIECE($GET(^BMCPARM(DUZ(2),4100)),U,6)="Y"
- SET DIC("DR")=DIC("DR")_";1201////"_$TRANSLATE($PIECE(^BMCREF(BMCRIEN,12),U),";"," ")
- +22 KILL DD,DO
- DO FILE^DICN
- SET BMCSRIEN=+Y
- DO ^XBFMK
- KILL DIADD,DINUM
- +23 ;BMC*4.0*8 ADDED TO ADD CALL FOR VISIT
- QUIT
- EDIT ; EDIT REFERRAL RECORD JUST ADDED
- +1 SET DDSFILE=90001
- SET DA=BMCSRIEN
- SET DDSPARM="C"
- +2 SET DR=$SELECT(BMCCAL=1:"[BMC SEC REF ADD CI]",1:"[BMC SEC REF ADD]")
- +3 DO DDS^BMCFMC
- +4 IF '$GET(DDSCHANG)
- DO DELETE
- SET BMCQ=1
- QUIT
- +5 SET X=$SELECT(BMCRTYPE="I":$PIECE(^BMCREF(BMCSRIEN,0),U,8),BMCRTYPE="N":$PIECE(^BMCREF(BMCSRIEN,0),U,23),1:$PIECE(^BMCREF(BMCSRIEN,0),U,7))
- +6 IF 'X
- WRITE !,"You must enter a Vendor or IHS Facility, depending on the Referral type.",!
- DO PAUSE^BMC
- GOTO EDIT
- +7 QUIT
- +8 ;
- DELETE ; DELETE REFERRAL JUST ADDED BECAUSE OPERATOR DIDN'T FINISH
- +1 WRITE !!,"INCOMPLETE SECONDARY REFERRAL...BEING DELETED!",!!
- +2 SET DIK="^BMCREF("
- SET DA=BMCSRIEN
- DO ^DIK
- +3 DO PAUSE^BMC
- +4 QUIT
- MEDHX ;EP;DISPLAY MED HX COMMENTS IF ANY AND ADD NEW COMMENTS TO SEC REF
- +1 SET BMCV="COM"
- SET BMCTERM="Medical HX/Findings Comments"
- SET BMCATEMP="[BMC COMMENTS ADD]"
- SET BMCG="^BMCCOM("
- SET BMCETEMP="[BMC COMMENTS EDIT]"
- +2 ;BMC*4.0*3 12.14.07 IHS.OIT.FCJ ADDED S BMCRIEN IN NXT LINE
- +3 SET BMCCTYP="M"
- SET BMCRIEN=$PIECE(^BMCREF(BMCSRIEN,1),U,2)
- +4 WRITE @IOF,!,$$CTR^BMC("MEDICAL COMMENTS FROM PRIMARY REFERRAL",80)
- +5 WRITE !,$$CTR^BMC("REFERRAL: "_BMCRNUMB_" PATIENT: "_BMCREC("PAT NAME"),80),!
- +6 FOR I=1:1:80
- WRITE "-"
- +7 SET BMCNONE=0
- DO DISPCOM^BMCMOD1
- +8 IF BMCNONE=1
- WRITE !,"THERE ARE NOT ANY MEDICAL COMMENTS FROM PRIMARY REFERRAL TO DISPLAY...",!
- +9 WRITE !
- FOR I=1:1:80
- WRITE "-"
- +10 WRITE !,"Enter Comments for Secondary Referral..."
- MEDCOM ;ADD MED HX COMMENTS
- +1 WRITE !
- +2 SET DIR("A")="Do you want to enter Medical History and Findings Comments"
- +3 SET BMCCTYP="M"
- +4 SET BMCTMPS=BMCSRIEN
- SET BMCTMP=BMCRIEN
- SET BMCRIEN=BMCSRIEN
- +5 DO COMMENTS^BMCADD
- +6 SET BMCRIEN=BMCTMP
- SET BMCSRIEN=BMCTMPS
- +7 QUIT
- +8 ;
- SBCOM ;ADD BO/CHS COMMENTS ;BMC*4.0*3 8.13.07 IHS.OIT.FCJ ADD BO/CHS COMMENTS
- +1 SET BMCV="COM"
- SET BMCTERM="Business Office/CHS Comments"
- SET BMCATEMP="[BMC COMMENTS ADD]"
- SET BMCG="^BMCCOM("
- SET BMCETEMP="[BMC COMMENTS EDIT]"
- +2 SET BMCCTYP="S"
- +3 SET BMCTMPS=BMCSRIEN
- SET BMCTMP=BMCRIEN
- SET BMCRIEN=BMCSRIEN
- +4 DO ASK^BMCMOD
- +5 SET BMCRIEN=BMCTMP
- SET BMCSRIEN=BMCTMPS
- +6 ;
- RECORD ;RECORD SECONDARY REFERRAL
- +1 WRITE !!,"Secondary Referral has been completed, "_BMCRNUMB_BMCSUF,!
- +2 DO PAUSE^BMC
- +3 ;BMC*4.0*1 IHS/OIT/FCJ SP BAR VAR
- SET ^DISV(DUZ,"^BMCREF(")=$PIECE(^BMCREF(BMCSRIEN,1),U,2)
- +4 QUIT
- +5 ;
- BUSINESS ; EDIT BUSINESS OFFICE COMMENTS
- +1 DO 80^BMCMOD
- +2 QUIT
- EXIT ;EXIT PROGRAM
- +1 DO ^BMCKILL
- +2 KILL DDSCHANG,DDSPARM,DILN,DISYS,DIWI,DIWTC,DIWX,DIC,DIE,DA,Y,Y1,Y2,W1
- +3 KILL BMCMODE,BMCRSTAT,BMCRIEN,BMCSUF,BMCVCT,BMCTMP,BMCTMPS,BMCCAL
- +4 QUIT