| 1 | PXRMFIP ; SLC/PJH - Edit/Inquire Finding Item Parameters ;03/09/2000
 | 
|---|
| 2 |  ;;2.0;CLINICAL REMINDERS;;Feb 04, 2005
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ;General selection
 | 
|---|
| 5 | START N DIC,PXRMGTYP,PXRMHD,Y
 | 
|---|
| 6 | SELECT ;Get lists of finding types for display
 | 
|---|
| 7 |  N DEF,DEF1,DEF2 D DEF^PXRMRUTL("811.902",.DEF,.DEF1,.DEF2)
 | 
|---|
| 8 |  S PXRMHD="Finding Item Parameters",PXRMFIP="",PXRMGTYP="FIP"
 | 
|---|
| 9 |  D START^PXRMSEL(PXRMHD,PXRMGTYP,"PXRMFIP")
 | 
|---|
| 10 |  ;Should return a value
 | 
|---|
| 11 |  I PXRMFIP D  G SELECT
 | 
|---|
| 12 |  .S PXRMHD="FINDING ITEM PARAMETER NAME:"
 | 
|---|
| 13 |  .;Listman option
 | 
|---|
| 14 |  .D START^PXRMGEN(PXRMHD,PXRMGTYP,PXRMFIP)
 | 
|---|
| 15 |  ;
 | 
|---|
| 16 | END Q
 | 
|---|
| 17 |  ;
 | 
|---|
| 18 |  ;List all finding item parameters (for protocol PXRM SELECTION LIST)
 | 
|---|
| 19 |  ;--------------------------------
 | 
|---|
| 20 | ALL N BY,DC,DHD,DIC,FLDS,FR,L,LOGIC,NOW,TO,Y
 | 
|---|
| 21 |  S Y=1
 | 
|---|
| 22 |  D SET
 | 
|---|
| 23 |  S DIC="^PXRMD(801.43,"
 | 
|---|
| 24 |  S BY=".01"
 | 
|---|
| 25 |  S FR=""
 | 
|---|
| 26 |  S TO=""
 | 
|---|
| 27 |  S DHD="W ?0 D HED^PXRMFIP"
 | 
|---|
| 28 |  D DISP
 | 
|---|
| 29 |  Q
 | 
|---|
| 30 |  ;
 | 
|---|
| 31 |  ;Inquire/Print Option (for protocol PXRM GENERAL INQUIRE/PRINT)
 | 
|---|
| 32 |  ;--------------------
 | 
|---|
| 33 | INQ(Y) N BY,DC,DHD,DIC,FLDS,FR,L,LOGIC,NOW,TO
 | 
|---|
| 34 |  S DIC="^PXRMD(801.43,"
 | 
|---|
| 35 |  S DIC(0)="AEMQ"
 | 
|---|
| 36 |  D SET
 | 
|---|
| 37 |  D DISP
 | 
|---|
| 38 |  Q
 | 
|---|
| 39 |  ;
 | 
|---|
| 40 |  ;Display Header (see DHD variable)
 | 
|---|
| 41 |  ;--------------
 | 
|---|
| 42 | HED N TEMP,TEXTLEN,TEXTHED,TEXTUND
 | 
|---|
| 43 |  S TEXTHED="FINDING ITEM PARAMETER LIST"
 | 
|---|
| 44 |  S TEXTUND=$TR($J("",IOM)," ","-")
 | 
|---|
| 45 |  S TEMP=NOW_"  Page "_DC
 | 
|---|
| 46 |  S TEXTLEN=$L(TEMP)
 | 
|---|
| 47 |  W TEXTHED
 | 
|---|
| 48 |  W ?(IOM-TEXTLEN),TEMP
 | 
|---|
| 49 |  W !,TEXTUND,!!
 | 
|---|
| 50 |  Q
 | 
|---|
| 51 |  ;
 | 
|---|
| 52 |  ;DISPLAY (Display from FLDS array)
 | 
|---|
| 53 |  ;-------
 | 
