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

BLRALPH.m

Go to the documentation of this file.
  1. BLRALPH ;DAOU/ALA/EJN-Setup Participating Physicians [ 12/19/2002 7:16 AM ]
  1. ;;5.2;LR;**1013,1015**;NOV 18, 2002
  1. ;
  1. ; ** Program Description **
  1. ; This program sets up any physician and physician
  1. ; supervisor who are participating in the requirement
  1. ; of electronic signature for lab results
  1. ;
  1. EN ; Check for access to this option
  1. ; check if a user has one of the BLRA keys and is calling
  1. ; this option from the User Toolbox option
  1. F BLRAKEY="BLRAZLAB","BLRAZPHY","BLRAZSUP" D
  1. . S RETKEY=$$KCHK^XUSRB(BLRAKEY)
  1. . S KEYCT=$G(KEYCT)+RETKEY
  1. I $G(XQSV)["XUSERTOOLS"&(KEYCT=0) Q
  1. ;
  1. ; If the user is a participating physician, allow them
  1. ; to edit their surrogates.
  1. I $D(^BLRALAB(9009027.1,DUZ))&($$KCHK^XUSRB("BLRAZCLRK")=0) G SUR
  1. ;
  1. ; If the user hasn't been assigned the Lab ES Clerk key, quit
  1. I $$KCHK^XUSRB("BLRAZCLRK")=0 Q
  1. ;
  1. CLK ; Clerk's enter/edit of the Participating Physician File
  1. ;D CSUR
  1. S DIC="^BLRALAB(9009027.1,",DIC(0)="AELMNZ",DLAYGO=9009027.1
  1. S DIC("A")="Select PARTICIPATING PHYSICIAN: "
  1. D ^DIC S DA=+Y I DA<1 G EXIT
  1. ;
  1. S DIE=DIC,DR="[BLRA PHYSICIAN]" D ^DIE
  1. W !!
  1. G CLK
  1. ;
  1. EXIT K BLRAACT,DIC,DIE,DA,DR
  1. K IENS,TXT,BLRAPIEN,BLRASUP,BLRAPNAM
  1. Q
  1. SUR ; Set up delegated surrogates
  1. ;D CSUR
  1. S DR="[BLRA SURROGATES]"
  1. E S DR="1"
  1. S DIE="^BLRALAB(9009027.1,",DA=DUZ
  1. D ^DIE
  1. G EXIT
  1. Q
  1. ;
  1. CSUR ;EP - Clean-up expired surrogates in Participating Physicians File
  1. N BLRASUR,BLRAPHY,DA,DIK,Y
  1. S BLRAPHY=0
  1. F S BLRAPHY=$O(^BLRALAB(9009027.1,BLRAPHY)) Q:'BLRAPHY D
  1. . I $P($G(^BLRALAB(9009027.1,BLRAPHY,1,0)),U,4)<1 Q
  1. . S BLRASUR=0
  1. . F S BLRASUR=$O(^BLRALAB(9009027.1,BLRAPHY,1,BLRASUR)) Q:'BLRASUR D
  1. .. I $P($G(^BLRALAB(9009027.1,BLRAPHY,1,BLRASUR,0)),U,3)<$$DT^XLFDT() D
  1. ... S DA=BLRASUR,DA(1)=BLRAPHY
  1. ... S DIK="^BLRALAB(9009027.1,"_BLRAPHY_",1," D ^DIK
  1. Q
  1. ;
  1. INACT ;EP
  1. ; Inactivate a participating provider
  1. ;D CSUR
  1. D EN^DDIOL("","","!!")
  1. S DIC="^BLRALAB(9009027.1,",DIC(0)="AEMNZ"
  1. S DIC("A")="Select PARTICIPATING PHYSICIAN: "
  1. D ^DIC S DA=+Y I DA<1 G EXIT
  1. S BLRAPNAM=$G(Y(0,0))
  1. S BLRAPIEN=DA
  1. ;
  1. ; Check to see if a supervisor
  1. S BLRASUP=$S($P($G(^BLRALAB(9009027.1,DA,0)),U,2)="S":1,1:0)
  1. I BLRASUP S QFL=0,BLRAFSP=DA D SUP Q:QFL
  1. ;
  1. ; Inactive physician
  1. D EN^DDIOL("To inactive physician "_BLRAPNAM_" enter ""I""","","!!")
  1. S DIE=DIC,DR=".07;I X="""" S BLRAACT=1;" D ^DIE
  1. I $G(BLRAACT)>0 D EN^DDIOL("The Physician "_BLRAPNAM_" has not been inactivated...","","!!") G EXIT
  1. ;
  1. ISRG ; Designate surrogate for 90 days
  1. K DA,DIC,DIE,DR
  1. S DA(1)=BLRAPIEN,DR="1",DLAYGO=9009027.11
  1. I '$D(^BLRALAB(9009027.1,DA(1),1,0)) S ^BLRALAB(9009027.1,DA(1),1,0)="^9009027.11^^"
  1. S DIC="^BLRALAB(9009027.1,"_DA(1)_",1,",DIC(0)="AEMLZ"
  1. S DIC("A")="Select a SURROGATE PHYSICIAN:"
  1. D ^DIC S DA=+Y
  1. I DA<1 D EN^DDIOL("** You must select a Participating Physician to be the Surrogate for 90 days. **","","!!") G ISRG
  1. S TERMDT=$$GET1^DIQ(200,DA,9.2,"I")
  1. I TERMDT'=""&(TERMDT'>DT) D EN^DDIOL("This provider has a termination date please select another.") K DA G ISRG
  1. S IENS=$$IENS^DILF(.DA)
  1. S DR="@2;.02;I X="""" D EN^DDIOL(""You must enter a START DATE."") S Y=""@2"";S ENDT=$$FMADD^XLFDT(($$GET1^DIQ(9009027.11,IENS,.02,""I"")),90);.03////^S X=ENDT;S TXT=""END DATE: ""_$$FMTE^XLFDT(ENDT);D EN^DDIOL(TXT)"
  1. S DIE=DIC,DIE("NO^")="BACK" D ^DIE
  1. ;
  1. K DIE,DA,DIK,DIC,BLRAS,BLRVD,BLRAP,LRIDT,LRSS,LRDFN,TERMDT
  1. K BLRAACT,BLRAFPH,BLRATPH,DIR,BLRADATA,BLRARFL,BLRARPHY
  1. G INACT
  1. Q
  1. SUP ; Ask to change supervisor to
  1. NEW DIR
  1. S DIR("A",1)=" "
  1. S DIR("A",2)="This physician is a designated supervisor. All subordinate"
  1. S DIR("A",3)="participating physicians must have a valid supervisor."
  1. S DIR("A")="DO YOU WISH TO REASSIGN TO ANOTHER SUPERVISOR NOW"
  1. S DIR(0)="Y"
  1. D ^DIR
  1. I $G(Y)'=1 S QFL=1 Q
  1. I $G(Y)=1 D Q:QFL
  1. . S DIC="^BLRALAB(9009027.1,",DIC(0)="AEMNZ",DIC("S")="I $P(^(0),U,2)=""S"""
  1. . D ^DIC I Y<1 S QFL=1 Q
  1. . S BLRATSP=+Y
  1. . S BLRJ="" F S BLRJ=$O(^BLRALAB(9009027.1,"C",BLRAFSP,BLRJ)) Q:'BLRJ D
  1. .. S BLRALY(9009027.1,BLRJ_",",.03)=BLRATSP
  1. . D FILE^DIE("","BLRALY")
  1. Q