Ignore:
Timestamp:
Dec 4, 2009, 12:11:15 AM (14 years ago)
Author:
George Lilly
Message:

revised back to 6/30/08 version

File:
1 edited

Legend:

Unmodified
Added
Removed
  • WorldVistAEHR/trunk/r/CLINICAL_REMINDERS-PXRM/PXRMRPCC.m

    r613 r623  
    1 PXRMRPCC        ;SLC/PJH - PXRM REMINDER DIALOG ;11/26/2007
    2         ;;2.0;CLINICAL REMINDERS;**6**;Feb 04, 2005;Build 123
    3         ;
    4 ACTIVE(ORY,ORREM)       ;Check if active dialog exist for reminders
    5         ;
    6         ; input parameter ORREM is array of reminder ien [.01#811.9]
    7         N DDIS,DIEN,OCNT,RIEN,RSTA
    8         S OCNT=0,RIEN=0
    9         ;Get reminder ien from array
    10         F  S RIEN=$O(ORREM(RIEN)) Q:'RIEN  D
    11         .;Dialog ien for reminder
    12         .S DIEN=$P($G(^PXD(811.9,RIEN,51)),U),RSTA=0
    13         .;Dialog status
    14         .I DIEN S DDIS=$P($G(^PXRMD(801.41,DIEN,0)),U,3)
    15         .;If dialog and dialog not disabled
    16         .I DIEN,DDIS="" S RSTA=1
    17         .;Return reminder and if active dialog exists
    18         .S OCNT=OCNT+1,ORY(OCNT)=RIEN_U_RSTA
    19         Q
    20         ;
    21         ;
    22 DIALOG(ORY,ORREM,DFN)   ;Load reminder dialog associated with the reminder
    23         ;
    24         ; input parameter ORREM - reminder ien [.01,#811.9]
    25         ;
    26         S RIEN=ORREM
    27         N DATA,DIEN
    28         S DIEN=$G(^PXD(811.9,ORREM,51))
    29         ;
    30         ;Quit if no dialog for this reminder
    31         I 'DIEN S ORY(1)="-1^no dialog for this reminder" Q
    32         ;
    33         ;Check if a reminder dialog and enabled
    34         S DATA=$G(^PXRMD(801.41,DIEN,0))
    35         ;
    36         I $P(DATA,U,4)'="R" S ORY(1)="-1^reminder dialog invalid" Q
    37         ;
    38         I $P(DATA,U,3) S ORY(1)="-1^reminder dialog disabled" Q
    39         ;
    40         ;Load dialog lines into local array
    41         S ORY(0)=0_U_+$P($G(^PXRMD(801.41,DIEN,0)),U,17)
    42         D LOAD^PXRMDLL(DIEN,$G(DFN))
    43         Q
    44         ;
    45 HDR(ORY,ORLOC)  ;Progress Note Header by location/service/user
    46         N ORSRV,PASS
    47         ;S ORSRV=$G(^VA(200,DUZ,5)) I +ORSRV>0 S ORSRV=$P(ORSRV,U)
    48         S ORSRV=$$GET1^DIQ(200,DUZ,29,"I")
    49         S PASS=DUZ_";VA(200,"
    50         I +$G(ORLOC) S PASS=PASS_"^LOC.`"_ORLOC
    51         I ORSRV>0 S PASS=PASS_"^SRV.`"_+$G(ORSRV)
    52         S ORY=$$GET^XPAR(PASS_"^DIV^SYS^PKG","PXRM PROGRESS NOTE HEADERS",1,"Q")
    53         Q
    54         ;
    55 PROMPT(ORY,ORDLG,ORDCUR,ORFTYP) ;Load additional prompts for a dialog element
    56         ;
    57         ; input parameters
    58         ;
    59         ; ORDLG  - dialog element ien [.01,#801.41]
    60         ; ORDCUR - 0 = current, 1 = Historical for taxonomies only
    61         ; ORFTYP - finding type (CPT/POV) for taxonomies only
    62         ;
    63         ; These fields can be found in the output array of DIALOG^PXRMRPCC
    64         ;
    65         D LOAD^PXRMDLLA(ORDLG,ORDCUR,$G(ORFTYP))
    66         Q
    67         ;
    68 RES(ORY,ORREM)  ; Reminder Resources/Inquiry
    69         ;
    70         ; input parameter ORREM - reminder ien [.01,#811.9]
    71         ;
    72         D REMVAR^PXRMINQ(.ORY,ORREM)
    73         Q
    74         ;
    75 MH(ORY,OTEST)   ; Mental Health dialog
    76         ;
    77         ; Input mental health instrument NAME
    78         ;
    79         K ^TMP($J,"YSQU")
    80         N ARRAY,CNT,CNT1,FNODE,FSUB,IC,NODE,OCNT,SUB,YS
    81         ;DBIA #5056
    82         S YS("CODE")=OTEST D SHOWALL^YTQPXRM5(.ARRAY,.YS)
    83         S OCNT=0,CNT=0
    84         S SUB="ARRAY",OCNT=0
    85         F  S SUB=$Q(@SUB) Q:SUB=""  D
    86         .S FSUB=$P($P(SUB,"(",2),")"),FNODE=""
    87         .F IC=1:1 S NODE=$P(FSUB,",",IC) Q:NODE=""  D
    88         ..I $E(NODE)="""" S NODE=$P(NODE,"""",2)
    89         ..S $P(FNODE,";",IC)=NODE
    90         .Q:FNODE=""
    91         .S OCNT=OCNT+1,ORY(OCNT)=FNODE_U_@SUB
    92         Q
    93         ;
    94 MHR(ORY,RESULT,ORES)    ; Mental Health score and P/N text
    95         ;
    96         ; Input MH result IEN and mental health instrument response
    97         ;
    98         D START^PXRMDLR(.ORY,RESULT,.ORES)
    99         ;
    100         Q
    101         ;
    102 MHS(ORY,YS)     ; Mental Health save response
    103         ;
    104         ; Input mental health instrument response
    105         N ANS,ARRAY,X
    106         S ANS=$G(YS("R1")) K YS("R1")
    107         S YS("ADATE")=YS("ADATE")_"."_$P($$NOW^XLFDT,".",2)
    108         F X=1:1:$L(ANS) I $E(ANS,X)'="X" S YS(X)=X_U_$E(ANS,X)
    109         ;DBIA #4463
    110         D SAVECR^YTQPXRM4(.ARRAY,.YS)
    111         Q
    112         ;
    113 MST(ORY,DFN,DGMSTDT,DGMSTSC,DGMSTPR,FTYP,FIEN,RESULT)   ; File MST status
    114         ;This is obsolete and can be removed when the GUI is changed not
    115         ;to use it.
    116         Q
    117         ;
    118 WH(ORY,RESULT)  ;
    119         N CNT,CNT1,CNT2,NODE,PIECNT,PUR,TYPE,TYP1,WVIEN,WVRESULT,WVNOT,WVPURIEN
    120         N PRINT
    121         K ^TMP("WV RPT",$J)
    122         I '$D(RESULT) Q
    123         S (CNT2,WVPURIEN,PUR)=0
    124         S CNT=0 F  S CNT=$O(RESULT(CNT)) Q:CNT=""  D
    125         . I $P($G(RESULT(CNT)),U)["WHIEN" D
    126         . . S CNT2=CNT2+1
    127         . . S WVIEN=$P($P($G(RESULT(CNT)),U),":",2),WVRESULT(CNT2)=$G(WVIEN)
    128         . . S WVRESULT(CNT2)=WVRESULT(CNT2)_U_$P($P($G(RESULT(CNT)),U,3),":",2)
    129         . I $P($G(RESULT(CNT)),U)["WHPur" D
    130         . . S NODE=$G(RESULT(CNT)),PUR=$P($P($G(NODE),U),":",2)
    131         . . S CNT1=1,TYPE=$P($G(NODE),U,2)
    132         . . I TYPE'[":" D
    133         ...S WVNOT(PUR,CNT1)=$P($G(NODE),U,5)_U_$P($G(NODE),U,2)_U_$P($G(NODE),U,3)_U_$P($P($G(NODE),U,4),":",2)
    134         ..I TYPE[":" D
    135         ...S PIECNT=0
    136         ...F X=1:1:$L(TYPE) I $E(TYPE,X)=":" S PIECNT=PIECNT+1 I PIECNT>0 D
    137         ....S PRINT=""
    138         ....S TYP1=$P($G(TYPE),":",PIECNT)
    139         ....I TYP1="L" S PRINT=$P($G(NODE),U,3)
    140         ....S WVNOT(PUR,CNT1)=$P($G(NODE),U,5)_U_$G(TYP1)_U_$G(PRINT)_U_$P($P($G(NODE),U,4),":",2),CNT1=CNT1+1
    141         ...S PIECNT=PIECNT+1
    142         ...S PRINT=""
    143         ...S TYP1=$P($G(TYPE),":",PIECNT)
    144         ...I TYP1="L" S PRINT=$P($G(NODE),U,3)
    145         ...S WVNOT(PUR,CNT1)=$P($G(NODE),U,5)_U_$G(TYP1)_U_$G(PRINT)_U_$P($P($G(NODE),U,4),":",2)
    146         K WHMUFIND,WHFIND,WHNAME
    147         ;DBIA #4104
    148         D NEW^WVRPCNO(.WVRESULT,.WVNOT)
    149         Q
    150         ;
     1PXRMRPCC ;SLC/PJH - PXRM REMINDER DIALOG ;04/12/2002
     2 ;;2.0;CLINICAL REMINDERS;;Feb 04, 2005
     3 ;
     4ACTIVE(ORY,ORREM) ;Check if active dialog exist for reminders
     5 ;
     6 ; input parameter ORREM is array of reminder ien [.01#811.9]
     7 N DDIS,DIEN,OCNT,RIEN,RSTA
     8 S OCNT=0,RIEN=0
     9 ;Get reminder ien from array
     10 F  S RIEN=$O(ORREM(RIEN)) Q:'RIEN  D
     11 .;Dialog ien for reminder
     12 .S DIEN=$P($G(^PXD(811.9,RIEN,51)),U),RSTA=0
     13 .;Dialog status
     14 .I DIEN S DDIS=$P($G(^PXRMD(801.41,DIEN,0)),U,3)
     15 .;If dialog and dialog not disabled
     16 .I DIEN,DDIS="" S RSTA=1
     17 .;Return reminder and if active dialog exists
     18 .S OCNT=OCNT+1,ORY(OCNT)=RIEN_U_RSTA
     19 Q
     20 ;
     21 ;
     22DIALOG(ORY,ORREM,DFN) ;Load reminder dialog associated with the reminder
     23 ;
     24 ; input parameter ORREM - reminder ien [.01,#811.9]
     25 ;
     26 S RIEN=ORREM
     27 N DATA,DIEN
     28 S DIEN=$G(^PXD(811.9,ORREM,51))
     29 ;
     30 ;Quit if no dialog for this reminder
     31 I 'DIEN S ORY(1)="-1^no dialog for this reminder" Q
     32 ;
     33 ;Check if a reminder dialog and enabled
     34 S DATA=$G(^PXRMD(801.41,DIEN,0))
     35 ;
     36 I $P(DATA,U,4)'="R" S ORY(1)="-1^reminder dialog invalid" Q
     37 ;
     38 I $P(DATA,U,3) S ORY(1)="-1^reminder dialog disabled" Q
     39 ;
     40 ;Load dialog lines into local array
     41 D LOAD^PXRMDLL(DIEN,$G(DFN))
     42 Q
     43 ;
     44HDR(ORY,ORLOC) ;Progress Note Header by location/service/user
     45 N ORSRV,PASS
     46 ;S ORSRV=$G(^VA(200,DUZ,5)) I +ORSRV>0 S ORSRV=$P(ORSRV,U)
     47 S ORSRV=$$GET1^DIQ(200,DUZ,29,"I")
     48 S PASS=DUZ_";VA(200,"
     49 I +$G(ORLOC) S PASS=PASS_"^LOC.`"_ORLOC
     50 I ORSRV>0 S PASS=PASS_"^SRV.`"_+$G(ORSRV)
     51 S ORY=$$GET^XPAR(PASS_"^DIV^SYS^PKG","PXRM PROGRESS NOTE HEADERS",1,"Q")
     52 Q
     53 ;
     54PROMPT(ORY,ORDLG,ORDCUR,ORFTYP) ;Load additional prompts for a dialog element
     55 ;
     56 ; input parameters
     57 ;
     58 ; ORDLG  - dialog element ien [.01,#801.41]
     59 ; ORDCUR - 0 = current, 1 = Historical for taxonomies only
     60 ; ORFTYP - finding type (CPT/POV) for taxonomies only
     61 ;
     62 ; These fields can be found in the output array of DIALOG^PXRMRPCC
     63 ;
     64 D LOAD^PXRMDLLA(ORDLG,ORDCUR,$G(ORFTYP))
     65 Q
     66 ;
     67RES(ORY,ORREM) ; Reminder Resources/Inquiry
     68 ;
     69 ; input parameter ORREM - reminder ien [.01,#811.9]
     70 ;
     71 D REMVAR^PXRMINQ(.ORY,ORREM)
     72 Q
     73 ;
     74MH(ORY,OTEST) ; Mental Health dialog
     75 ;
     76 ; Input mental health instrument NAME
     77 ;
     78 N YS,ARRAY S YS("CODE")=OTEST D SHOWALL^YTAPI3(.ARRAY,.YS) ; DBIA #2895
     79 ;
     80 N FNODE,FSUB,IC,NODE,OCNT,SUB
     81 S SUB="ARRAY",OCNT=0
     82 F  S SUB=$Q(@SUB) Q:SUB=""  D
     83 .S FSUB=$P($P(SUB,"(",2),")"),FNODE=""
     84 .F IC=1:1 S NODE=$P(FSUB,",",IC) Q:NODE=""  D
     85 ..I $E(NODE)="""" S NODE=$P(NODE,"""",2)
     86 ..S $P(FNODE,";",IC)=NODE
     87 .Q:FNODE=""
     88 .S OCNT=OCNT+1,ORY(OCNT)=FNODE_U_@SUB
     89 Q
     90 ;
     91MHR(ORY,RESULT,ORES) ; Mental Health score and P/N text
     92 ;
     93 ; Input MH result IEN and mental health instrument response
     94 ;
     95 D ^PXRMDLR
     96 ;
     97 Q
     98 ;
     99MHS(ORY,YS) ; Mental Health save response
     100 ;
     101 ; Input mental health instrument response
     102 N ARRAY
     103 D SAVEIT^YTAPI1(.ARRAY,.YS) ; DBIA #2893
     104 I ARRAY(1)'="[DATA]" S ORY(1)="-1^"_ARRAY(1)_ARRAY(2)
     105 I ARRAY(1)="[DATA]" S ORY(1)=ARRAY(1)_ARRAY(2)
     106 Q
     107 ;
     108MST(ORY,DFN,DGMSTDT,DGMSTSC,DGMSTPR,FTYP,FIEN,RESULT) ; File MST status
     109 ;This is obsolete and can be removed when the GUI is changed not
     110 ;to use it.
     111 Q
     112 ;
     113WH(ORY,RESULT) ;
     114 N CNT,CNT1,CNT2,NODE,PIECNT,PUR,TYPE,TYP1,WVIEN,WVRESULT,WVNOT,WVPURIEN
     115 N PRINT
     116 K ^TMP("WV RPT",$J)
     117 I '$D(RESULT) Q
     118 S (CNT2,WVPURIEN,PUR)=0
     119 S CNT=0 F  S CNT=$O(RESULT(CNT)) Q:CNT=""  D
     120 . I $P($G(RESULT(CNT)),U)["WHIEN" D
     121 . . S CNT2=CNT2+1
     122 . . S WVIEN=$P($P($G(RESULT(CNT)),U),":",2),WVRESULT(CNT2)=$G(WVIEN)
     123 . . S WVRESULT(CNT2)=WVRESULT(CNT2)_U_$P($P($G(RESULT(CNT)),U,3),":",2)
     124 . I $P($G(RESULT(CNT)),U)["WHPur" D
     125 . . S NODE=$G(RESULT(CNT)),PUR=$P($P($G(NODE),U),":",2)
     126 . . S CNT1=1,TYPE=$P($G(NODE),U,2)
     127 . . I TYPE'[":" D
     128 ...S WVNOT(PUR,CNT1)=$P($G(NODE),U,5)_U_$P($G(NODE),U,2)_U_$P($G(NODE),U,3)_U_$P($P($G(NODE),U,4),":",2)
     129 ..I TYPE[":" D
     130 ...S PIECNT=0
     131 ...F X=1:1:$L(TYPE) I $E(TYPE,X)=":" S PIECNT=PIECNT+1 I PIECNT>0 D
     132 ....S PRINT=""
     133 ....S TYP1=$P($G(TYPE),":",PIECNT)
     134 ....I TYP1="L" S PRINT=$P($G(NODE),U,3)
     135 ....S WVNOT(PUR,CNT1)=$P($G(NODE),U,5)_U_$G(TYP1)_U_$G(PRINT)_U_$P($P($G(NODE),U,4),":",2),CNT1=CNT1+1
     136 ...S PIECNT=PIECNT+1
     137 ...S PRINT=""
     138 ...S TYP1=$P($G(TYPE),":",PIECNT)
     139 ...I TYP1="L" S PRINT=$P($G(NODE),U,3)
     140 ...S WVNOT(PUR,CNT1)=$P($G(NODE),U,5)_U_$G(TYP1)_U_$G(PRINT)_U_$P($P($G(NODE),U,4),":",2)
     141 K WHMUFIND,WHFIND,WHNAME
     142 ;DBIA #4104
     143 D NEW^WVRPCNO(.WVRESULT,.WVNOT)
     144 Q
     145 ;
Note: See TracChangeset for help on using the changeset viewer.