| 1 | PXRMLIST ; SLC/PKR/PJH - Clinical Reminders list functions. ;07/17/2007 | 
|---|
| 2 | ;;2.0;CLINICAL REMINDERS;**6**;Feb 04, 2005;Build 123 | 
|---|
| 3 | ;Used in the reminder exchange utility for building lists of | 
|---|
| 4 | ;reminders, Exchange File entries, etc. | 
|---|
| 5 | ;======================================================= | 
|---|
| 6 | FRDEF(NAME,PNAME) ;Format the reminder name and print name. | 
|---|
| 7 | N IND,TEMP | 
|---|
| 8 | S TEMP=$$LJ^XLFSTR(NAME,40," ") | 
|---|
| 9 | S TEMP=TEMP_PNAME | 
|---|
| 10 | Q TEMP | 
|---|
| 11 | ; | 
|---|
| 12 | ;======================================================= | 
|---|
| 13 | FMT(NUMBER,NAME,SOURCE,DATE,FMTSTR,NL,OUTPUT) ;Format  entry number, name, | 
|---|
| 14 | ;source, and date packed for LM display. | 
|---|
| 15 | N TEMP,TSOURCE | 
|---|
| 16 | S TEMP=NUMBER_U_NAME | 
|---|
| 17 | S TSOURCE=$E($P(SOURCE,",",1),1,12)_"@"_$E($P(SOURCE," at ",2),1,12) | 
|---|
| 18 | S TEMP=TEMP_U_TSOURCE | 
|---|
| 19 | S DATE=$$FMTE^XLFDT(DATE,"5Z") | 
|---|
| 20 | S TEMP=TEMP_U_DATE | 
|---|
| 21 | D COLFMT^PXRMTEXT(FMTSTR,TEMP," ",.NL,.OUTPUT) | 
|---|
| 22 | Q | 
|---|
| 23 | ; | 
|---|
| 24 | ;======================================================= | 
|---|
| 25 | LIST ;Print a list of location lists. | 
|---|
| 26 | N BY,DIC,FLDS,FR,L,PXRMEDOK | 
|---|
| 27 | S PXRMEDOK=1 | 
|---|
| 28 | S BY=".01" | 
|---|
| 29 | S DIC="^PXRMD(810.9," | 
|---|
| 30 | S FLDS="[PXRM LOCATION LIST LIST]" | 
|---|
| 31 | S FR="" | 
|---|
| 32 | S L=0 | 
|---|
| 33 | D EN1^DIP | 
|---|
| 34 | Q | 
|---|
| 35 | ; | 
|---|
| 36 | ;======================================================= | 
|---|
| 37 | MRKINACT(TEXT) ;Append the inactive mark to TEXT in column 77. | 
|---|
| 38 | N IC,NSPA | 
|---|
| 39 | S NSPA=77-$L(TEXT) | 
|---|
| 40 | F IC=1:1:NSPA S TEXT=TEXT_" " | 
|---|
| 41 | S TEXT=TEXT_"X" | 
|---|
| 42 | Q TEXT | 
|---|
| 43 | ; | 
|---|
| 44 | ;======================================================= | 
|---|
| 45 | QUERYAO() ;See if the user wants only active reminders listed. | 
|---|
| 46 | N DIR,DIROUT,DIRUT,DTOUT,DUOUT,X,Y | 
|---|
| 47 | S DIR(0)="YA" | 
|---|
| 48 | S DIR("A")="List active reminders only? " | 
|---|
| 49 | S DIR("B")="Y" | 
|---|
| 50 | W ! | 
|---|
| 51 | D ^DIR | 
|---|
| 52 | Q Y | 
|---|
| 53 | ; | 
|---|
| 54 | ;======================================================= | 
|---|
| 55 | RDEF(DEFLIST,ARO) ;Build a list of the name and print name of all | 
|---|
| 56 | ;reminder definitions. | 
|---|
| 57 | N INACTIVE,IEN,NAME,PNAME,REMINDER | 
|---|
| 58 | S INACTIVE="" | 
|---|
| 59 | ;Build the list of reminders in alphabetical order. | 
|---|
| 60 | S VALMCNT=0 | 
|---|
| 61 | S NAME="" | 
|---|
| 62 | F  S NAME=$O(^PXD(811.9,"B",NAME)) Q:NAME=""  D | 
|---|
| 63 | . S IEN=$O(^PXD(811.9,"B",NAME,"")) | 
|---|
| 64 | . S REMINDER=^PXD(811.9,IEN,0) | 
|---|
| 65 | . S INACTIVE=$P(REMINDER,U,6) | 
|---|
| 66 | . I (ARO)&(INACTIVE) Q | 
|---|
| 67 | . S VALMCNT=VALMCNT+1 | 
|---|
| 68 | . S PNAME=$P(REMINDER,U,3) | 
|---|
| 69 | . S DEFLIST(VALMCNT,0)=$$FRDEF(NAME,PNAME) | 
|---|
| 70 | . I INACTIVE D | 
|---|
| 71 | .. S DEFLIST(VALMCNT,0)=$$MRKINACT(DEFLIST(VALMCNT,0)) | 
|---|
| 72 | S DEFLIST("VALMCNT")=VALMCNT | 
|---|
| 73 | Q | 
|---|
| 74 | ; | 
|---|
| 75 | ;======================================================= | 
|---|
| 76 | REXL(RLIST) ;Build a list of exchange repository entries. | 
|---|
| 77 | N DATE,EXIEN,FMTSTR,IND,NAME,NL,NUM,OUTPUT,SOURCE,STR | 
|---|
| 78 | ;Build the list in alphabetical order. | 
|---|
| 79 | S FMTSTR=$$LMFMTSTR^PXRMTEXT(.VALMDDF,"RLLL") | 
|---|
| 80 | S (NUM,VALMCNT)=0 | 
|---|
| 81 | S NAME="" | 
|---|
| 82 | F  S NAME=$O(^PXD(811.8,"B",NAME)) Q:NAME=""  D | 
|---|
| 83 | . S DATE="" | 
|---|
| 84 | . F  S DATE=$O(^PXD(811.8,"B",NAME,DATE)) Q:DATE=""  D | 
|---|
| 85 | .. S EXIEN=$O(^PXD(811.8,"B",NAME,DATE,"")) | 
|---|
| 86 | .. S SOURCE=$P(^PXD(811.8,EXIEN,0),U,2) | 
|---|
| 87 | .. S NUM=NUM+1 | 
|---|
| 88 | .. S ^TMP(RLIST,$J,"SEL",NUM)=EXIEN | 
|---|
| 89 | .. D FMT(NUM,NAME,SOURCE,DATE,FMTSTR,.NL,.OUTPUT) | 
|---|
| 90 | .. F IND=1:1:NL D | 
|---|
| 91 | ... S VALMCNT=VALMCNT+1,^TMP(RLIST,$J,VALMCNT,0)=OUTPUT(IND) | 
|---|
| 92 | ... S ^TMP(RLIST,$J,"IDX",VALMCNT,NUM)="" | 
|---|
| 93 | S ^TMP(RLIST,$J,"VALMCNT")=VALMCNT | 
|---|
| 94 | Q | 
|---|
| 95 | ; | 
|---|
| 96 | ;======================================================= | 
|---|
| 97 | SPONSOR ;Print a list of Sponsors. | 
|---|
| 98 | N BY,DIC,FLDS,FR,L,PXRMEDOK | 
|---|
| 99 | S PXRMEDOK=1 | 
|---|
| 100 | S BY=".01" | 
|---|
| 101 | S DIC="^PXRMD(811.6," | 
|---|
| 102 | S FLDS="[PXRM SPONSOR LIST]" | 
|---|
| 103 | S FR="" | 
|---|
| 104 | S L=0 | 
|---|
| 105 | D EN1^DIP | 
|---|
| 106 | Q | 
|---|
| 107 | ; | 
|---|