| 1 | GMPLBLD1 ; SLC/MKB -- Bld PL Selection Lists cont ;;3/12/03 13:48
 | 
|---|
| 2 |  ;;2.0;Problem List;**3,28**;Aug 25, 1994
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ; This routine invokes IA #3991,#10082
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 | SEL() ; Select item(s) from list
 | 
|---|
| 7 |  N DIR,X,Y,MAX,GRP S GRP=$D(GMPLGRP) ; =1 if editing groups, 0 if lists
 | 
|---|
| 8 |  S MAX=$P($G(^TMP("GMPLST",$J,0)),U,1) I MAX'>0 Q "^"
 | 
|---|
| 9 |  S DIR(0)="LAO^1:"_MAX,DIR("A")="Select "_$S('GRP:"Category",1:"Problem")_"(s)"
 | 
|---|
| 10 |  S:MAX>1 DIR("A")=DIR("A")_" (1-"_MAX_"): "
 | 
|---|
| 11 |  S:MAX'>1 DIR("A")=DIR("A")_": ",DIR("B")=1
 | 
|---|
| 12 |  S DIR("?")="Enter the "_$S('GRP:"categories",1:"problems")_" you wish to select, as a range or list of numbers"
 | 
|---|
| 13 |  D ^DIR S:$D(DTOUT)!(X="") Y="^"
 | 
|---|
| 14 |  Q Y
 | 
|---|
| 15 |  ;
 | 
|---|
| 16 | SEL1() ; Select item from list
 | 
|---|
| 17 |  N DIR,X,Y,MAX,GRP S GRP=$D(GMPLGRP) ; =1 if editing groups, 0 if lists
 | 
|---|
| 18 |  S MAX=$P($G(^TMP("GMPLST",$J,0)),U,1) I MAX'>0 Q "^"
 | 
|---|
| 19 |  S DIR(0)="NAO^1:"_MAX_":0",DIR("A")="Select "_$S('GRP:"Category",1:"Problem")
 | 
|---|
| 20 |  S:MAX>1 DIR("A")=DIR("A")_" (1-"_MAX_"): "
 | 
|---|
| 21 |  S:MAX'>1 DIR("A")=DIR("A")_": ",DIR("B")=1
 | 
|---|
| 22 |  S DIR("?")="Enter the "_$S('GRP:"category",1:"problem")_" you wish to select, by number"
 | 
|---|
| 23 |  D ^DIR I $D(DTOUT)!(X="") S Y="^"
 | 
|---|
| 24 |  Q Y
 | 
|---|
| 25 |  ;
 | 
|---|
| 26 | SEQ(NUM) ; Enter/edit seq #, returns new #
 | 
|---|
| 27 |  N DIR,X,Y,GRP S GRP=$D(GMPLGRP) ; =1 if editing groups, 0 if lists
 | 
|---|
| 28 |  S DIR(0)="NA^.01:999.99:2",DIR("A")="SEQUENCE: " S:NUM DIR("B")=NUM
 | 
|---|
| 29 |  S DIR("?",1)="Enter a number indicating the sequence of this item in the "_$S('GRP:"list;",1:"category;")
 | 
|---|
| 30 |  S DIR("?")="up to 2 decimal places may be used, to order these items."
 | 
|---|
| 31 | SQ D ^DIR I $D(DTOUT)!(X="^") Q "^"
 | 
|---|
| 32 |  I X?1"^".E W $C(7),$$NOJUMP G SQ
 | 
|---|
| 33 |  I Y=NUM Q NUM
 | 
|---|
| 34 |  I $D(^TMP("GMPLIST",$J,"SEQ",Y)) D  G SQ
 | 
|---|
| 35 |  . W $C(7),!!,"Sequence number already in use!  Please enter another number."
 | 
|---|
| 36 |  . W !,"Use the 'Change View' option to display the current sequence numbers.",!
 | 
|---|
| 37 |  Q Y
 | 
|---|
| 38 |  ;
 | 
|---|
| 39 | HDR(TEXT) ; Enter/edit group subheader text in list
 | 
|---|
| 40 |  N DIR,X,Y S:$L(TEXT) DIR("B")=TEXT
 | 
|---|
| 41 |  S DIR(0)="FAO^2:30",DIR("A")="HEADER: "
 | 
|---|
| 42 |  S DIR("?")="Enter the text you wish displayed as a header for this category of problems"
 | 
|---|
| 43 |  S:$D(DIR("B")) DIR("?",1)=DIR("?")_";",DIR("?")="enter '@' if no header text is desired."
 | 
|---|
| 44 | H1 D ^DIR I $D(DTOUT)!(X="^") Q "^"
 | 
|---|
| 45 |  I X?1"^".E W $C(7),$$NOJUMP G H1
 | 
|---|
| 46 |  I X="@" Q:$$SURE^GMPLX "" G H1
 | 
|---|
| 47 |  Q Y
 | 
|---|
| 48 |  ;
 | 
|---|
| 49 | TEXT(TEXT) ; Edit problem text
 | 
|---|
| 50 |  N DIR,X,Y S:$L(TEXT) DIR("B")=TEXT
 | 
|---|
| 51 |  S DIR(0)="FAO^2:80",DIR("A")="DISPLAY TEXT: "
 | 
|---|
| 52 |  S DIR("?")="Enter the text you wish presented here for this problem."
 | 
|---|
| 53 | T1 D ^DIR I $D(DTOUT)!("^"[X) S Y="^" G TQ
 | 
|---|
| 54 |  I X?1"^".E W $C(7),$$NOJUMP G T1
 | 
|---|
| 55 |  I X="@" G:'$$SURE^GMPLX T1 S Y="@" G TQ
 | 
|---|
| 56 | TQ Q Y
 | 
|---|
| 57 |  ;
 | 
|---|
| 58 | CODE(CODE) ; Enter/edit problem code
 | 
|---|
| 59 |  N DIR,X,Y
 | 
|---|
| 60 |  S DIR(0)="PAO^ICD9(:QEMZ",DIR("A")="ICD CODE: " S:$L(CODE) DIR("B")=CODE
 | 
|---|
| 61 |  S DIR("?")="Enter the code you wish to be displayed with this problem."
 | 
|---|
| 62 |  S DIR("S")="I $$STATCHK^ICDAPIU($P(^(0),U),DT)"
 | 
|---|
| 63 | C1 D ^DIR I $D(DTOUT)!(X="^") S Y="^" G CQ
 | 
|---|
| 64 |  I X?1"^".E W $C(7),$$NOJUMP G C1
 | 
|---|
| 65 |  I X="@" G:'$$SURE^GMPLX C1 S Y=""
 | 
|---|
| 66 |  S:+Y'>0 Y="" S:+Y>0 Y=Y(0,0)
 | 
|---|
| 67 | CQ Q Y
 | 
|---|
| 68 |  ;
 | 
|---|
| 69 | FLAG(DFLT) ; Edit category flag
 | 
|---|
| 70 |  N DIR,X,Y S DIR(0)="YAO",DIR("B")=$S(+DFLT:"YES",1:"NO")
 | 
|---|
| 71 |  S DIR("A")="SHOW PROBLEMS AUTOMATICALLY? "
 | 
|---|
| 72 |  S DIR("?",1)="Enter YES if you wish the problems contained in this category to be",DIR("?",2)="automatically displayed upon entry to this list; NO will display only the",DIR("?")="category header until the user selects it to view."
 | 
|---|
| 73 | F1 D ^DIR I $D(DTOUT)!(X="^") Q "^"
 | 
|---|
| 74 |  I X?1"^".E W $C(7),$$NOJUMP G F1
 | 
|---|
| 75 |  Q Y
 | 
|---|
| 76 |  ;
 | 
|---|
| 77 | NOJUMP() ; Message
 | 
|---|
| 78 |  Q "   ^-jumping not allowed!"
 | 
|---|
| 79 |  ;
 | 
|---|
| 80 | RETURN() ; End of page prompt
 | 
|---|
| 81 |  N DIR,X,Y
 | 
|---|
| 82 |  S DIR(0)="E" D ^DIR
 | 
|---|
| 83 |  Q +Y
 | 
|---|
| 84 |  ;
 | 
|---|
| 85 | TMPIFN() ; Get temporary IFN ("#N") for ^TMP("GMPLIST",$J,)
 | 
|---|
| 86 |  N I,LAST S (I,LAST)=0
 | 
|---|
| 87 |  F  S I=$O(^TMP("GMPLIST",$J,I)) Q:+I'>0  S:I?1.N1"N" LAST=+I
 | 
|---|
| 88 |  S I=LAST+1,I=$E("0000",1,4-$L(I))_I
 | 
|---|
| 89 | TMPQ Q I_"N"
 | 
|---|
| 90 |  ;
 | 
|---|
| 91 | DELETE(IFN) ; Kill entry in ^TMP("GMPLIST",$J,)
 | 
|---|
| 92 |  N SEQ,ITEM S ^TMP("GMPLIST",$J,0)=^TMP("GMPLIST",$J,0)-1
 | 
|---|
| 93 |  S SEQ=+^TMP("GMPLIST",$J,IFN),ITEM=$P(^TMP("GMPLIST",$J,IFN),U,2),^TMP("GMPLIST",$J,IFN)="@"
 | 
|---|
| 94 |  K ^TMP("GMPLIST",$J,"SEQ",SEQ),^TMP("GMPLIST",$J,"PROB",ITEM),^TMP("GMPLIST",$J,"GRP",ITEM)
 | 
|---|
| 95 |  K:IFN?1.N1"N" ^TMP("GMPLIST",$J,IFN)
 | 
|---|
| 96 |  Q
 | 
|---|
| 97 |  ;
 | 
|---|
| 98 | RESEQ ; Resequence items
 | 
|---|
| 99 |  N SEL,NUM,SEQ,NSEQ,PIECE,IFN,GMPQUIT S VALMBCK=""
 | 
|---|
| 100 |  S SEL=$$SEL G:SEL="^" RSQ
 | 
|---|
| 101 |  F PIECE=1:1:$L(SEL,",") D  Q:$D(GMPQUIT)  W !
 | 
|---|
| 102 |  . S NUM=$P(SEL,",",PIECE) Q:NUM'>0
 | 
|---|
| 103 |  . S IFN=$P($G(^TMP("GMPLST",$J,"B",NUM)),U,1) Q:+IFN'>0  S SEQ=$P(^TMP("GMPLIST",$J,IFN),U,1)
 | 
|---|
| 104 |  . W !!,$P(^TMP("GMPLIST",$J,IFN),U,3)
 | 
|---|
| 105 |  . S NSEQ=$$SEQ(SEQ) I NSEQ="^" S GMPQUIT=1 Q 
 | 
|---|
| 106 |  .I SEQ'=NSEQ S ^TMP("GMPLIST",$J,IFN)=NSEQ_U_$P(^TMP("GMPLIST",$J,IFN),U,2,$L(^TMP("GMPLIST",$J,IFN),U)),^TMP("GMPLIST",$J,"SEQ",NSEQ)=IFN,GMPREBLD=1 K ^TMP("GMPLIST",$J,"SEQ",SEQ)
 | 
|---|
| 107 |  I $D(GMPREBLD) S VALMBCK="R",GMPLSAVE=1 ; D BUILD in exit action
 | 
|---|
| 108 | RSQ S:'VALMCC VALMBCK="R" S VALMSG=$$MSG^GMPLX
 | 
|---|
| 109 |  Q
 | 
|---|
| 110 |  ;
 | 
|---|
| 111 | EDIT ; Edit category display
 | 
|---|
| 112 |  N GRPS,NUM,IFN,HDR,FLG,PIECE,GMPQUIT,GMPREBLD S VALMBCK=""
 | 
|---|
| 113 |  S GRPS=$$SEL G:GRPS="^" EDQ
 | 
|---|
| 114 |  F PIECE=1:1:$L(GRPS,",") D  Q:$D(GMPQUIT)  W !
 | 
|---|
| 115 |  . S NUM=$P(GRPS,",",PIECE) Q:NUM'>0
 | 
|---|
| 116 |  .S IFN=$P($G(^TMP("GMPLST",$J,"B",NUM)),U,1) Q:+IFN'>0
 | 
|---|
| 117 |  . S HDR=$P(^TMP("GMPLIST",$J,IFN),U,3),FLG=$P(^TMP("GMPLIST",$J,IFN),U,4)
 | 
|---|
| 118 |  . S HDR=$$HDR(HDR) I HDR="^" S GMPQUIT=1 Q
 | 
|---|
| 119 |  . S FLG=$$FLAG(FLG) I FLG="^" S GMPQUIT=1 Q
 | 
|---|
| 120 |  . S $P(^TMP("GMPLIST",$J,IFN),U,3,4)=HDR_U_FLG,GMPREBLD=1
 | 
|---|
| 121 |  I $D(GMPREBLD) S VALMBCK="R",GMPLSAVE=1 D BUILD^GMPLBLD("^TMP(""GMPLIST"",$J)",GMPLMODE)
 | 
|---|
| 122 | EDQ S:'VALMCC VALMBCK="R" S VALMSG=$$MSG^GMPLX
 | 
|---|
| 123 |  Q
 | 
|---|