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

BMCMINI.m

Go to the documentation of this file.
  1. BMCMINI ; IHS/PHXAO/TMJ - MINI ADD A NEW REFERRAL ;
  1. ;;4.0;REFERRED CARE INFO SYSTEM;**9**;JAN 09, 2006;Build 101
  1. ;ITSC/IHS/FCJ MOVED REQ TO SND MSG AFTER ENTRY OF REF
  1. ;
  1. ; See ^BMCVDOC for system wide variables set by main menu
  1. ;
  1. ; Subscripted BMCREC is EXTERNAL form.
  1. ; BMCREC("PAT NAME")=patient name
  1. ; BMCREC("REF DATE")=referral date
  1. ; BMCDFN=patient ien
  1. ; BMCRDATE=referral date in internal FileMan form
  1. ; BMCRNUMB=referral number
  1. ; BMCRIEN=referral ien
  1. ; BMCMODE=A for add, M for modify
  1. ; BMCRTYPE=type of referral (.04 field)
  1. ; BMCRIO=Inpatient or Outpatient (.14 field)
  1. ;
  1. START ;
  1. D:$G(BMCPARM)="" PARMSET^BMC
  1. F D MAIN Q:BMCQ D HDR^BMC
  1. D EOJ
  1. Q
  1. ;
  1. MAIN ;
  1. S BMCQ=0
  1. S BMCMODE="A",BMCLOOK=""
  1. S APCDOVRR=""
  1. D PATIENT ; get patient being referred
  1. Q:BMCQ
  1. D DATE ; get date of referral
  1. Q:BMCQ
  1. D NUMBER ; get next referral number
  1. Q:BMCQ
  1. D ADD ; add new referral record
  1. Q:BMCQ
  1. D EDIT ; edit referral record just added
  1. Q
  1. ;
  1. PATIENT ; GET PATIENT
  1. F D PATIENT2 I BMCQ!($G(BMCDFN)) Q
  1. Q
  1. ;
  1. PATIENT2 ; ASK FOR PATIENT UNTIL USER SELECTS OR QUITS
  1. S BMCQ=1
  1. S DIC="^AUPNPAT(",DIC(0)="AEMQ" D DIC^BMCFMC
  1. Q:Y<1
  1. S BMCDFN=+Y,BMCREC("PAT NAME")=$P(^DPT(+Y,0),U)
  1. S BMCQ=0
  1. I $$DOD^AUPNPAT(BMCDFN) D I 'Y K BMCDFN,BMCREC("PAT NAME") Q
  1. . W !!,"This patient is deceased."
  1. . S DIR(0)="YO",DIR("A")="Are you sure you want this patient",DIR("B")="NO" K DA D ^DIR K DIR
  1. . W !
  1. . Q
  1. Q
  1. ;
  1. DATE ; GET DATE OF REFERRAL
  1. S BMCQ=1
  1. S DIR(0)="90001,.01",DIR("B")="TODAY" K DA D ^DIR K DIR Q:$D(DIRUT)
  1. S BMCRDATE=+Y,BMCREC("REF DATE")=Y(0)
  1. S BMCQ=0
  1. Q
  1. ;commented out check on 2 on one day
  1. ; Search index to determine if referral exists for patient/date.
  1. ; If so, display message.
  1. ;
  1. ;I $D(^BMCREF("AA",BMCDFN,BMCRDATE)) D Q
  1. ;.W !!,"A REFERRAL FOR '",BMCREC("PAT NAME"),"', ON '",BMCREC("REF DATE"),"' EXISTS.",!,"USE THE 'MODIFY' OPTION TO EDIT THE REFERRAL.",!
  1. ;.D EOP^BMC
  1. ;.Q
  1. S BMCQ=0
  1. Q
  1. ;
  1. NUMBER ; GENERATE REFERRAL NUMBER
  1. S BMCQ=1
  1. S X=$$REFN^BMC
  1. X $P(^DD(90001,.02,0),U,5,99)
  1. I '$D(X) W !,"Error generating new referral number. Notify programmer.",! D EOP^BMC Q
  1. S BMCRNUMB=X
  1. S BMCQ=0
  1. Q
  1. ;
  1. ADD ; ADD NEW REFERRAL RECORD
  1. S BMCQ=1
  1. S DIC="^BMCREF(",DIC(0)="L",DLAYGO=90001,DIC("DR")=".02////"_BMCRNUMB_";.03////"_BMCDFN_";.15////A;.25////"_DUZ_";.26////"_DT_";.27////"_DT,X=BMCRDATE
  1. D FILE^BMCFMC
  1. I Y<0 W !,"Error creating REFERRAL.",!,"Notify programmer.",! D EOP^BMC Q
  1. W !!,"REFERRAL number : ",BMCRNUMB,!
  1. ;
  1. S BMCRIEN=+Y
  1. S BMCQ=0
  1. Q
  1. ;
  1. EDIT ; EDIT REFERRAL RECORD JUST ADDED
  1. S DDSFILE=90001,DA=BMCRIEN,DR="[BMCX REFERRAL ADD]",DDSPARM="C"
  1. D DDS^BMCFMC
  1. I '$G(DDSCHANG) D DELETE S BMCQ=1 Q
  1. S Y=BMCRIEN
  1. D ^BMCREF ; set standard variables from record
  1. ;
  1. D DXPX ; get provisional dx's/px's
  1. ;D COMMENTS ; get comments
  1. D STATIC ; set static fields
  1. Q
  1. ;
  1. DELETE ; DELETE REFERRAL JUST ADDED BECAUSE OPERATOR DIDN'T FINISH
  1. W !!,"INCOMPLETE REFERRAL BEING DELETED!",!!
  1. S DIK="^BMCREF(",DA=BMCRIEN D ^DIK
  1. D PAUSE^BMC
  1. Q
  1. ;
  1. DXPX ; GET PROVIDIONAL DIAGNOSES/PROCEDURES IF WANTED
  1. Q:'BMCDXPR ; quit if site not entering dx/px
  1. D DX
  1. ;D PX ;BMC*4.0*9
  1. D PROC^BMCMOD ;BMC*4.0*9
  1. Q
  1. ;
  1. DX ; GET PROVISIONAL DIAGNOSES
  1. W:$D(IOF) @IOF
  1. W !?5,"Referral #: ",$$REFN^BMC
  1. W !?5,"Referral Date: " S Y=$P(^BMCREF(BMCRIEN,0),U) D DD^%DT W Y
  1. W ?40,"Patient Name: ",$P(^DPT(BMCDFN,0),U)
  1. W !!
  1. S DIR(0)="Y",DIR("A")="Do you want to enter a Provisional Diagnosis",DIR("B")="Y",DIR("?")="Enter 'YES' to enter provisional diagnoses now."
  1. D ^DIR K DIR
  1. Q:$D(DIRUT)
  1. I Y S BMCQ=0 F D Q:BMCQ
  1. . S BMCLOOK=1
  1. . S BMCDXT="P"
  1. . S DIE="^BMCREF(",DA=BMCRIEN,DR="[BMC DIAGNOSIS ADD]"
  1. . D DIE^BMCFMC
  1. . K BMCLOOK
  1. . S:'$G(BMCDX) BMCQ=1
  1. . K BMCDX
  1. . Q
  1. S BMCQ=0
  1. Q
  1. ;
  1. PX ; GET PROVISIONAL PROCEDURES
  1. W !
  1. S DIR(0)="Y",DIR("A")="Do you want to enter a Provisional Procedure",DIR("B")="Y",DIR("?")="Enter 'YES' to enter provisional procedures now."
  1. D ^DIR K DIR
  1. Q:$D(DIRUT)
  1. I Y S BMCQ=0 F D Q:BMCQ
  1. . S BMCLOOK=1
  1. . S BMCPXT="P"
  1. . S DIE="^BMCREF(",DA=BMCRIEN,DR="[BMC PROCEDURE ADD]"
  1. . D DIE^BMCFMC
  1. . K BMCLOOK
  1. . S:'$G(BMCPX) BMCQ=1
  1. . K BMCPX
  1. . Q
  1. S BMCQ=0
  1. Q
  1. ;
  1. COMMENTS ; GET COMMENTS
  1. W !
  1. S DIR(0)="Y",DIR("A")="Do you want to enter Case Review Comments",DIR("B")="N",DIR("?")="Enter 'YES' to enter comments now."
  1. D ^DIR K DIR
  1. Q:$D(DIRUT)
  1. I Y S BMCQ=0 D
  1. . S BMCLOOK=1
  1. . S DIE="^BMCREF(",DA=BMCRIEN,DR="[BMC COMMENTS ADD]"
  1. . D DIE^BMCFMC
  1. . K BMCLOOK
  1. . S DIE="^BMCREF(",DA=BMCRIEN,DR=".31"
  1. . D DIE^BMCFMC
  1. . Q
  1. S BMCQ=0
  1. Q
  1. ;
  1. STATIC ; STORE STATIC DATA
  1. W !,"Storing static fields....",!
  1. ;
  1. S BMCREC=^BMCREF(BMCRIEN,0)
  1. S Y=^DPT(BMCDFN,0)
  1. S DR="5101///"_$P(Y,U) ; name
  1. S DR=DR_";5103///"_$P(Y,U,3) ; dob
  1. S DR=DR_";5104///"_$P(Y,U,9) ; ssn
  1. S DR=DR_";5107///"_$P(Y,U,2) ; sex
  1. S %=$P(BMCREC,U,5)
  1. I % D
  1. . S DR=DR_";5102///"_$P($G(^AUPNPAT(BMCDFN,41,%,0)),U,2) ; chart #
  1. . S DR=DR_";5113///"_$P($G(^DIC(4,%,0)),U) ; facility
  1. . S DR=DR_";5114///"_$P($G(^AUTTLOC(%,0)),U,10) ; asufac
  1. . Q
  1. S Y=$G(^AUPNPAT(BMCDFN,51))
  1. I $P(Y,U,18)'="" S DR=DR_";5105///"_$P(Y,U,18) ; comm
  1. I $P(Y,U,8) S DR=DR_";5106///"_$P($G(^AUTTTRI($P(Y,U,8),0)),U,2) ; tribe
  1. S %=$P(BMCREC,U,7)
  1. I % D
  1. . S DR=DR_";5108///"_$P($G(^AUTTVNDR(%,0)),U) ; vendor
  1. . S DR=DR_";5109///"_$P($G(^AUTTVNDR(%,51)),U) ; ein
  1. . Q
  1. S %=$P(BMCREC,U)
  1. S DR=DR_";5110///"_$$MCR^AUPNPAT(BMCDFN,%) ; medicare
  1. S DR=DR_";5111///"_$$MCD^AUPNPAT(BMCDFN,%) ; medicaid
  1. S DR=DR_";5112///"_$$PI^AUPNPAT(BMCDFN,%) ; private insurance
  1. ;
  1. S DIE="^BMCREF(",DA=BMCRIEN
  1. D DIE^BMCFMC
  1. W !,"Entry of Referral ",$P(^BMCREF(BMCRIEN,0),U,2)," is complete.",!
  1. ;IHS/ITSC/FCJ ADD 4 LINES TO REQ TO SEND MESSAGE
  1. I BMCCHSA,BMCRTYPE="C" D ENMM^BMCBULL
  1. I BMCIHSA,BMCRTYPE="I" D ENMM^BMCBULL
  1. I BMCOTHRA,BMCRTYPE="O" D ENMM^BMCBULL
  1. I BMCHOUSA,BMCRTYPE="N" D ENMM^BMCBULL
  1. D EOP^BMC
  1. Q
  1. ;
  1. EOJ ; END OF JOB
  1. D ^BMCKILL
  1. Q