|---|
| 54 | DISP S L=0,FLDS="[PXRM FINDING ITEM PARAMETERS]"
 | 
|---|
| 55 |  D EN1^DIP
 | 
|---|
| 56 |  Q
 | 
|---|
| 57 |  ;
 | 
|---|
| 58 | SET ;Setup all the variables
 | 
|---|
| 59 |  ; Set Date for Header
 | 
|---|
| 60 |  S NOW=$$NOW^XLFDT
 | 
|---|
| 61 |  S NOW=$$FMTE^XLFDT(NOW,"1P")
 | 
|---|
| 62 |  ;
 | 
|---|
| 63 |  ;These variables need to be setup every time because DIP kills them.
 | 
|---|
| 64 |  S BY="NUMBER"
 | 
|---|
| 65 |  S (FR,TO)=+$P(Y,U,1)
 | 
|---|
| 66 |  S DHD="W ?0 D HED^PXRMFIP"
 | 
|---|
| 67 |  ;
 | 
|---|
| 68 |  Q
 | 
|---|
| 69 |  ;
 | 
|---|
| 70 |  ;Build display for selected finding item parametr - Called from PXRMGEN
 | 
|---|
| 71 |  ;----------------------------------------------------------------------
 | 
|---|
| 72 | FIP(PXRMFIP) ;
 | 
|---|
| 73 |  N DATA,DDIS,DNAM,DIEN,DHED,DTYP,FDES,FDIS,FITEM,FGLOB,FLIT,FSUB,FTYP
 | 
|---|
| 74 |  N HED1,HED2,LCT,SUB
 | 
|---|
| 75 |  S VALMCNT=0 K ^TMP("PXRMGENS",$J),^TMP("PXRMGEN",$J)
 | 
|---|
| 76 |  ;Format headings to include finding item parameter name
 | 
|---|
| 77 |  S DATA=$G(^PXRMD(801.43,PXRMFIP,0)),FDES=$P(DATA,U),FDIS=$P(DATA,U,3)
 | 
|---|
| 78 |  S HEADER=PXRMHD_" "_FDES_"  ("_$S(FDIS:"DISABLED",1:"ENABLED")_")"
 | 
|---|
| 79 |  ;Dialog ien
 | 
|---|
| 80 |  S DATA=$G(^PXRMD(801.43,PXRMFIP,0)),DIEN=$P(DATA,U,4)
 | 
|---|
| 81 |  ;Finding Item
 | 
|---|
| 82 |  S FITEM=$P(DATA,U,2),FTYP=$P(FITEM,";",2),FSUB=$P(FITEM,";")
 | 
|---|
| 83 |  S FLIT="??",FDES=$P(DATA,U)
 | 
|---|
| 84 |  I FTYP]"" S FTYP=$G(DEF1(FTYP)) S:FTYP="" FTYP="??"
 | 
|---|
| 85 |  I FSUB,FTYP'="??" D
 | 
|---|
| 86 |  .S FLIT=FTYP_"("_FSUB_")",FGLOB=U_$P(FITEM,";",2)_FSUB_",0)"
 | 
|---|
| 87 |  .S FDES=$P($G(@FGLOB),U) I FDES="" S FDES="??"
 | 
|---|
| 88 |  S HED1="Finding Type: "_FLIT
 | 
|---|
| 89 |  S HED2="Finding Item: "_FDES
 | 
|---|
| 90 |  ;Dialog details 
 | 
|---|
| 91 |  I DIEN S DATA=$G(^PXRMD(801.41,DIEN,0))
 | 
|---|
| 92 |  ;Unknown pointer
 | 
