Skip to content

Instantly share code, notes, and snippets.

@shabiel
Created December 26, 2015 21:15
Show Gist options
  • Select an option

  • Save shabiel/e6fc1ee9a44089ac590f to your computer and use it in GitHub Desktop.

Select an option

Save shabiel/e6fc1ee9a44089ac590f to your computer and use it in GitHub Desktop.
EN ; [Public] Main Entry Point
W "Pending Orders Display",!!
;
N DIR,DIRUT,DIROUT,DTOUT,DUOUT,X,Y,DA
S DIR(0)="S^N:No Filter;D:Division;W:Ward;G:Ward Group"
S DIR("A")="Filter by"
S DIR("?",1)="If you wish to filter your results to a specific group of patients,"
S DIR("?",2)="you can do that here."
S DIR("?",3)=" "
S DIR("?",4)="You can filter by Division, Ward, or Ward Group"
S DIR("?")="Select N, D, W, or G."
S DIR("B")="D"
D ^DIR
Q:$G(DIRUT)
;
N FIL S FIL=Y
;
D @(Y_"(.FIL)") ; Callback to collect filter data. N is a NOOP.
;
I '$D(FIL) QUIT ; Killed by call back
;
NVO F S PAT=$O(^PS(53.1,"AC",PAT)) Q:PAT="" D
. N WDN S WDN=$E($G(^DPT(PAT,.1)),1,30)
. I WDN="" QUIT
. Q:$$FILTER(WDN,.FIL)
; --> Callbacks for filtering selection
;
N(FIL) ; [Callback] No filter
QUIT
;
D(FIL) ; [Callback] Select by Division
N DIC,X,Y,DLAYGO,DINUM,DTOUT,DUOUT
S DIC=4,DIC(0)="AEMQ",DIC("S")="I Y=DUZ(2)!($D(^VA(200,DUZ,2,Y)))"
S DIC("B")=$$GET1^DIQ(4,DUZ(2),.01)
D ^DIC
I Y<0 K FIL QUIT
S FIL("D")=+Y
QUIT
;
W(FIL) ; [Callback] Select by Ward
N DIC,X,Y,DLAYGO,DINUM,DTOUT,DUOUT
S DIC=42,DIC(0)="AEMQ" D ^DIC
I Y<0 K FIL QUIT
S FIL("W")=+Y
QUIT
;
G(FIL) ; [Callback] Select by Ward Group
N DIC,X,Y,DLAYGO,DINUM,DTOUT,DUOUT
S DIC=57.5,DIC(0)="AEMQ" D ^DIC
I Y<0 K FIL QUIT
S FIL("G")=+Y
QUIT
;
; <-- END Callbacks for filtering selection
;
FILTER(WDN,FIL) ; [$$ Private] Filter Entries from ALL by user requested filter
; True: Filter out
; False: Don't filter
I '$D(FIL) Q 0
N WDIEN S WDIEN=$$FIND1^DIC(42,,"Q",WDN,"B")
I 'WDIEN S $EC=",U-INCONSISTENT-DATA," ; assert
;
N RES
;
I $G(FIL("D")) D Q RES
. N DIV S DIV=FIL("D")
. N WDDIV S WDDIV=$$GET1^DIQ(42,WDIEN,".015:.07","I") ; DIVISION:INSTITUTION FILE POINTER
. I 'WDDIV S $EC=",U-INCONSISTENT-DATA," ; assert
. I DIV=WDDIV S RES=0 ; Same. Don't filter out.
. I DIV'=WDDIV S RES=1 ; Different. Filter out.
;
I $G(FIL("W")) S RES=FIL("W")'=WDIEN Q RES
;
I $G(FIL("G")) S RES='$D(^PS(57.5,FIL("G"),1,"B",WDIEN)) Q RES
;
QUIT 0
; <-- END Callbacks for filtering selection
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment