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/PXRMDEV.m

    r613 r623  
    1 PXRMDEV ; SLC/PKR - This is a driver for testing Clinical Reminders.;01/24/2007
    2         ;;2.0;CLINICAL REMINDERS;**4,6**;Feb 04, 2005;Build 123
    3         ;
    4         ;==================================================
    5 CMOUT   ;Do formatted Clinical Maintenance output.
    6         N DUE,DUECOL,HIST,LAST,LASTCOL,LNUM,RIEN,RNAME,STATUS,STATCOL,TEMP,TYPE
    7         W !!,"Formatted Output:"
    8         S RIEN=$O(^TMP("PXRHM",$J,""))
    9         S RNAME=$O(^TMP("PXRHM",$J,RIEN,""))
    10         S TEMP=$G(^TMP("PXRHM",$J,RIEN,RNAME))
    11         S STATUS=$P(TEMP,U,1)
    12         S DUE=$$EDATE^PXRMDATE($P(TEMP,U,2))
    13         S LAST=$$EDATE^PXRMDATE($P(TEMP,U,3))
    14         S STATCOL=41-($L(STATUS)/2)
    15         S DUECOL=53-($L(DUE)/2)
    16         S LASTCOL=67-($L(LAST)/2)
    17         W !!,?36,"--STATUS--",?47,"--DUE DATE--",?61,"--LAST DONE--",!
    18         W !,RNAME,?STATCOL,STATUS,?DUECOL,DUE,?LASTCOL,LAST,!
    19         S LNUM=0
    20         F  S LNUM=$O(^TMP("PXRHM",$J,RIEN,RNAME,"TXT",LNUM)) Q:LNUM=""  D
    21         . W !,^TMP("PXRHM",$J,RIEN,RNAME,"TXT",LNUM)
    22         Q
    23         ;
    24         ;==================================================
    25 DEB     ;Prompt for patient and reminder by name input component.
    26         N DATE,DFN,DIC,DIR,DIROUT,DTOUT,DUOUT,PXRMITEM,PXRHM,PXRMTDEB,X,Y
    27         S DIC=2,DIC("A")="Select Patient: "
    28         S DIC(0)="AEQMZ"
    29         D ^DIC
    30         I $D(DTOUT)!$D(DUOUT) Q
    31         S DFN=+$P(Y,U,1)
    32         I DFN=-1 W !,"No patient selected!" Q
    33         S DIC=811.9,DIC("A")="Select Reminder: "
    34         D ^DIC
    35         I $D(DIROUT)!$D(DIRUT) Q
    36         I $D(DTOUT)!$D(DUOUT) Q
    37         S PXRMITEM=+$P(Y,U,1)
    38         I PXRMITEM=-1 W !,"No reminder selected!" Q
    39         S DIR(0)="LA"_U_"0"
    40         S DIR("A")="Enter component number 0, 1, 5, 10, 11, 12: "
    41         D ^DIR
    42         I $D(DIROUT)!$D(DIRUT) Q
    43         I $D(DTOUT)!$D(DUOUT) Q
    44         I X="" S X=5
    45         S PXRHM=X
    46         S DIR(0)="DA^"_0_"::ETX"
    47         S DIR("A")="Enter date for reminder evaluation: "
    48         S DIR("B")=$$FMTE^XLFDT($$DT^XLFDT,"D")
    49         S DIR("PRE")="S X=$$DCHECK^PXRMDATE(X) K:X=-1 X"
    50         W !
    51         D ^DIR K DIR
    52         I $D(DIROUT)!$D(DIRUT) Q
    53         I $D(DTOUT)!$D(DUOUT) Q
    54         S DATE=Y
    55         I $D(^PXD(811.9,PXRMITEM,20,"E","PXRMD(811.5,")) S PXRMTDEB=$$ASKYN^PXRMEUT("N","Display all term findings","","")
    56         D DOREM(DFN,PXRMITEM,PXRHM,DATE)
    57         Q
    58         ;
    59         ;==================================================
    60 DEV     ;Prompt for patient and reminder by name and evaluation date.
    61         N DATE,DFN,DIC,DIROUT,DIRUT,DTOUT,DUOUT,PXRMITEM,PXRHM,PXRMTDEB,REF,X,Y
    62         S DIC=2,DIC("A")="Select Patient: "
    63         S DIC(0)="AEQMZ"
    64         D ^DIC
    65         I $D(DIROUT)!$D(DIRUT) Q
    66         I $D(DTOUT)!$D(DUOUT) Q
    67         S DFN=+$P(Y,U,1)
    68         S DIC=811.9,DIC("A")="Select Reminder: "
    69         D ^DIC
    70         I $D(DIROUT)!$D(DIRUT) Q
    71         I $D(DTOUT)!$D(DUOUT) Q
    72         S PXRMITEM=+$P(Y,U,1)
    73         S PXRHM=5
    74         S DIR(0)="DA^"_0_"::ETX"
    75         S DIR("A")="Enter date for reminder evaluation: "
    76         S DIR("B")=$$FMTE^XLFDT($$DT^XLFDT,"D")
    77         S DIR("PRE")="S X=$$DCHECK^PXRMDATE(X) K:X=-1 X"
    78         W !
    79         D ^DIR K DIR
    80         I $D(DIROUT)!$D(DIRUT) Q
    81         I $D(DTOUT)!$D(DUOUT) Q
    82         S DATE=Y
    83         I $D(^PXD(811.9,PXRMITEM,20,"E","PXRMD(811.5,")) S PXRMTDEB=$$ASKYN^PXRMEUT("N","Display all term findings","","")
    84         D DOREM(DFN,PXRMITEM,PXRHM,DATE)
    85         Q
    86         ;
    87         ;==================================================
    88 DOREM(DFN,PXRMITEM,PXRMHM,DATE) ;Do the reminder
    89         N DEFARR,FIEVAL,FINDING,PXRMDEBG,PXRMID,REF,TFIEVAL
    90         ;This is a debugging run so set PXRMDEBG.
    91         S PXRMDEBG=1
    92         D DEF^PXRMLDR(PXRMITEM,.DEFARR)
    93         I +$G(DATE)=0 D EVAL^PXRM(DFN,.DEFARR,PXRHM,1,.FIEVAL)
    94         I +$G(DATE)>0 D EVAL^PXRM(DFN,.DEFARR,PXRHM,1,.FIEVAL,DATE)
    95         ;
    96         W !!,"The elements of the FIEVAL array are:"
    97         S REF="FIEVAL"
    98         D AWRITE^PXRMUTIL(REF)
    99         ;
    100         I $G(PXRMTDEB) D
    101         . W !!,"Term findings:"
    102         . S REF="TFIEVAL"
    103         . S FINDING=0
    104         . F  S FINDING=$O(^TMP("PXRMTDEB",$J,FINDING)) Q:FINDING=""  D
    105         .. K TFIEVAL M TFIEVAL(FINDING)=^TMP("PXRMTDEB",$J,FINDING)
    106         .. W !,"Finding ",FINDING,":"
    107         .. D AWRITE^PXRMUTIL(REF)
    108         . K ^TMP("PXRMTDEB",$J)
    109         ;
    110         W !!,"The elements of the ^TMP(PXRMID,$J) array are:"
    111         I $D(PXRMID) S REF="^TMP(PXRMID,$J)" D AWRITE^PXRMUTIL(REF) K ^TMP(PXRMID,$J)
    112         ;
    113         W !!,"The elements of the ^TMP(""PXRHM"",$J) array are:"
    114         S REF="^TMP(""PXRHM"",$J)"
    115         D AWRITE^PXRMUTIL(REF)
    116         ;
    117         I $D(^TMP("PXRHM",$J)) D CMOUT
    118         I PXRHM=12 D MHVCOUT
    119         K ^TMP("PXRM",$J),^TMP("PXRHM",$J),^TMP("PXRMMHVC",$J)
    120         Q
    121         ;==================================================
    122 MHVCOUT ;Do formatted MHV combined output.
    123         N DUE,DUECOL,HIST,LAST,LASTCOL,LNUM,RIEN,RNAME,STATUS,STATCOL,TEMP,TYPE
    124         W !!,"Formatted Output:"
    125         S RIEN=$O(^TMP("PXRMMHVC",$J,""))
    126         S TEMP=^TMP("PXRMMHVC",$J,RIEN,"STATUS")
    127         S STATUS=$P(TEMP,U,1)
    128         S DUE=$$EDATE^PXRMDATE($P(TEMP,U,2))
    129         S LAST=$$EDATE^PXRMDATE($P(TEMP,U,3))
    130         S DUE=$$EDATE^PXRMDATE($P(TEMP,U,2))
    131         S LAST=$$EDATE^PXRMDATE($P(TEMP,U,3))
    132         S STATCOL=41-($L(STATUS)/2)
    133         S DUECOL=53-($L(DUE)/2)
    134         S LASTCOL=67-($L(LAST)/2)
    135         S RNAME=$P(^PXD(811.9,RIEN,0),U,3)
    136         I RNAME="" S RNAME=$P(^PXD(811.9,RIEN,0),U,1)
    137         W !!,?36,"--STATUS--",?47,"--DUE DATE--",?61,"--LAST DONE--",!
    138         W !,RNAME,?STATCOL,STATUS,?DUECOL,DUE,?LASTCOL,LAST,!
    139         W !!,"---------- Detailed Output ----------"
    140         S LNUM=0
    141         F  S LNUM=$O(^TMP("PXRMMHVC",$J,RIEN,"DETAIL",LNUM)) Q:LNUM=""  D
    142         . W !,^TMP("PXRMMHVC",$J,RIEN,"DETAIL",LNUM)
    143         W !!,"---------- Summary Output ----------"
    144         S LNUM=0
    145         F  S LNUM=$O(^TMP("PXRMMHVC",$J,RIEN,"SUMMARY",LNUM)) Q:LNUM=""  D
    146         . W !,^TMP("PXRMMHVC",$J,RIEN,"SUMMARY",LNUM)
    147         Q
    148         ;
     1PXRMDEV ; SLC/PKR - This is a driver for testing Clinical Reminders.;05/04/2006
     2 ;;2.0;CLINICAL REMINDERS;**4**;Feb 04, 2005;Build 21
     3 ;
     4 ;==================================================
     5CMOUT ;Do formatted Clinical Maintenance output.
     6 N DUE,DUECOL,HIST,LAST,LASTCOL,LNUM,RIEN,RNAME,STATUS,STATCOL,TEMP,TYPE
     7 W !!,"Formatted Output:"
     8 S RIEN=$O(^TMP("PXRHM",$J,""))
     9 S RNAME=$O(^TMP("PXRHM",$J,RIEN,""))
     10 S TEMP=$G(^TMP("PXRHM",$J,RIEN,RNAME))
     11 S STATUS=$P(TEMP,U,1)
     12 S DUE=$$EDATE^PXRMDATE($P(TEMP,U,2))
     13 S LAST=$$EDATE^PXRMDATE($P(TEMP,U,3))
     14 S STATCOL=41-($L(STATUS)/2)
     15 S DUECOL=53-($L(DUE)/2)
     16 S LASTCOL=67-($L(LAST)/2)
     17 W !!,?36,"--STATUS--",?47,"--DUE DATE--",?61,"--LAST DONE--",!
     18 W !,RNAME,?STATCOL,STATUS,?DUECOL,DUE,?LASTCOL,LAST,!
     19 S LNUM=0
     20 F  S LNUM=$O(^TMP("PXRHM",$J,RIEN,RNAME,"TXT",LNUM)) Q:LNUM=""  D
     21 . W !,^TMP("PXRHM",$J,RIEN,RNAME,"TXT",LNUM)
     22 Q
     23 ;
     24 ;==================================================
     25DEB ;Prompt for patient and reminder by name input component.
     26 N DATE,DFN,DIC,DIR,DIROUT,DTOUT,DUOUT,PXRMITEM,PXRHM,PXRMTDEB,X,Y
     27 S DIC=2,DIC("A")="Select Patient: "
     28 S DIC(0)="AEQMZ"
     29 D ^DIC
     30 I $D(DTOUT)!$D(DUOUT) Q
     31 S DFN=+$P(Y,U,1)
     32 I DFN=-1 W !,"No patient selected!" Q
     33 S DIC=811.9,DIC("A")="Select Reminder: "
     34 S DIC("S")="I $P(^PXD(811.9,Y,100),U,4)'[""L"""
     35 D ^DIC
     36 I $D(DIROUT)!$D(DIRUT) Q
     37 I $D(DTOUT)!$D(DUOUT) Q
     38 S PXRMITEM=+$P(Y,U,1)
     39 I PXRMITEM=-1 W !,"No reminder selected!" Q
     40 S DIR(0)="LA"_U_"0"
     41 S DIR("A")="Enter component number 0, 1, 5, 10, 11, 12: "
     42 D ^DIR
     43 I $D(DIROUT)!$D(DIRUT) Q
     44 I $D(DTOUT)!$D(DUOUT) Q
     45 I X="" S X=5
     46 S PXRHM=X
     47 S DIR(0)="DA^"_0_"::ETX"
     48 S DIR("A")="Enter date for reminder evaluation: "
     49 S DIR("B")=$$FMTE^XLFDT($$DT^XLFDT,"D")
     50 S DIR("PRE")="S X=$$DCHECK^PXRMDATE(X) K:X=-1 X"
     51 W !
     52 D ^DIR K DIR
     53 I $D(DIROUT)!$D(DIRUT) Q
     54 I $D(DTOUT)!$D(DUOUT) Q
     55 S DATE=Y
     56 I $D(^PXD(811.9,PXRMITEM,20,"E","PXRMD(811.5,")) S PXRMTDEB=$$ASKYN^PXRMEUT("N","Display all term findings","","")
     57 D DOREM(DFN,PXRMITEM,PXRHM,DATE)
     58 Q
     59 ;
     60 ;==================================================
     61DEV ;Prompt for patient and reminder by name and evaluation date.
     62 N DATE,DFN,DIC,DIROUT,DIRUT,DTOUT,DUOUT,PXRMITEM,PXRHM,PXRMTDEB,REF,X,Y
     63 S DIC=2,DIC("A")="Select Patient: "
     64 S DIC(0)="AEQMZ"
     65 D ^DIC
     66 I $D(DIROUT)!$D(DIRUT) Q
     67 I $D(DTOUT)!$D(DUOUT) Q
     68 S DFN=+$P(Y,U,1)
     69 S DIC=811.9,DIC("A")="Select Reminder: "
     70 S DIC("S")="I $P(^PXD(811.9,Y,100),U,4)'[""L"""
     71 D ^DIC
     72 I $D(DIROUT)!$D(DIRUT) Q
     73 I $D(DTOUT)!$D(DUOUT) Q
     74 S PXRMITEM=+$P(Y,U,1)
     75 S PXRHM=5
     76 S DIR(0)="DA^"_0_"::ETX"
     77 S DIR("A")="Enter date for reminder evaluation: "
     78 S DIR("B")=$$FMTE^XLFDT($$DT^XLFDT,"D")
     79 S DIR("PRE")="S X=$$DCHECK^PXRMDATE(X) K:X=-1 X"
     80 W !
     81 D ^DIR K DIR
     82 I $D(DIROUT)!$D(DIRUT) Q
     83 I $D(DTOUT)!$D(DUOUT) Q
     84 S DATE=Y
     85 I $D(^PXD(811.9,PXRMITEM,20,"E","PXRMD(811.5,")) S PXRMTDEB=$$ASKYN^PXRMEUT("N","Display all term findings","","")
     86 D DOREM(DFN,PXRMITEM,PXRHM,DATE)
     87 Q
     88 ;
     89 ;==================================================
     90DOREM(DFN,PXRMITEM,PXRMHM,DATE) ;Do the reminder
     91 N DEFARR,FIEVAL,FINDING,PXRMDEBG,PXRMID,REF,TFIEVAL
     92 ;This is a debugging run so set PXRMDEBG.
     93 S PXRMDEBG=1
     94 D DEF^PXRMLDR(PXRMITEM,.DEFARR)
     95 I +$G(DATE)=0 D EVAL^PXRM(DFN,.DEFARR,PXRHM,1,.FIEVAL)
     96 I +$G(DATE)>0 D EVAL^PXRM(DFN,.DEFARR,PXRHM,1,.FIEVAL,DATE)
     97 ;
     98 W !!,"The elements of the FIEVAL array are:"
     99 S REF="FIEVAL"
     100 D AWRITE^PXRMUTIL(REF)
     101 ;
     102 I $G(PXRMTDEB) D
     103 . W !!,"Term findings:"
     104 . S REF="TFIEVAL"
     105 . S FINDING=0
     106 . F  S FINDING=$O(^TMP("PXRMTDEB",$J,FINDING)) Q:FINDING=""  D
     107 .. K TFIEVAL M TFIEVAL(FINDING)=^TMP("PXRMTDEB",$J,FINDING)
     108 .. W !,"Finding ",FINDING,":"
     109 .. D AWRITE^PXRMUTIL(REF)
     110 . K ^TMP("PXRMTDEB",$J)
     111 ;
     112 W !!,"The elements of the ^TMP(PXRMID,$J) array are:"
     113 I $D(PXRMID) S REF="^TMP(PXRMID,$J)" D AWRITE^PXRMUTIL(REF) K ^TMP(PXRMID,$J)
     114 ;
     115 W !!,"The elements of the ^TMP(""PXRHM"",$J) array are:"
     116 S REF="^TMP(""PXRHM"",$J)"
     117 D AWRITE^PXRMUTIL(REF)
     118 ;
     119 I $D(^TMP("PXRHM",$J)) D CMOUT
     120 I PXRHM=12 D MHVCOUT
     121 K ^TMP("PXRM",$J),^TMP("PXRHM",$J),^TMP("PXRMMHVC",$J)
     122 Q
     123 ;==================================================
     124MHVCOUT ;Do formatted MHV combined output.
     125 N DUE,DUECOL,HIST,LAST,LASTCOL,LNUM,RIEN,RNAME,STATUS,STATCOL,TEMP,TYPE
     126 W !!,"Formatted Output:"
     127 S RIEN=$O(^TMP("PXRMMHVC",$J,""))
     128 S TEMP=^TMP("PXRMMHVC",$J,RIEN,"STATUS")
     129 S STATUS=$P(TEMP,U,1)
     130 S DUE=$$EDATE^PXRMDATE($P(TEMP,U,2))
     131 S LAST=$$EDATE^PXRMDATE($P(TEMP,U,3))
     132 S DUE=$$EDATE^PXRMDATE($P(TEMP,U,2))
     133 S LAST=$$EDATE^PXRMDATE($P(TEMP,U,3))
     134 S STATCOL=41-($L(STATUS)/2)
     135 S DUECOL=53-($L(DUE)/2)
     136 S LASTCOL=67-($L(LAST)/2)
     137 S RNAME=$P(^PXD(811.9,RIEN,0),U,3)
     138 I RNAME="" S RNAME=$P(^PXD(811.9,RIEN,0),U,1)
     139 W !!,?36,"--STATUS--",?47,"--DUE DATE--",?61,"--LAST DONE--",!
     140 W !,RNAME,?STATCOL,STATUS,?DUECOL,DUE,?LASTCOL,LAST,!
     141 W !!,"---------- Detailed Output ----------"
     142 S LNUM=0
     143 F  S LNUM=$O(^TMP("PXRMMHVC",$J,RIEN,"DETAIL",LNUM)) Q:LNUM=""  D
     144 . W !,^TMP("PXRMMHVC",$J,RIEN,"DETAIL",LNUM)
     145 W !!,"---------- Summary Output ----------"
     146 S LNUM=0
     147 F  S LNUM=$O(^TMP("PXRMMHVC",$J,RIEN,"SUMMARY",LNUM)) Q:LNUM=""  D
     148 . W !,^TMP("PXRMMHVC",$J,RIEN,"SUMMARY",LNUM)
     149 Q
     150 ;
Note: See TracChangeset for help on using the changeset viewer.