| 1 | SPNPRTSR ;HIRMFO/WAA- Selective search questions ; 8/20/96
 | 
|---|
| 2 |  ;;2.0;Spinal Cord Dysfunction;;01/02/1997
 | 
|---|
| 3 |  ;;
 | 
|---|
| 4 |  ; This routine will ask the Selective Search question for the sort/
 | 
|---|
| 5 |  ; search questions.
 | 
|---|
| 6 |  ; The routine will store the data in the global
 | 
|---|
| 7 |  ; ^TMP($J,"SPNPRT","POST",SEQUENCE...
 | 
|---|
| 8 |  ; 
 | 
|---|
| 9 | EN1 ; Main Entry Point
 | 
|---|
| 10 |  N ACTION,SEQUENCE,SPNLIEN
 | 
|---|
| 11 |  S SPNLEXIT=$G(SPNLEXIT,0)
 | 
|---|
| 12 |  W !!,"User Selectable Filters:"
 | 
|---|
| 13 |  S ACTION="POST",SPNLEXIT=0
 | 
|---|
| 14 |  K ^TMP($J,"SPNPRT",ACTION)
 | 
|---|
| 15 | SORT ; Select the fields to sort bye
 | 
|---|
| 16 |  S SPNLIEN=0
 | 
|---|
| 17 |  F SEQUENCE=1:1:3 D  Q:SPNLEXIT!(SPNLIEN=-1)
 | 
|---|
| 18 |  . N EXECUTE
 | 
|---|
| 19 |  . I $D(^TMP($J,"SPNPRT",ACTION)) D DISPLAY
 | 
|---|
| 20 |  . D SELECT
 | 
|---|
| 21 |  . Q:SPNLIEN=-1!(SPNLEXIT)
 | 
|---|
| 22 |  . S SPNLIEN=+SPNLIEN,EXECUTE=$G(^SPNL(154.92,SPNLIEN,2))
 | 
|---|
| 23 |  . Q:EXECUTE=""
 | 
|---|
| 24 |  . X EXECUTE
 | 
|---|
| 25 |  . Q
 | 
|---|
| 26 | EXIT ; Exit
 | 
|---|
| 27 |  I SPNLEXIT K ^TMP($J,"SPNPRT",ACTION) Q
 | 
|---|
| 28 |  Q
 | 
|---|
| 29 | SELECT ; DIC call to select the field
 | 
|---|
| 30 |  N DIC
 | 
|---|
| 31 |  S DIC="^SPNL(154.92,",DIC(0)="AMEQ"
 | 
|---|
| 32 |  S DIC("A")="Select Filter: "
 | 
|---|
| 33 |  S DIC("S")="I '$$POST^SPNPRTSR(Y)"
 | 
|---|
| 34 |  D ^DIC
 | 
|---|
| 35 |  I $D(DUOUT)!($D(DTOUT)) S SPNLEXIT=1 Q
 | 
|---|
| 36 |  S SPNLIEN=Y
 | 
|---|
| 37 |  Q
 | 
|---|
| 38 | DISPLAY ; This subroutine will display all the fields that have been selected
 | 
|---|
| 39 |  ; by the user.
 | 
|---|
| 40 |  N SEQUENCE,ACTION,FIELD,IEN
 | 
|---|
| 41 |  S SEQUENCE=0,ACTION="POST"
 | 
|---|
| 42 |  F  S SEQUENCE=$O(^TMP($J,"SPNPRT",ACTION,SEQUENCE)) Q:SEQUENCE<1  D
 | 
|---|
| 43 |  . W !,"Sequence: ",SEQUENCE
 | 
|---|
| 44 |  . S FIELD=0 F  S FIELD=$O(^TMP($J,"SPNPRT",ACTION,SEQUENCE,FIELD)) Q:FIELD=""  D
 | 
|---|
| 45 |  .. I $G(^TMP($J,"SPNPRT",ACTION,SEQUENCE,FIELD))'="" W !,?10,FIELD,"=",$P(^(FIELD),U,2)
 | 
|---|
| 46 |  .. S IEN="" F  S IEN=$O(^TMP($J,"SPNPRT",ACTION,SEQUENCE,FIELD,IEN)) Q:IEN=""  D
 | 
|---|
| 47 |  ... W !,?20,FIELD,"=",$P(^TMP($J,"SPNPRT",ACTION,SEQUENCE,FIELD,IEN),U,2)
 | 
|---|
| 48 |  ... Q
 | 
|---|
| 49 |  .. Q
 | 
|---|
| 50 |  . Q
 | 
|---|
| 51 |  Q
 | 
|---|
| 52 | POST(SPNIEN) ; This Function is to determine if the search is a pre action
 | 
|---|
| 53 |  ; INPUT:
 | 
|---|
| 54 |  ;   SPNIEN = The interneal entry number of the search
 | 
|---|
| 55 |  ; Output
 | 
|---|
| 56 |  ;   SPNFLG = 1 the action is a pre action 0 not a pre action
 | 
|---|
| 57 |  ;
 | 
|---|
| 58 |  N SPNFLG
 | 
|---|
| 59 |  S SPNFLG=0
 | 
|---|
| 60 |  I $G(^SPNL(154.92,SPNIEN,3))>0 S SPNFLG=1
 | 
|---|
| 61 |  I $G(^SPNL(154.92,SPNIEN,4))>0 S SPNFLG=1
 | 
|---|
| 62 |  Q SPNFLG
 | 
|---|