| 1 | PXRMXSC ; SLC/PJH - Reminder reports service category selection ;12/18/2006 | 
|---|
| 2 | ;;2.0;CLINICAL REMINDERS;**4,6**;Feb 04, 2005;Build 123 | 
|---|
| 3 | ; | 
|---|
| 4 | SCAT ;Get the list of service categories. | 
|---|
| 5 | N DIR,DIEA,IC,JC,NSC,PCESVC,SCA,VALID,X,Y | 
|---|
| 6 | K DIRUT,DTOUT,DUOUT | 
|---|
| 7 | ;Build a list of allowed service categories. PCE uses a subset of the | 
|---|
| 8 | ;categories in the file.  These are stored in PCESVC. | 
|---|
| 9 | S PCESVC="" | 
|---|
| 10 | D HELP^DIE(9000010,"",.07,"S","SCA") | 
|---|
| 11 | S NSC=SCA("DIHELP") | 
|---|
| 12 | S DIR("?")=U_"D SCATHELP^PXRMXSC" | 
|---|
| 13 | S DIR("??")=U_"D SCATHELP^PXRMXSC" | 
|---|
| 14 | SCATP ; | 
|---|
| 15 | S DIR(0)="FU"_U_"1:"_NSC | 
|---|
| 16 | S DIR("A")="Select SERVICE CATEGORIES" | 
|---|
| 17 | S DIR("B")="A,I" | 
|---|
| 18 | W ! | 
|---|
| 19 | D ^DIR K DIR | 
|---|
| 20 | I $D(DIROUT) S DTOUT=1 | 
|---|
| 21 | I $D(DTOUT)!($D(DUOUT)) Q | 
|---|
| 22 | ;Make sure we have a valid list. | 
|---|
| 23 | S VALID=$$VSCLIST(Y,PCESVC) | 
|---|
| 24 | I 'VALID G SCATP | 
|---|
| 25 | S PXRMSCAT=$$UP^XLFSTR(Y) | 
|---|
| 26 | F IC=1:1:$L(PXRMSCAT,",") S X=$P(PXRMSCAT,",",IC),PXRMSCAT(X)="" | 
|---|
| 27 | Q | 
|---|
| 28 | ; | 
|---|
| 29 | ;====================================================== | 
|---|
| 30 | SCATHELP ;? help for service categories. | 
|---|
| 31 | N ARRAY,IC,JC,NSC,PCESVC | 
|---|
| 32 | S PCESVC="" | 
|---|
| 33 | D HELP^DIE(9000010,"",.07,"S","SCA") | 
|---|
| 34 | S NSC=SCA("DIHELP") | 
|---|
| 35 | S JC=0 | 
|---|
| 36 | F IC=2:1:NSC D | 
|---|
| 37 | . S X=$P(SCA("DIHELP",IC)," ",1) | 
|---|
| 38 | . I PCESVC="" S PCESVC=X | 
|---|
| 39 | . E  S PCESVC=PCESVC_","_X | 
|---|
| 40 | . S JC=JC+1 | 
|---|
| 41 | . S ARRAY(JC)=SCA("DIHELP",IC) | 
|---|
| 42 | S NSC=JC | 
|---|
| 43 | W !!,"Enter the letter(s), separated by commas, corresponding to the desired service" | 
|---|
| 44 | W !,"category or categories. For example A,H,T,E would allow only encounters with" | 
|---|
| 45 | W !,"service categories of ambulatory, hospitalization, telecommunications, and" | 
|---|
| 46 | W !,"event (historical) to be included." | 
|---|
| 47 | W !!,"The possible service categories for the report are:",! | 
|---|
| 48 | F IC=1:1:NSC W !,ARRAY(IC) | 
|---|
| 49 | Q | 
|---|
| 50 | ; | 
|---|
| 51 | ;====================================================== | 
|---|
| 52 | VSCLIST(LIST,SLIST) ;LIST is a comma separated list of service categories. SLIST | 
|---|
| 53 | ;is the standard list of service categories. Make sure all the | 
|---|
| 54 | ;elements of LIST are in the standard list SLIST. If they are, then | 
|---|
| 55 | ;LIST is valid. Used for selection in reminder reports and as input | 
|---|
| 56 | ;transform SERVICE CATEGORY LIST in the REMINDER REPORT TEMPLATE | 
|---|
| 57 | ;file #810.1. | 
|---|
| 58 | I LIST="" Q 1 | 
|---|
| 59 | I $G(SLIST)="" D | 
|---|
| 60 | . N IC,SCA,TEMP | 
|---|
| 61 | . D HELP^DIE(9000010,"",.07,"S","SCA") | 
|---|
| 62 | . S SLIST="" | 
|---|
| 63 | . F IC=2:1:SCA("DIHELP") D | 
|---|
| 64 | .. S TEMP=$P(SCA("DIHELP",IC)," ",1) | 
|---|
| 65 | .. I SLIST="" S SLIST=TEMP | 
|---|
| 66 | .. E  S SLIST=SLIST_","_TEMP | 
|---|
| 67 | N IC,LE,LEN,VALID | 
|---|
| 68 | S LIST=$$UP^XLFSTR(LIST) | 
|---|
| 69 | S VALID=1 | 
|---|
| 70 | S LEN=$L(LIST,",") | 
|---|
| 71 | F IC=1:1:LEN D | 
|---|
| 72 | . S LE=$P(LIST,",",IC) | 
|---|
| 73 | . I LE="" D  Q | 
|---|
| 74 | .. D EN^DDIOL("Null is not a valid service category!") | 
|---|
| 75 | .. S VALID=0 | 
|---|
| 76 | . I SLIST'[LE D | 
|---|
| 77 | .. D EN^DDIOL(LE_" is an invalid service category!") | 
|---|
| 78 | .. S VALID=0 | 
|---|
| 79 | Q VALID | 
|---|
| 80 | ; | 
|---|