| 1 | PXRMDLG2 ; SLC/PJH - Reminder Dialog Edit/Inquiry ;07/29/2004 | 
|---|
| 2 | ;;2.0;CLINICAL REMINDERS;;Feb 04, 2005 | 
|---|
| 3 | ; | 
|---|
| 4 | ;Find description for dialog type | 
|---|
| 5 | LIT(INP) ; | 
|---|
| 6 | Q:INP="G" "Dialog group: " | 
|---|
| 7 | Q:INP="F" "Forced value: " | 
|---|
| 8 | Q:INP="P" "Prompt: " | 
|---|
| 9 | Q:INP="E" "Dialog element: " | 
|---|
| 10 | Q "???" | 
|---|
| 11 | ; | 
|---|
| 12 | ;Additional Findings | 
|---|
| 13 | ADD(DIEN) ; | 
|---|
| 14 | N FIND,FSUB,FTYP,FNAME,FNUM | 
|---|
| 15 | S FSUB=0 | 
|---|
| 16 | F  S FSUB=$O(^PXRMD(801.41,DIEN,3,FSUB)) Q:'FSUB  D | 
|---|
| 17 | .S FIND=$P($G(^PXRMD(801.41,DIEN,3,FSUB,0)),U) Q:FIND="" | 
|---|
| 18 | .S FNAME="" D DESC(FIND) Q:FNAME="" | 
|---|
| 19 | .S FNAME="Additional Finding: "_FNAME | 
|---|
| 20 | .;Save additional finding name | 
|---|
| 21 | .S VALMCNT=VALMCNT+1 | 
|---|
| 22 | .S ^TMP("PXRMDLG",$J,VALMCNT,0)=$J("",15)_FNAME | 
|---|
| 23 | Q | 
|---|
| 24 | ;Finding description | 
|---|
| 25 | DESC(FIEN) ; | 
|---|
| 26 | ;Determine finding type | 
|---|
| 27 | S FGLOB=$P(FIEN,";",2) Q:FGLOB="" | 
|---|
| 28 | S FITEM=$P(FIEN,";") Q:FITEM="" | 
|---|
| 29 | ;Diagnosis POV | 
|---|
| 30 | I FGLOB["ICD9" D  Q | 
|---|
| 31 | .S FTYP="DIAGNOSIS",FGLOB=U_FGLOB_FITEM_",0)" | 
|---|
| 32 | .S FNAME=$P($G(@FGLOB),U,3)_" ["_FITEM_"]" | 
|---|
| 33 | ;Procedure CPT | 
|---|
| 34 | I FGLOB["ICPT" D  Q | 
|---|
| 35 | .S FTYP="PROCEDURE",FGLOB=U_FGLOB_FITEM_",0)" | 
|---|
| 36 | .S FNAME=$P($G(@FGLOB),U,2)_" ["_FITEM_"]" | 
|---|
| 37 | ;Quick order | 
|---|
| 38 | I FGLOB["ORD(101.41" D  Q | 
|---|
| 39 | .S FTYP="QUICK ORDER",FGLOB=U_FGLOB_FITEM_",0)" | 
|---|
| 40 | .S FNAME=$P($G(@FGLOB),U,2)_" ["_FITEM_"]" | 
|---|
| 41 | ;Short name for finding type | 
|---|
| 42 | S FTYP=$G(DEF1(FGLOB)) Q:FTYP="" | 
|---|
| 43 | S FNUM=" ["_FTYP_"("_FITEM_")]" | 
|---|
| 44 | ;Long name | 
|---|
| 45 | S FTYP=$G(DEF2(FTYP)) | 
|---|
| 46 | S FGLOB=U_FGLOB_FITEM_",0)" | 
|---|
| 47 | S FNAME=$P($G(@FGLOB),U,1) | 
|---|
| 48 | I FNAME="" S FNAME=$P($G(@FGLOB),U) | 
|---|
| 49 | I FNAME]"" S FNAME=FNAME_FNUM Q | 
|---|
| 50 | S FNAME=FITEM | 
|---|
| 51 | Q | 
|---|
| 52 | ; | 
|---|
| 53 | ;Dialog Details (DD) | 
|---|
| 54 | DETAIL(PIEN) ; | 
|---|
| 55 | ;Get prompt data | 
|---|
| 56 | S DATA=$G(^PXRMD(801.41,PIEN,0)) | 
|---|
| 57 | ;Extract name, type and disabled | 
|---|
| 58 | S PNAME=$P(DATA,U),PDIS=$P(DATA,U,3),PTYP=$P(DATA,U,4),PTYP=$$LIT(PTYP) | 
|---|
| 59 | ;Result (if any) | 
|---|
| 60 | S RESULT=$P(DATA,U,15) | 
|---|
| 61 | I RESULT S RESNM=$P($G(^PXRMD(801.41,RESULT,0)),U) | 
|---|
| 62 | ;Get Resolution/Finding details | 
|---|
| 63 | S DATA=$G(^PXRMD(801.41,PIEN,1)),RIEN=$P(DATA,U,3),FIEN=$P(DATA,U,5) | 
|---|
| 64 | ;Resolution status name (assume this is a set) | 
|---|
| 65 | S RNAME="???" | 
|---|
| 66 | I RIEN S RNAME=$P($G(^PXRMD(801.9,RIEN,0)),U) S:RNAME="" RNAME="???" | 
|---|
| 67 | ;Set Default display values | 
|---|
| 68 | S FNAME="???",FTYP="???",ONAME="???" | 
|---|
| 69 | ;For quick orders get the orderable item | 
|---|
| 70 | I RNAME="ORDERED" D | 
|---|
| 71 | .S FTYP="QUICK ORDER",FNAME="*QUICK ORDER MISSING*" | 
|---|
| 72 | .S OIEN=$P($G(^PXRMD(801.41,PIEN,1)),U,7) Q:'OIEN | 
|---|
| 73 | .S FGLOB="^ORD(101.43,"_OIEN_",0)" | 
|---|
| 74 | .S ONAME=$P($G(@FGLOB),U)_" ["_OIEN_"]" | 
|---|
| 75 | ;Description of finding | 
|---|
| 76 | D DESC(FIEN) | 
|---|
| 77 | ; | 
|---|
| 78 | S RNAME="Resolution: "_RNAME | 
|---|
| 79 | S FTYP="Finding type: "_FTYP | 
|---|
| 80 | S FNAME="Finding item: "_FNAME | 
|---|
| 81 | S VALMCNT=VALMCNT+1 | 
|---|
| 82 | S PTXT=$J(SEQ,3)_$J("",12)_PTYP_PNAME | 
|---|
| 83 | S ^TMP("PXRMDLG",$J,VALMCNT,0)=PTXT_$J("",72-$L(PTXT))_PDIS | 
|---|
| 84 | S ^TMP("PXRMDLG",$J,"IDX",SEQ,PIEN)="" | 
|---|
| 85 | ;Save resolution | 
|---|
| 86 | I ('DGRP),(FTYP'["TAXONOMY"),(FTYP'["MENTAL HEALTH") D | 
|---|
| 87 | .I RNAME'["???" D | 
|---|
| 88 | ..S VALMCNT=VALMCNT+1 | 
|---|
| 89 | ..S ^TMP("PXRMDLG",$J,VALMCNT,0)=$J("",15)_RNAME | 
|---|
| 90 | .I FTYP["QUICK ORDER" D | 
|---|
| 91 | ..S VALMCNT=VALMCNT+1 | 
|---|
| 92 | ..S ^TMP("PXRMDLG",$J,VALMCNT,0)=$J("",15)_"Orderable item: "_ONAME | 
|---|
| 93 | I ('DGRP) D | 
|---|
| 94 | .;Save finding type | 
|---|
| 95 | .I FTYP'["???" D | 
|---|
| 96 | ..S VALMCNT=VALMCNT+1 | 
|---|
| 97 | ..S ^TMP("PXRMDLG",$J,VALMCNT,0)=$J("",15)_FTYP | 
|---|
| 98 | ;Save finding name | 
|---|
| 99 | I ('DGRP),(FNAME'["???") D | 
|---|
| 100 | .S VALMCNT=VALMCNT+1 | 
|---|
| 101 | .S ^TMP("PXRMDLG",$J,VALMCNT,0)=$J("",15)_FNAME | 
|---|
| 102 | ;Additional Findings | 
|---|
| 103 | I (FTYP'["TAXONOMY"),(FTYP'["MENTAL HEALTH") D ADD(PIEN) | 
|---|
| 104 | ;Result group/element (mental health) | 
|---|
| 105 | I RESULT D | 
|---|
| 106 | .;Save result details | 
|---|
| 107 | .S VALMCNT=VALMCNT+1 | 
|---|
| 108 | .S ^TMP("PXRMDLG",$J,VALMCNT,0)=$J("",15)_"Result name: "_RESNM | 
|---|
| 109 | ;Get additional prompts/dialog group elements | 
|---|
| 110 | D PROMPT^PXRMDLG1(PIEN,20,DHED,DGRP) | 
|---|
| 111 | Q | 
|---|
| 112 | ; | 
|---|
| 113 | ;Group findings and prompts | 
|---|
| 114 | GROUP(PIEN) ; | 
|---|
| 115 | ;Get prompt data | 
|---|
| 116 | S DATA=$G(^PXRMD(801.41,PIEN,0)) | 
|---|
| 117 | ;Extract name, type and disabled | 
|---|
| 118 | S PNAME=$P(DATA,U),PDIS=$P(DATA,U,3),PTYP=$P(DATA,U,4),PTYP=$$LIT(PTYP) | 
|---|
| 119 | ;Result (if any) | 
|---|
| 120 | S RESULT=$P(DATA,U,15) | 
|---|
| 121 | I RESULT S RESNM=$P($G(^PXRMD(801.41,RESULT,0)),U) | 
|---|
| 122 | ;Get Resolution/Finding details | 
|---|
| 123 | S DATA=$G(^PXRMD(801.41,PIEN,1)),RIEN=$P(DATA,U,3),FIEN=$P(DATA,U,5) | 
|---|
| 124 | ;Resolution status name (assume this is a set) | 
|---|
| 125 | S RNAME="???" | 
|---|
| 126 | I RIEN S RNAME=$P($G(^PXRMD(801.9,RIEN,0)),U) S:RNAME="" RNAME="???" | 
|---|
| 127 | ;Set Default display values | 
|---|
| 128 | S FNAME="???",FTYP="???",ONAME="???" | 
|---|
| 129 | ;For quick orders get the orderable item | 
|---|
| 130 | I RNAME="ORDERED" D | 
|---|
| 131 | .S FTYP="QUICK ORDER",FNAME="*QUICK ORDER MISSING*" | 
|---|
| 132 | .S OIEN=$P($G(^PXRMD(801.41,PIEN,1)),U,7) Q:'OIEN | 
|---|
| 133 | .S FGLOB="^ORD(101.43,"_OIEN_",0)" | 
|---|
| 134 | .S ONAME=$P($G(@FGLOB),U)_" ["_OIEN_"]" | 
|---|
| 135 | ;Description of finding | 
|---|
| 136 | D DESC(FIEN) | 
|---|
| 137 | ; | 
|---|
| 138 | S RNAME="Resolution: "_RNAME | 
|---|
| 139 | S FTYP="Finding type: "_FTYP | 
|---|
| 140 | S FNAME="Finding item: "_FNAME | 
|---|
| 141 | ;Save resolution | 
|---|
| 142 | I (FTYP'["TAXONOMY"),(FTYP'["MENTAL HEALTH") D | 
|---|
| 143 | .I RNAME'["???" D | 
|---|
| 144 | ..S VALMCNT=VALMCNT+1 | 
|---|
| 145 | ..S ^TMP("PXRMDLG",$J,VALMCNT,0)=$J("",15)_RNAME | 
|---|
| 146 | .I FTYP["QUICK ORDER" D | 
|---|
| 147 | ..S VALMCNT=VALMCNT+1 | 
|---|
| 148 | ..S ^TMP("PXRMDLG",$J,VALMCNT,0)=$J("",15)_"Orderable item: "_ONAME | 
|---|
| 149 | ;Save finding type | 
|---|
| 150 | I FTYP'["???" D | 
|---|
| 151 | .S VALMCNT=VALMCNT+1 | 
|---|
| 152 | .S ^TMP("PXRMDLG",$J,VALMCNT,0)=$J("",15)_FTYP | 
|---|
| 153 | ;Save finding name | 
|---|
| 154 | I (FNAME'["???") D | 
|---|
| 155 | .S VALMCNT=VALMCNT+1 | 
|---|
| 156 | .S ^TMP("PXRMDLG",$J,VALMCNT,0)=$J("",15)_FNAME | 
|---|
| 157 | ;Additional Findings | 
|---|
| 158 | I (FTYP'["TAXONOMY"),(FTYP'["MENTAL HEALTH") D ADD(PIEN) | 
|---|
| 159 | ;Get additional prompts/dialog group elements | 
|---|
| 160 | D PROMPT^PXRMDLG1(PIEN,20,"Additional prompts: ",0) | 
|---|
| 161 | ;Final line feed | 
|---|
| 162 | S VALMCNT=VALMCNT+1 | 
|---|
| 163 | S ^TMP("PXRMDLG",$J,VALMCNT,0)=$J("",79) | 
|---|
| 164 | Q | 
|---|