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

APSPPDEA.m

Go to the documentation of this file.
  1. APSPPDEA ;IHS/MSC/MGH - PROVIDER DEA REPORT ;21-Oct-2011 09:16;MGH
  1. ;;7.0;IHS PHARMACY MODIFICATIONS;**1013**;Sep 23, 2004;Build 33
  1. EN ;EP
  1. N APSPTYP,APSPNUM,APSPTERM,APSPQ,APSPDR,APSPDARY,APSPNAME,QFLG,APSPCNT
  1. S (APSPQ,APSPTYP)=""
  1. S APSPCNT=0
  1. ;All or individual providers
  1. W @IOF
  1. W !,"Provider IEN Report",!!
  1. S APSPNUM=$$DIR^APSPUTIL("S^I:Individual Provider;A:All Providers","Lookup Individual Provider or List ALL Providers? ","A",,.APSPQ)
  1. Q:APSPQ
  1. I APSPNUM="I" D
  1. .F D Q:QFLG
  1. ..S APSPDR=$$GETIEN1^APSPUTIL(200,"Select Provider: ",-1,"B")
  1. ..I APSPDR<1 S QFLG=1 Q
  1. ..S APSPNAME=$$GET1^DIQ(200,APSPDR,.01)
  1. ..S APSPTERM=$$GET1^DIQ(200,APSPDR,9.2,,"I")
  1. ..I (APSPTERM=""!(APSPTERM>DT))&($P($G(^VA(200,APSPDR,"PS")),U)) D
  1. ...S X=$$ORDROLE(APSPDR)
  1. ...I X'=3 W !,APSPNAME_" is not a provider."
  1. ...I X=3 D
  1. ....S APSPDARY(APSPNAME)=APSPDR
  1. ....S APSPCNT=APSPCNT+1
  1. ..E D
  1. ...W !,APSPNAME_" is not an active provider."
  1. ..S QFLG='$$DIRYN^APSPUTIL("Want to Select Another Provider","No","Enter a 'Y' or 'YES' to include more providers in your search",.APSPQ)
  1. ..S:'QFLG QFLG=APSPQ
  1. Q:APSPQ
  1. I APSPNUM="A" D DEV
  1. I APSPNUM="I"&($D(APSPDARY)) D DEV
  1. Q
  1. DEV ;EP
  1. N XBRP,XBNS
  1. S XBRP="OUT^APSPPDEA"
  1. S XBNS="APS*"
  1. D ^XBDBQUE
  1. Q
  1. OUT ;EP
  1. N IEN,PROV,X,DEA,EXP,PIEN,PRV,TITLE
  1. U IO
  1. D HDR
  1. K ^TMP($J)
  1. I APSPNUM="A" D
  1. .S APSPCNT=0
  1. .S IEN=0 F S IEN=$O(^VA(200,IEN)) Q:IEN=""!('+IEN) D
  1. ..S X=$$ORDROLE(IEN)
  1. ..I X=3 D
  1. ...S APSPTERM=$$GET1^DIQ(200,IEN,9.2,,"I")
  1. ...I (APSPTERM=""!(APSPTERM>DT))&($P($G(^VA(200,IEN,"PS")),U)) D
  1. ....S PROV=$$GET1^DIQ(200,IEN,.01)
  1. ....S APSPDARY(PROV)=IEN
  1. S PRV=0 F S PRV=$O(APSPDARY(PRV)) Q:PRV=""!(+APSPQ) D
  1. .S PIEN=$G(APSPDARY(PRV))
  1. .S DEA=$$GET1^DIQ(200,PIEN,53.2)
  1. .S EXP=$$GET1^DIQ(200,PIEN,747.44)
  1. .S TITLE=$E($$GET1^DIQ(200,PIEN,53.5),1,19)
  1. .W !,$E(PRV,1,25),?26,TITLE,?50,DEA,?65,EXP
  1. .I $Y+4>IOSL,IOST["C-" D PAUS Q:APSPQ D HDR
  1. .Q:APSPQ=1
  1. Q
  1. PAUS ;
  1. N DTOUT,DUOUT,DIR
  1. S DIR("?")="Enter '^' to Halt or Press Return to continue"
  1. S DIR(0)="FO",DIR("A")="Press Return to continue or '^' to Halt"
  1. D ^DIR
  1. I $D(DUOUT) S APSPQ=1
  1. Q
  1. HDR ;
  1. N LIN
  1. I IOST["C-" W @IOF
  1. W !,"Provider List Report"
  1. W !,"Provider Name",?26,"Class",?50,"DEA#",?65,"Exp Date"
  1. W ! F LIN=1:1:72 W "-"
  1. W !
  1. Q
  1. ORDROLE(IEN) ;EP
  1. Q:$$HASKEY("OREMAS",IEN)+$$HASKEY("ORELSE",IEN)+$$HASKEY("ORES",IEN)>1 5
  1. Q:$$HASKEY("OREMAS",IEN) 1
  1. Q:$$HASKEY("ORELSE",IEN) 2
  1. Q:$$HASKEY("ORES",IEN)&$$ISPROV(IEN) 3
  1. Q:$$ISPROV(IEN) 4
  1. Q 0
  1. ; Returns true if user is a provider
  1. ISPROV(IEN) ;EP
  1. Q $$HASKEY("PROVIDER",IEN)
  1. ; Returns true if user has key
  1. ; KEY = Security key (or parameter if begins with "@")
  1. ; USR = IEN of user to check
  1. HASKEY(KEY,USR) ;PEP - Does user have key?
  1. Q:'$L(KEY) 1
  1. S USR=$G(USR,DUZ)
  1. I $E(KEY)="@" D GETPAR^CIAVMRPC(.KEY,$E(KEY,2,999),,,,USR) Q ''KEY
  1. Q ''$D(^XUSEC(KEY,+USR))