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

ALPBIN.m

Go to the documentation of this file.
ALPBIN ;OIFO-DALLAS/SED/KC/MW  BCMA-BCBU INPT TO HL7 INIT ;07/06/16 7:06am
 ;;3.0;BAR CODE MED ADMIN;**8,73,87,115**;Mar 2004;Build 3
 ;
 ; Reference/IA
 ; DPT/10035
 ; DIC(42/10039
 ; DIC(42/2440
 ;
 ;*87 - Fix VistA Init by DIV option where Clinic orders will check if
 ;      they point to DIV requested.
 Q
OPT ;Entry point for the option
 ;Select all or by Division
ALL ;Ask if the user want to send to all divisions
 K DTOUT,DUOUT,DIRUT,DIROUT,DIR,ALPALL,ALPWKS,ALPDIV,ALPBDVN
 S DIR(0)="Y",DIR("B")="YES"
 S DIR("A")="Enter Yes or No"
 S DIR("A",1)="Include all Divisions"
 D ^DIR
 I $D(DIRUT) G EXIT
 S ALPALL=+Y
 ;I +ALPALL>0 D QUE
 I ALPALL'>0 D DIV
 ;I +ALPALL'>0!(+ALPWKS>0) D QUE
 D QUE
 ;
EXIT ;
 K ALPB,ALPBI,ALPBJ,ALPCN,ALDFN,ALPMDT,ALPML,ALPORDR,MSCTR,MSH,ORC
 K PID,PV1,ALPHLL,ALPALL,DIR,Y,DTOUT,DUOUT,DIRUT,DIROUT,ALPDIV
 K ALPTST,ALPSTOP,ALPOK,ZTSAVE,ALPCNI,ALPCNT,ALP,ALPDVN,ALPHLINI
 Q
 ;
DIV K ALPHLL,DIR,ALPDIV,DTOUT,DUOUT,DIRUT,DIROUT,ALPHLINI
 S DIR(0)="PO^40.8:EMZ"
 S DIR("A",1)="Enter the division that you would like to"
 S DIR("A",2)="initialize"
 D ^DIR
 I $D(DIRUT)!(+Y'>0) S ALPDIV="" Q
 S ALPDIV=$P(Y,U,1),ALPDVN=$P(Y,U,2)
 D GET^ALPBPARM(.ALPHLL,ALPDIV)
 I '$D(ALPHLL) W !,"No workstations defined with "_ALPDVN G DIV
ALLWKS ;If no then set allow the user to select the workstation
 K DTOUT,DUOUT,DIRUT,DIROUT,DIR
 S DIR(0)="Y",DIR("B")="YES"
 S DIR("A")="Enter Yes or No"
 S DIR("A",1)="Include all workstations for the "_ALPDVN_" Division"
 D ^DIR
 I $D(DIRUT) G DIV
 S ALPWKS=+Y
 I +ALPWKS>0 Q
 ;
WRKSTN ;Now select which workstations for the division to be initialized
 K ALPSCRN,ALPBANS
 ;Set up screen
 S ALP=0 F  S ALP=$O(ALPHLL("LINKS",ALP))  Q:+ALP'>0  D
 . S ALPSCRN($P(ALPHLL("LINKS",ALP),U,2),ALP)=ALPHLL("LINKS",ALP)
 K ALPHLL
 F  D LP Q:$D(DIRUT)
 ;I  $D(DIRUT)!$D(ALPHLL) W !!,"No Selected Workstations" G ALLWKS
 I '$D(ALPBANS)!$D(ALPHLL) W !!,"No Selected Workstations" G ALLWKS
 Q:'$D(ALPBANS)
 S ALP="",ALPCNT=1
 F  S ALP=$O(ALPBANS(ALP)) Q:ALP=""  D
 . S ALPHLL("LINKS",ALPCNT)=ALPSCRN(ALP,$O(ALPSCRN(ALP,0)))
 . S ALPHLINI(ALPHLL("LINKS",ALPCNT))=""
 . S ALPCNT=ALPCNT+1
 K ALPSCRN,ALPBANS
 Q
 ;
LP ;Multiple entries
 K DIR,DTOUT,DUOUT,DIRUT,DIROUT
 S DIR(0)="PO^870:EMZ",DIR("A")="Select WorkStation Link "
 S DIR("?")="Answer with WorkStation Link to update "
 S DIR("S")="I $D(ALPSCRN($P(^HLCS(870,+Y,0),U,1)))"
 D ^DIR
 Q:$D(DIRUT)
 S ALPBANS($P(Y,U,2),+Y)=""
 W #,!!,"Selected Workstations",!!
 S ALPB=""
 F ALP=1:1 S ALPB=$O(ALPBANS(ALPB)) Q:ALPB=""  D
 .W ?$S(ALP#2:1,1:40),ALPB
 .W:ALP#2'>0 !
 Q
 ;
QUE ;Que the job
 S ZTRTN="EN^ALPBIN"
 S ZTDESC="PSB - Initialize the Contingency Workstation"
 S ZTIO="",ZTSAVE("ALPWKS")="",ZTSAVE("ALPDIV")=""
 I $D(ALPHLL) S ZTSAVE("ALPHLL(")=""
 I $D(ALPHLINI) S ZTSAVE("ALPHLINI(")=""
 D ^%ZTLOAD
 W:$D(ZTSK) !,ZTSK
 K ZTIO,ZTDESC,ZTRTN,ZTSK
 Q
EN ;Loop through the inpatient list.
 S ALPDTS=$$FMTE^XLFDT($$NOW^XLFDT)
 I +$G(ALPDIV)'>0 S ALPDIV=0
 S ALPSTOP=0,ALPOK=1
 N ALPDIV0 S ALPDIV0=ALPDIV                  ;save Div selected    *87
 S ALPCN=""
 F  S ALPCN=$O(^DPT("CN",ALPCN)) Q:ALPCN=""!(ALPSTOP)  D
 . ;DIVISION SCREEN HERE
 . S ALPCNI=$O(^DIC(42,"B",ALPCN,0))
 . Q:+ALPCNI'>0  ;Quit if I can't decipher the Ward Location
 . S ALPTST=$P($G(^DIC(42,ALPCNI,0)),U,11)
 . I +ALPDIV&(ALPDIV'=ALPTST) Q
 . S ALPSTOP=$$S^%ZTLOAD()
 . Q:ALPSTOP
 . S ALDFN=0
 . F  S ALDFN=$O(^DPT("CN",ALPCN,ALDFN)) Q:+ALDFN'>0!(ALPSTOP)  D PAT^ALPBIND(ALPDIV0)
 ;
 N ALPNOWCL S ALPNOWCL=$$NOW^XLFDT()
 D UDCLIN^ALPBIND(ALPNOWCL,ALPDIV0)          ;pass Div selected  *87
 D IVCLIN^ALPBIND(ALPNOWCL,ALPDIV0)          ;pass Div selected  *87
 ;
 K XQA,XQAMSG
 S ALPDTE=$$FMTE^XLFDT($$NOW^XLFDT)
 S XQA(DUZ)=""
 S XQAMSG="BCBU WORKSTATION INIT Started "_ALPDTS_" and finished "_ALPDTE_". "
 ;_ALPBK_" entries sent."
 D SETUP^XQALERT
 K ALPDTS,ALPDTE,ALPCNT
 D EXIT
 Q