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

BMCMOD.m

Go to the documentation of this file.
  1. BMCMOD ; IHS/PHXAO/TMJ - MODIFY A REFERRAL 1 OF 2 ; [ 08/22/2006 11:07 AM ]
  1. ;;4.0;REFERRED CARE INFO SYSTEM;**2,3,6,8,9,12**;JAN 09, 2006;Build 101
  1. ;
  1. ;IHS/ITSC/FCJ ADDED OPTION TO REDISPLAY PAT REF'S
  1. ; NEW OPTION TO SEND BULLETIN;DATE/USER STAMPED ADDING COMMENTS
  1. ; FOR BUS OFF, DSCH NOTES AND MED HX;BUS OFF OPT CHGD TO REQUEST
  1. ; COMMENTS ONLY;TEST OF 7 & 9 TO ALLOW EDIT FROM MENU FOR BOC & CASE
  1. ; COM;MOD CHS ELIG EDIT FOR BUS OFF COM ; ADDED MENU OPTION
  1. ;4.0 IHS/OIT/FCJ ADDED 0 TO FILTER AND PRNT REVIEWER
  1. ; This option allows the user to select and modify referrals.
  1. ;4.0*2 8.22.06 IHS.OIT.FCJ NO LONGER ALLOW EDIT OF PHY NOTES
  1. ;BMC*4.0*3 10.1.2007 IHS/ITSC/FCJ ADDED OPT 16 ALERT TO PHYS
  1. ;BMC*4.0*12 IHS/OIT/FCJ CHANGED TEMPLATES FOR CALL IN TYPE
  1. ;
  1. ; See ^BMCVDOC for system wide variables set by main menu
  1. ;
  1. START ;
  1. D:'$D(BMCPARM) PARMCHK^BMC
  1. F D MAIN Q:BMCQ D HDR^BMC
  1. D EOJ
  1. Q
  1. MAIN ;
  1. S BMCQ=0,BMCMODE="M"
  1. D REFERRAL ; get referral record to modify
  1. Q:BMCQ
  1. S BMCDOS=$$AVDOS^BMCRLU(BMCRIEN,"N") S:+BMCDOS<1 BMCDOS=$P(^BMCREF(BMCRIEN,0),U) ;BMC*4.0*9
  1. ;BMC*4.0*6 IHS.OIT.FCJ COMBINED LINES FOR MENU OPTION CALLS
  1. ;I $G(BMCDTYPE)=7 D 7 Q
  1. ;I $G(BMCDTYPE)=9 D 9 Q
  1. ;I $G(BMCDTYPE)=10 D 10 Q
  1. D GETSNO^BMCADD3 ;BMC*4.0*8
  1. I $G(BMCDTYPE) D @BMCDTYPE Q
  1. I BMCCHSE=1 D CHS
  1. Q:BMCCHSE=1
  1. F D TYPE Q:BMCQ ; modify referral
  1. D PCCL
  1. I BMCDTYPE=13 S BMCQ=0
  1. Q
  1. REFERRAL ; GET REFERRAL TO MODIFY
  1. I BMCCLOSE=1 D SCREEN Q
  1. I BMCCLOSE="" D GETREF Q
  1. I BMCCHSE=1 D GETREF Q
  1. GETREF ;Screens out closed Referrals
  1. S BMCRTY=0 I BMCCHSE=1 S BMCRTY=2
  1. S BMCQ=1
  1. W !
  1. S DIC="^BMCREF(",DIC("S")="I $$FILTER^BMCFLTR(0,BMCCURFY,BMCRTY)",DIC(0)="AEMQ",DIC("A")="Select RCIS REFERRAL by Patient or by Referral Date or #: "
  1. D DIC^BMCFMC
  1. Q:Y<1
  1. S BMCRIEN=+Y
  1. S BMCQ=0
  1. Q
  1. ;
  1. SCREEN ;Display ONLY CLOSED Referrals
  1. S BMCQ=1
  1. W !
  1. S DIC="^BMCREF(",DIC("S")="I $$FILTER^BMCFLTR(1,BMCCURFY,0)",DIC(0)="AEMQ",DIC("A")="Select RCIS REFERRAL by Patient or by Referral Date or #: "
  1. D DIC^BMCFMC
  1. Q:Y<1
  1. S BMCRIEN=+Y
  1. S BMCQ=0
  1. Q
  1. ;
  1. CHS ;Enter CHS Data with Screenman
  1. S DDSFILE=90001,DA=BMCRIEN,DR=$S(BMCRIO="I":"[BMC CHS ADD]",1:"[BMC CHS ADD]"),DDSPARM="C"
  1. D DDS^BMCFMC
  1. I BMCRIO="I" D D:+Y>0 DENR^BMCCHSE
  1. .S DIR("A")="Do you wish to EDIT Denial Reasons",DIR(0)="Y",DIR("B")="NO" ;BMC*4.0*8 ADD DENIAL EDIT
  1. .D ^DIR K DIR
  1. Q
  1. TYPE ; EP - Get type of data to edit
  1. S BMCQ=1,BMCDTYPE=""
  1. ;BMC*4.0*9 CHNG ICD9 TO ICD IN NXT LINE
  1. S DIR(0)="SO^0:QUIT;1:MINI MOD;2:ALL DATA;3:DATE/COUNTS;4:COSTS;5:ICD DX;6:CPT PROCEDURES;7:CASE REVIEW;8:PURPOSE/MED HX/OTHER DX INFO;9:BUSINESS OFFICE;10:DISCHARGE NOTES;11:ADD DOCUMENTATION;12:CHS ELIG FACTORS;13:OTHER REFERRALS"
  1. ;BMC*4.0*3 10.1.2007 IHS/ITSC/FCJ ADDED OPT 16 TO NXT LINE;4.0*8 7.10.13 IHS.OIT.FCJ ADDED OPT 17
  1. S DIR(0)=DIR(0)_";14:SEND GROUP MESSAGE;15:SEND MESSAGE TO PROVIDERS;16:SEND ALERT TO PROVIDERS;17:APPROVE REFERRAL"
  1. S DIR("A")="EDIT Which Data Type",DIR("B")="0" K DA D ^DIR K DIR
  1. Q:$D(DIRUT)
  1. Q:'Y
  1. S BMCDTYPE=+Y
  1. D @BMCDTYPE
  1. I BMCDTYPE=13 Q
  1. S BMCQ=0
  1. Q
  1. ;
  1. MINIMOD ; REFERRAL MINI MODIFICATION FORM
  1. 1 ; LABEL FOR @DO
  1. ;BMC*4.0*12 IHS/OIT/FCJ ADDED TEST FOR CALLIN TYPE
  1. ;S DDSFILE=90001,DA=BMCRIEN,DR="[BMCX REFERRAL ADD]",DDSPARM="C"
  1. S DDSFILE=90001,DA=BMCRIEN,DR=$S($P($G(^BMCREF(BMCRIEN,1)),U,3)?1N.N:"[BMC REF ADD CALL-IN]",1:"[BMCX REFERRAL ADD]"),DDSPARM="C"
  1. D DDS^BMCFMC
  1. I BMCVREF D VREFP D:BMCRSTAT="A" VREF ;BMC*4.0*8 CHECK FOR CHANGE OF SNOMED CD
  1. E D SNO
  1. D 80
  1. S Y=BMCRIEN
  1. D ^BMCREF
  1. Q
  1. ALLDATA ; MODIFY ALL REFERRAL DATA
  1. 2 ; LABEL FOR @DO
  1. S BMCTMP=BMCMODE,BMCMODE="E"
  1. ;BMC*4.0*12 IHS/OIT/FCJ ADDED TEST FOR CALLIN TYPE
  1. ;S DDSFILE=90001,DA=BMCRIEN,DR="[BMC REFERRAL MOD]",DDSPARM="C"
  1. S DDSFILE=90001,DA=BMCRIEN,DR=$S($P($G(^BMCREF(BMCRIEN,1)),U,3)?1N.N:"[BMC REF ADD CALL-IN]",1:"[BMC REFERRAL MOD]"),DDSPARM="C"
  1. D DDS^BMCFMC
  1. S Y=BMCRIEN
  1. D ^BMCREF ; set standard variables from record
  1. F X=4,5,6,80 D @X Q:$D(DIRUT) ; edit all other data
  1. I BMCVREF D VREFP D:BMCRSTAT="A" VREF ;BMC*4.0*8 CHECK FOR CHANGE OF SNOMED CD
  1. E D SNO
  1. S BMCMODE=BMCTMP
  1. Q
  1. ;
  1. S DDSFILE=90001,DA=BMCRIEN,DR="[BMC MODIFY COST INFORMATION]",DDSPARM="C"
  1. D DDS^BMCFMC
  1. Q
  1. ;
  1. DATES ; MODIFY DATE FIELDS
  1. 3 ; LABEL FOR @DO
  1. S DDSFILE=90001,DA=BMCRIEN,DR=$S(BMCRIO="I":"[BMC MODIFY DATES (INPT)]",1:"[BMC MODIFY DATES (OUPT)]"),DDSPARM="C"
  1. D DDS^BMCFMC
  1. Q
  1. ;
  1. COST ;MODIFY COST FIELDS
  1. 4 ; LABEL FOR @DO
  1. S DDSFILE=90001,DA=BMCRIEN,DR="[BMC MODIFY COST INFORMATION]",DDSPARM="C"
  1. D DDS^BMCFMC
  1. Q
  1. ;
  1. DX ; EP - EDIT DIAGNOSES EDIT DIAGNOSES
  1. 5 ; LABEL FOR @DO
  1. S APCDOVRR=""
  1. S BMCV="DX",BMCTERM="Diagnoses",BMCATEMP="[BMC DIAGNOSIS ADD]",BMCG="^BMCDX(",BMCETEMP="[BMC DIAGNOSIS EDIT]"
  1. S BMCCTYP="DX"
  1. D ASK
  1. Q
  1. ;
  1. PROC ; EP - EDIT PROCEDURES
  1. 6 ; LABEL FOR @DO
  1. S BMCV="PROC",BMCTERM="Procedures",BMCATEMP="[BMC PROCEDURE ADD]",BMCG="^BMCPX(",BMCETEMP="[BMC PROCEDURE EDIT]"
  1. S BMCCTYP="P"
  1. D ASK
  1. Q
  1. ;
  1. COMMENTS ; EDIT COMMENTS CASE REVIEW
  1. 7 ; LABEL FOR @DO
  1. S BMCV="COM",BMCTERM="Case Review Comments",BMCATEMP="[BMC COMMENTS ADD]",BMCG="^BMCCOM(",BMCETEMP="[BMC COMMENTS EDIT]"
  1. S BMCCTYP="C"
  1. D ASK
  1. S DIE="^BMCREF(",DA=BMCRIEN,DR=".31" ; get next review date
  1. D DIE^BMCFMC
  1. Q
  1. ;
  1. PURPOSE ; EDIT PURPOSE OF REFERRAL
  1. 8 ; LABEL FOR @DO
  1. S DDSFILE=90001,DA=BMCRIEN,DR="[BMC MODIFY MEDICAL INFO]",DDSPARM="C"
  1. D DDS^BMCFMC
  1. ;IHS/ITSC/FCJ REMOVED BUSINESS, DISCHARGE, MED HX FROM
  1. ;SCREENMAN TEMPLATE WILL NOW ASK INDIVIDUALLY ADDED NXT 6 LNS
  1. 80 ;EP FROM 2ND REF AND FR MED HX MENU OPTION
  1. S BMCV="COM",BMCTERM="Medical HX/Findings Comments",BMCATEMP="[BMC COMMENTS ADD]",BMCG="^BMCCOM(",BMCETEMP="[BMC COMMENTS EDIT]"
  1. S BMCCTYP="M"
  1. D ASK
  1. Q:(BMCDTYPE=1)!(BMCDTYPE=8)!(BMCDTYPE=80) ;BMC*4.0*6 4.22.2010 IHS.OIT.FCJ ADDED TEST FOR BMCDTYPE=80
  1. F X=10,9 D @X Q:$D(DIRUT)
  1. Q
  1. ;
  1. BUSINESS ; EDIT BUSINESS OFFICE COMMENTS
  1. 9 ; LABEL FOR @DO
  1. ;IHS/ITSC/FCJ CHG TO ASK FOR ONLY BO COMMENTS
  1. S BMCV="COM",BMCTERM="Business Office Comment",BMCATEMP="[BMC COMMENTS ADD]",BMCG="^BMCCOM(",BMCETEMP="[BMC COMMENTS EDIT]"
  1. S BMCCTYP="B"
  1. D ASK
  1. Q
  1. ;
  1. DSCHARGE ; EDIT DISCHARGE NOTES
  1. 10 ; LABEL FOR @DO
  1. ;IHS/ITSC/FCJ CHG TO ADD COMMENTS TO COMMENT FILE W/USER & DATE STAMP
  1. S BMCV="COM",BMCTERM="Discharge Notes Comments",BMCATEMP="[BMC COMMENTS ADD]",BMCG="^BMCCOM(",BMCETEMP="[BMC COMMENTS EDIT]"
  1. S BMCCTYP="D"
  1. D ASK
  1. S DIE="^BMCREF(",DA=BMCRIEN,DR=".18" ; get ltr release date
  1. D DIE^BMCFMC
  1. Q
  1. ;
  1. ADDLDOC ; EDIT LIST OF ADDITIONAL DOCUMENTATION TO BE INCLUDED WITH REFERRAL
  1. 11 ; LABEL FOR @DO
  1. S DDSFILE=90001,DA=BMCRIEN,DR="[BMC ADDITIONAL DOC]"
  1. D DDS^BMCFMC
  1. Q
  1. FACTOR ;CHS ELIG FACTORS
  1. 12 ; LABEL FOR @DO
  1. S DDSFILE=90001,DA=BMCRIEN,DR="[BMC CHS ELIGIBILITY]",DDSPARM="C"
  1. D DDS^BMCFMC
  1. S BMCV="COM",BMCTERM="Business Office Comments",BMCATEMP="[BMC COMMENTS ADD]",BMCG="^BMCCOM(",BMCETEMP="[BMC COMMENTS EDIT]"
  1. S BMCCTYP="B"
  1. D ASK
  1. Q
  1. REF ;IHS/ITSC/FCJ ADD 13TH OPTION TO ALLOW SELECTING OTHER REF FOR PATIENT
  1. 13 ;LABEL FOR @DO
  1. S DIC("B")=BMCREC("PAT NAME")
  1. Q
  1. ALERT ;Mail Bulletin Alerts
  1. 14 ;IHS/ITSC/FCJ ADD 14TH OPT TO ALLOW SENDING MAILMAN MESSAGE
  1. W @IOF
  1. ;I 'BMCCHSA,BMCRTYPE="C" D ER Q
  1. ;I 'BMCIHSA,BMCRTYPE="I" D ER Q
  1. ;I 'BMCOTHRA,BMCRTYPE="O" D ER Q
  1. ;I 'BMCHOUSA,BMCRTYPE="N" D ER Q
  1. ;I 'BMCCHSA,'BMCIHSA,'BMCOTHRA,'BMCHOUSA D ER Q
  1. D ENMM^BMCMM
  1. Q
  1. 15 ;IHS/ITSC/FCJ ADD 15TH OPT TO ALLOW SENDING MAILMAN MESSAGE TO PRIM
  1. ;AND REF PROVIDER ONLY
  1. D ENMM^BMCMM
  1. Q
  1. 16 ;BMC*4.0*3 10.1.2007 IHS/ITSC/FCJ ADD 16TH OPT TO ALLOW TO PRIM AND REF PROVIDER ONLY
  1. S BMCPPRV=$P(^AUPNPAT(BMCDFN,0),U,14),BMCRPRV=$P(^BMCREF(BMCRIEN,0),U,6),BMCRHDR="Updated"
  1. S DIR(0)="Y",DIR("B")="Y",DIR("A")="Do you wish to send alert to the Referring Provider"
  1. W ! D ^DIR K DIR Q:$D(DUOUT)
  1. NEW XQA
  1. I Y>0 S XQA(BMCRPRV)=""
  1. ;TEST FOR PAT PRIM PROV
  1. I BMCPPRV'="",BMCPPRV'=BMCRPRV D
  1. .S DIR(0)="Y",DIR("B")="Y",DIR("A")="Patient's Primary Provider is different then the Referring Physician, do you want to send alert to the Primary Provider"
  1. .W ! D ^DIR K DIR Q:($D(DUOUT))!(Y=0)
  1. .S XQA(BMCPPRV)=""
  1. I $D(XQA) D PALRT1^BMCALERT
  1. Q
  1. 17 ;EP BMCMODS;BMC 4.0*8 5.8.13 IHS/OIT/FCJ ADDED OPTION TO UPDATE STATUS TO A1-APPROVED
  1. S BMCSTAT=""
  1. K DIR
  1. I $P(^BMCREF(BMCRIEN,0),U,15)'="A" D Q
  1. .W !,"Referral status can only be changed from Active to Approved,",!?10,"Referral Status: ",$$VAL^XBDIQ1(90001,BMCRIEN,.15)
  1. .D PAUSE^BMC
  1. W !!
  1. S DIR(0)="SOA^A:ACTIVE;A1:APPROVED",DIR("?")="Set to Approved if patient will receive referred services even if denied by CHS"
  1. S DIR("A")="Enter Referral Status: ACTIVE// "
  1. S DIR("A",1)=" Referral Status: "_$$VAL^XBDIQ1(90001,BMCRIEN,.15)
  1. S DIR("A",2)=""
  1. S DIR("A",3)="Select A1 to Approve the Referral"
  1. S DIR("A",4)=" A ACTIVE"
  1. S DIR("A",5)=" A1 APPROVAL"
  1. D ^DIR K DIR
  1. Q:X'="A1"
  1. S BMCSTAT=Y
  1. S DIE="^BMCREF(",DR=".15////"_BMCSTAT,DA=BMCRIEN
  1. D DIE^BMCFMC
  1. Q
  1. ER W !,"Parameters have not been set up to send messages for this type of Referral." H 1
  1. Q
  1. ASK ;EP
  1. S BMCDF=$S($G(BMCCLOSE):"A",1:"E")
  1. F D ASK2 Q:BMCQ
  1. Q
  1. ;
  1. ASK2 ;IHS/ITSC/FCJ MODIFED TO NOT ALLOW EDITING OR DELETING OF BO COMMENTS
  1. S BMCQ=1
  1. W:$D(IOF) @IOF
  1. ;4.0*2 8.22.06 IHS.OIT.FCJ NO LONGER ALLOW EDIT OF PHY NOTES
  1. I (BMCCTYP="B")!(BMCCTYP="M"),'$G(BMCSUP) W !!,"You may add a new "_BMCTERM,!
  1. E W !!,"You may edit one of the existing "_BMCTERM_" or add a new one",!
  1. S BMCNONE=0
  1. D @("DISP"_BMCV_"^BMCMOD1")
  1. ;4.0*2 8.22.06 IHS.OIT.FCJ NO LONGER ALLOW EDIT OF PHY NOTES
  1. I (BMCCTYP="B")!(BMCCTYP="M"),'$G(BMCSUP) S BMCNONE=1
  1. ;add or edit one of above
  1. W !
  1. I BMCNONE S DIR(0)="S^A:ADD a new "_BMCTERM,BMCDF="Q" W:BMCCTYP'="B" !," No entries to edit",! I 1
  1. E S DIR(0)="S^E:EDIT one of the above "_BMCTERM_";A:ADD a new "_BMCTERM_";D:DELETE one of the above "_BMCTERM
  1. S DIR(0)=DIR(0)_";Q:QUIT"
  1. ;S DIR("A")="Do you wish to",DIR("B")=$S(BMCDF="E":"Q",1:"A") ;4.0 7.11.05 IHS/ITSC/FCJ ADDED TEST FOR MODE TO DEFAULT TO Q ON COMMENTS
  1. S DIR("A")="Do you wish to",DIR("B")=$S(BMCMODE="E":"Q",BMCDF="E":"Q",1:"A")
  1. D ^DIR K DIR
  1. Q:$D(DIRUT)
  1. Q:Y="Q"
  1. D @Y
  1. S:'$G(BMCCLOSE) BMCDF="Q"
  1. S BMCQ=0
  1. Q
  1. ;
  1. E ;edit an existing XXX
  1. D @("DISP"_BMCV_"^BMCMOD1")
  1. W ! S DIR(0)="N^1:"_BMCC_":",DIR("A")="Which One do you wish to EDIT" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I $D(DIRUT) Q
  1. Q:'Y
  1. S BMCC=+Y
  1. I '$D(BMCRDX(BMCC)) W !!,"Invalid choice." Q
  1. S DA=BMCRDX(BMCC),DIE=BMCG,DR=BMCETEMP
  1. D DIE^BMCFMC
  1. I $D(Y) W !!,"ERROR ENCOUNTERED IN EDITING A "_BMCTERM Q
  1. Q
  1. ;
  1. A ;add a new XXX
  1. S BMCLOOK=1
  1. W !!,"Adding a NEW "_BMCTERM_"...",!
  1. I BMCV="COM" D COMMENTS^BMCADD1 Q
  1. I BMCV="DX" D ADDDX^BMCMOD1 Q ;BMC*4.0*9 ADDED TO CALL LEXICON
  1. I BMCV="PROC" D ADDPX^BMCMOD1 Q ;BMC*4.0*9 ADDED
  1. S DIE="^BMCREF(",DR=BMCATEMP,DA=BMCRIEN
  1. D DIE^BMCFMC
  1. I $D(Y) W !!,"NO "_BMCTERM_" ADDED!"
  1. K BMCLOOK
  1. Q
  1. ;
  1. D ;delete XXX
  1. D @("DISP"_BMCV_"^BMCMOD1")
  1. S DIR(0)="N^1:"_BMCC_":",DIR("A")="Which One do you wish to DELETE" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I $D(DIRUT) Q
  1. Q:'Y
  1. S BMCC=+Y
  1. I '$D(BMCRDX(BMCC)) W !!,"Invalid choice." Q
  1. ;
  1. S DIR(0)="Y",DIR("A")="Are you sure you want to delete this "_BMCTERM,DIR("B")="N" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. Q:$D(DIRUT)
  1. I 'Y W !,"Okay, not deleted." Q
  1. S DA=BMCRDX(BMCC),DIK=BMCG D DIK^BMCFMC W !,BMCTERM_" DELETED" Q
  1. Q
  1. ;
  1. PCCL ; PCC LINK
  1. I $$VALI^XBDIQ1(90001,BMCRIEN,".15")="C1" D ^BMCPCCL
  1. Q
  1. ;
  1. VREF ;EP FR BMCMODS;BMC*4.0*8 NEW MODULE TO UPDATE SNOMED IN V REF FILE
  1. Q:$P(^AUPNVREF(BMCVREF,0),U)=BMCSCOD
  1. S DIE="^AUPNVREF(",DA=BMCVREF,DR=".01///"_BMCSCOD_";1218////"_$$NOW^XLFDT
  1. D DIE^BMCFMC
  1. Q
  1. VREFP ;BMC*4.0*8 NEW MODULE TO UPDATE PROV IN V REF FILE
  1. Q:$P(^AUPNVREF(BMCVREF,12),U,2)=$P(^BMCREF(BMCRIEN,0),U,6)
  1. S DIE="^AUPNVREF(",DA=BMCVREF,DR="1202////"_$P(^BMCREF(BMCRIEN,0),U,6)_";1218////"_$$NOW^XLFDT
  1. D DIE^BMCFMC
  1. K DIE,DR,X,DA
  1. Q
  1. SNO ;EP FROM BMCMODS;BMC*4.0*9 NEW MODULE TO ADD SNOMED FOR SITES W/O PCC
  1. Q:BMCSCOD=$P($G(^BMCREF(BMCRIEN,22,1,0)),U)
  1. S DR=".01///"_BMCSCOD
  1. S DIE="^BMCREF("_BMCRIEN_",22,",DA=1
  1. D DIE^BMCFMC
  1. K DIE,DR,X,DA
  1. Q
  1. ;
  1. EOJ ; END OF JOB
  1. K BMCRTY
  1. D ^BMCKILL
  1. D ^XBFMK
  1. Q