|---|
| 93 |  I ('DIEN)!(DATA="") D  Q
 | 
|---|
| 94 |  .S VALMCNT=VALMCNT+1
 | 
|---|
| 95 |  .S ^TMP("PXRMGEN",$J,VALMCNT,0)="Bad Pointer to Dialog File"
 | 
|---|
| 96 |  .S ^TMP("PXRMGEN",$J,"VALMCNT")=VALMCNT
 | 
|---|
| 97 |  ;Dialog type, name and disabled flag
 | 
|---|
| 98 |  S DTYP=$P(DATA,U,4)
 | 
|---|
| 99 |  S DHED=$S(DTYP="G":"Group",DTYP="E":"Element",1:"??")
 | 
|---|
| 100 |  ;
 | 
|---|
| 101 |  ;Dialog Element Details
 | 
|---|
| 102 |  I DTYP="E" D ELEMENT(DIEN,"")
 | 
|---|
| 103 |  ;
 | 
|---|
| 104 |  ;Dialog Group Details
 | 
|---|
| 105 |  I DTYP="G" D
 | 
|---|
| 106 |  .S DDIS=$P(DATA,U,3),DNAM=$P(DATA,U)
 | 
|---|
| 107 |  .S DNAM=DNAM_"  ("_$S(DDIS:"DISABLED",1:"ENABLED")_")"
 | 
|---|
| 108 |  .S VALMCNT=VALMCNT+1
 | 
|---|
| 109 |  .S ^TMP("PXRMGEN",$J,VALMCNT,0)=$J("",79)
 | 
|---|
| 110 |  .S VALMCNT=VALMCNT+1
 | 
|---|
| 111 |  .S ^TMP("PXRMGEN",$J,VALMCNT,0)="Dialog Group: "_DNAM
 | 
|---|
| 112 |  .S ^TMP("PXRMGEN",$J,"VALMCNT")=VALMCNT
 | 
|---|
| 113 |  .;
 | 
|---|
| 114 |  .N DSEQ,EIEN,SUB S SUB=0
 | 
|---|
| 115 |  .;Loop through group for elements
 | 
|---|
| 116 |  .F  S SUB=$O(^PXRMD(801.41,DIEN,10,SUB)) Q:'SUB  D
 | 
|---|
| 117 |  ..S DATA=$G(^PXRMD(801.41,DIEN,10,SUB,0)) Q:DATA=""
 | 
|---|
| 118 |  ..S DSEQ=$P(DATA,U) Q:'DSEQ  S EIEN=$P(DATA,U,2) Q:'EIEN
 | 
|---|
| 119 |  ..;Save dialog elements in sequence order
 | 
|---|
| 120 |  ..S ^TMP("PXRMGENS",$J,DSEQ)=EIEN
 | 
|---|
| 121 |  .;
 | 
|---|
| 122 |  .;Put the list into the array List Manager is using.
 | 
|---|
| 123 |  .S DSEQ="",LCT=0
 | 
|---|
| 124 |  .F  S DSEQ=$O(^TMP("PXRMGENS",$J,DSEQ)) Q:DSEQ=""  D
 | 
|---|
| 125 |  ..S EIEN=$G(^TMP("PXRMGENS",$J,DSEQ)) Q:'EIEN
 | 
|---|
| 126 |  ..D ELEMENT(EIEN,DSEQ)
 | 
|---|
| 127 |  .;Final linefeed
 | 
|---|
| 128 |  .S VALMCNT=VALMCNT+1
 | 
|---|
| 129 |  .S ^TMP("PXRMGEN",$J,VALMCNT,0)=$J("",79)
 | 
|---|
| 130 |  .S ^TMP("PXRMGEN",$J,"VALMCNT")=VALMCNT
 | 
|---|
| 131 |  ;
 | 
|---|
| 132 |  K ^TMP("PXRMGENS",$J)
 | 
|---|
| 133 |  ;Create headings
 | 
|---|
| 134 |  D CHGCAP^VALM("HEADER1",HED1)
 | 
|---|
| 135 |  D CHGCAP^VALM("HEADER2",HED2)
 | 
|---|
| 136 |  D CHGCAP^VALM("HEADER3","")
 | 
|---|
| 137 |  Q
 | 
|---|
| 138 |  ;
 | 
|---|
| 139 |  ;Dialog Element Details
 | 
|---|
| 140 |  ;----------------------
 | 
|---|
| 141 | ELEMENT(DIEN,DSEQ) ;
 | 
|---|
| 142 |  N DATA,DNAM,DDIS,DTXT,TSUB,TXT
 | 
|---|
| 143 |  S DATA=$G(^PXRMD(801.41,DIEN,0)) Q:DATA=""
 | 
|---|
| 144 |  S DDIS=$P(DATA,U,3),DNAM=$P(DATA,U)
 | 
|---|
| 145 |  S DNAM=DNAM_"  ("_$S(DDIS:"DISABLED",1:"ENABLED")_")"
 | 
|---|
| 146 |  S TXT="Dialog Element: "_DNAM
 | 
|---|
| 147 |  I DSEQ S TXT=$J(DSEQ,2)_") "_TXT
 | 
|---|
| 148 |  I 'DSEQ S TXT="    "_TXT
 | 
|---|
| 149 |  S VALMCNT=VALMCNT+1
 | 
|---|
| 150 |  S ^TMP("PXRMGEN",$J,VALMCNT,0)=$J("",79)
 | 
|---|
| 151 |  S VALMCNT=VALMCNT+1
 | 
|---|
| 152 |  S ^TMP("PXRMGEN",$J,VALMCNT,0)=TXT
 | 
|---|
| 153 |  S ^TMP("PXRMGEN",$J,"VALMCNT")=VALMCNT
 | 
|---|
| 154 |  ;Dialog Text
 | 
|---|
| 155 |  S TSUB=0,TXT="    Dialog Text: "
 | 
|---|
| 156 |  F  S TSUB=$O(^PXRMD(801.41,DIEN,25,TSUB)) Q:'TSUB  D
 | 
|---|
| 157 |  .S DTXT=$G(^PXRMD(801.41,DIEN,25,TSUB,0))
 | 
|---|
| 158 |  .S VALMCNT=VALMCNT+1
 | 
|---|
| 159 |  .S ^TMP("PXRMGEN",$J,VALMCNT,0)=TXT_DTXT
 | 
|---|
| 160 |  .S ^TMP("PXRMGEN",$J,"VALMCNT")=VALMCNT,TXT=$J("",17)
 | 
|---|
| 161 |  ;Additional prompts/forced values
 | 
|---|
| 162 |  N ACNT,ADES,AIEN,ASUB,ATYP,DATA
 | 
|---|
| 163 |  S ASUB=0,ACNT=0,TXT="    Additional Prompts: "
 | 
|---|
| 164 |  F  S ASUB=$O(^PXRMD(801.41,DIEN,10,ASUB)) Q:'ASUB  D
 | 
|---|
| 165 |  .;Get prompt ien
 | 
|---|
| 166 |  .S AIEN=$P($G(^PXRMD(801.41,DIEN,10,ASUB,0)),U,2) Q:AIEN=""
 | 
|---|
| 167 |  .;Get description and type from dialog file
 | 
|---|
| 168 |  .S DATA=$G(^PXRMD(801.41,AIEN,0))
 | 
|---|
| 169 |  .S ADES=$P(DATA,U) I ADES="" S ADES=AIEN
 | 
|---|
| 170 |  .S ATYP="" I $P(DATA,U,4)="F" S ATYP=" (forced value)"
 | 
|---|
| 171 |  .S VALMCNT=VALMCNT+1,ACNT=ACNT+1
 | 
|---|
| 172 |  .S ^TMP("PXRMGEN",$J,VALMCNT,0)=TXT_ADES_ATYP,TXT=$J("",24)
 | 
|---|
| 173 |  .S ^TMP("PXRMGEN",$J,"VALMCNT")=VALMCNT
 | 
|---|
| 174 |  I ACNT=0 D
 | 
|---|
| 175 |  .S VALMCNT=VALMCNT+1,ACNT=ACNT+1
 | 
|---|
| 176 |  .S ^TMP("PXRMGEN",$J,VALMCNT,0)=TXT_"*NONE*"
 | 
|---|
| 177 |  .S ^TMP("PXRMGEN",$J,"VALMCNT")=VALMCNT
 | 
|---|
| 178 |  Q
 | 
|---|