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

    r613 r623  
    1 PXRMEPM ; SLC/PKR/PJH - Extract Definition Management ;07/17/2007
    2         ;;2.0;CLINICAL REMINDERS;**4,6**;Feb 04, 2005;Build 123
    3         ;
    4         ;Main entry point for PXRM EXTRACT DEFINITIONS
    5 START   N PXRMDONE,VALMBCK,VALMCNT,VALMSG,X,XMZ,XQORM,XQORNOD
    6         S X="IORESET"
    7         D ENDR^%ZISS
    8         S VALMCNT=0
    9         D EN^VALM("PXRM EXTRACT DEFINITIONS")
    10         Q
    11         ;
    12 BLDLIST ;Build workfile
    13         K ^TMP("PXRMEPM",$J)
    14         N IEN,IND,PLIST
    15         D LIST^PXRMETM("PXRMEPM",.VALMCNT)
    16         Q
    17         ;
    18 ENTRY   ;Entry code
    19         D BLDLIST,XQORM
    20         Q
    21         ;
    22 EXIT    ;Exit code
    23         K ^TMP("PXRMEPM",$J)
    24         K ^TMP("PXRMEPMH",$J)
    25         D CLEAN^VALM10
    26         D FULL^VALM1
    27         S VALMBCK="Q"
    28         Q
    29         ;
    30 HDR     ; Header code
    31         S VALMSG="+ Next Screen   - Prev Screen   ?? More Actions"
    32         Q
    33         ;
    34 HLP     ;Help code
    35         N ORU,ORUPRMT,SUB,XQORM
    36         S SUB="PXRMEPMH"
    37         D EN^VALM("PXRM EXTRACT HELP")
    38         Q
    39         ;
    40 INIT    ;Init
    41         S VALMCNT=0
    42         Q
    43         ;
    44 PEXIT   ;PXRM EXCH MENU protocol exit code
    45         S VALMSG="+ Next Screen   - Prev Screen   ?? More Actions"
    46         ;Reset after page up/down etc
    47         D XQORM
    48         Q
    49         ;
    50 XQORM   S XQORM("#")=$O(^ORD(101,"B","PXRM EXTRACT DEFINITION SELECT ENTRY",0))_U_"1:"_VALMCNT
    51         S XQORM("A")="Select Item: "
    52         Q
    53         ;
    54 XSEL    ;PXRM EXTRACT DEFINITION SELECT ENTRY validation
    55         N SEL,IEN
    56         S SEL=$P(XQORNOD(0),"=",2)
    57         ;Remove trailing ,
    58         I $E(SEL,$L(SEL))="," S SEL=$E(SEL,1,$L(SEL)-1)
    59         ;Invalid selection
    60         I SEL["," D  Q
    61         .W $C(7),!,"Only one item number allowed." H 2
    62         .S VALMBCK="R"
    63         I ('SEL)!(SEL>VALMCNT)!('$D(@VALMAR@("SEL",SEL))) D  Q
    64         .W $C(7),!,SEL_" is not a valid item number." H 2
    65         .S VALMBCK="R"
    66         ;
    67         ;Get the list ien.
    68         S IEN=^TMP("PXRMEPM",$J,"SEL",SEL)
    69         ;Display/Edit Extract Definition
    70         D START^PXRMEPED(IEN)
    71         D BLDLIST
    72         S VALMBCK="R"
    73         Q
    74         ;
    75 HELP(CALL)      ;General help text routine
    76         N HTEXT
    77         I CALL=1 D
    78         .S HTEXT(1)="Select DE to display or edit a definition."
    79         .S HTEXT(2)="Select ED to edit a definition"
    80         D HELP^PXRMEUT(.HTEXT)
    81         Q
    82         ;
    83 EPADD   ;Add Rule Option
    84         ;Reset Screen Mode
    85         W IORESET
    86         ;
    87         ;Add Rule
    88         D ADD^PXRMEPED
    89         ;
    90         ;Rebuild Workfile
    91         D BLDLIST
    92         S VALMBCK="R"
    93         Q
    94         ;
    95 EPINQ   ;Definition Inquiry - PXRM EXTRACT DEFINITION DISPLAY/EDIT entry
    96         N IND,LRIEN,VALMY
    97         D EN^VALM2(XQORNOD(0))
    98         ;
    99         ;If there is no list quit.
    100         I '$D(VALMY) Q
    101         S PXRMDONE=0
    102         S IND=""
    103         F  S IND=$O(VALMY(IND)) Q:(+IND=0)!(PXRMDONE)  D
    104         .;Get the ien.
    105         .S LRIEN=^TMP("PXRMEPM",$J,"SEL",IND)
    106         .D START^PXRMEPED(LRIEN)
    107         D BLDLIST
    108         S VALMBCK="R"
    109         Q
    110         ;
    111 PPLR    ;Display rule set components
    112         ;used by [PXRM EXTRACT DEFINITION] template)
    113         N ACT,DATA,FIRST,IEN,LRDATA,LRIEN,SEQ,SUB
    114         S IEN=$P(X,U,2) Q:'IEN
    115         W !," Description: ",$P($G(^PXRM(810.4,IEN,0)),U,2)
    116         S SEQ="",FIRST=1
    117         F  S SEQ=$O(^PXRM(810.4,IEN,30,"B",SEQ)) Q:'SEQ  D
    118         .S SUB=$O(^PXRM(810.4,IEN,30,"B",SEQ,"")) Q:'SUB
    119         .S DATA=$G(^PXRM(810.4,IEN,30,SUB,0)) Q:DATA=""
    120         .S LRIEN=$P(DATA,U,2) Q:LRIEN=""
    121         .S ACT=$P(DATA,U,3),LRDATA=$G(^PXRM(810.4,LRIEN,0))
    122         .I FIRST W !!,?2,"List Rules:" S FIRST=0
    123         .W !,?2,SEQ,?7,$P(LRDATA,U),?66
    124         .W $S(ACT="A":"ADD PATIENT",ACT="R":"REMOVE PATIENT",ACT="F":"INSERT FINDING",1:"SELECT PATIENT")
    125         .;Display List Rule fields
    126         .D LROUT^PXRMLRED(LRIEN,23)
    127         .W !
    128         Q
    129         ;
    130 PPFR    ;Display counting rules and count type
    131         ;used by [PXRM EXTRACT DEFINITION] template)
    132         W !
    133         N DATA,GIEN,GSTATUS,IEN,SEQ,SUB
    134         S IEN=$P(X,U,3) Q:'IEN
    135         S SEQ=""
    136         F  S SEQ=$O(^PXRM(810.7,IEN,10,"B",SEQ)) Q:SEQ=""  D
    137         .S SUB=$O(^PXRM(810.7,IEN,10,"B",SEQ,"")) Q:'SUB
    138         .S DATA=$G(^PXRM(810.7,IEN,10,SUB,0)) Q:DATA=""
    139         .S GIEN=$P(DATA,U,2) Q:GIEN=""
    140         .S GSTATUS=$P(DATA,U,3)
    141         .;Get counting groups
    142         .N CTYP,CTXT,DATA,EXCL,FIRST,GNAME,PNAME,TIEN,TNAME,GSEQ,GSUB
    143         .S DATA=$G(^PXRM(810.8,GIEN,0)),GNAME=$P(DATA,U)
    144         .S CTYP=$P(DATA,U,3),PNAME=$P(DATA,U,2),GSEQ="",FIRST=1
    145         .S CTXT=$$TXT(CTYP,GSTATUS)
    146         .F  S GSEQ=$O(^PXRM(810.8,GIEN,10,"B",GSEQ)) Q:GSEQ=""  D
    147         ..S GSUB=$O(^PXRM(810.8,GIEN,10,"B",GSEQ,"")) Q:'GSUB
    148         ..S DATA=$G(^PXRM(810.8,GIEN,10,GSUB,0)) Q:DATA=""
    149         ..S TIEN=$P(DATA,U,2) Q:TIEN=""
    150         ..S EXCL=$P(DATA,U,3) Q:EXCL="E"
    151         ..S TNAME=$P($G(^PXRMD(811.5,TIEN,0)),U)
    152         ..I FIRST D
    153         ...W !,?14,SEQ
    154         ...W ?18,"Counting Group: ",GNAME
    155         ...W !,?18,$$TXT(CTYP,GSTATUS)
    156         ...W !,?23,"Terms:" S FIRST=0
    157         ..W ?30,TNAME,!
    158         Q
    159         ;
    160 SCREEN  ;Screen for 810.210 field .02
    161         S DIC("S")="I $P(^(0),U,3)=3"
    162         Q
    163         ;
    164 TXT(COUNT,COHORT)       ;Text to describe group
    165         N TXT
    166         ;Determine count type
    167         I COUNT="MRFP" S TXT="Most recent finding patient counts for "
    168         I COUNT="MRF" S TXT="Most recent finding counts for "
    169         I COUNT="UR" S TXT="Utilization in period finding counts for "
    170         ;Error
    171         I $G(TXT)="" Q "Unknown count type - error"
    172         ;Determine cohort
    173         S TXT=TXT_$S(COHORT="A":"APPLICABLE",1:"TOTAL")_" patients"
    174         Q TXT
     1PXRMEPM ; SLC/PKR/PJH - Extract Definition Management ;06/21/2006
     2 ;;2.0;CLINICAL REMINDERS;**4**;Feb 04, 2005;Build 21
     3 ;
     4 ;Main entry point for PXRM EXTRACT DEFINITIONS
     5START N PXRMDONE,VALMBCK,VALMCNT,VALMSG,X,XMZ,XQORM,XQORNOD
     6 S X="IORESET"
     7 D ENDR^%ZISS
     8 S VALMCNT=0
     9 D EN^VALM("PXRM EXTRACT DEFINITIONS")
     10 Q
     11 ;
     12BLDLIST ;Build workfile
     13 K ^TMP("PXRMEPM",$J)
     14 N IEN,IND,PLIST
     15 D LIST^PXRMETM(.PLIST,.IEN)
     16 M ^TMP("PXRMEPM",$J)=PLIST
     17 S VALMCNT=PLIST("VALMCNT")
     18 F IND=1:1:VALMCNT D
     19 .S ^TMP("PXRMEPM",$J,"IDX",IND,IND)=IEN(IND)
     20 Q
     21 ;
     22ENTRY ;Entry code
     23 D BLDLIST,XQORM
     24 Q
     25 ;
     26EXIT ;Exit code
     27 K ^TMP("PXRMEPM",$J)
     28 K ^TMP("PXRMEPMH",$J)
     29 D CLEAN^VALM10
     30 D FULL^VALM1
     31 S VALMBCK="Q"
     32 Q
     33 ;
     34HDR ; Header code
     35 S VALMSG="+ Next Screen   - Prev Screen   ?? More Actions"
     36 Q
     37 ;
     38HLP ;Help code
     39 N ORU,ORUPRMT,SUB,XQORM
     40 S SUB="PXRMEPMH"
     41 D EN^VALM("PXRM EXTRACT HELP")
     42 Q
     43 ;
     44INIT ;Init
     45 S VALMCNT=0
     46 Q
     47 ;
     48PEXIT ;PXRM EXCH MENU protocol exit code
     49 S VALMSG="+ Next Screen   - Prev Screen   ?? More Actions"
     50 ;Reset after page up/down etc
     51 D XQORM
     52 Q
     53 ;
     54XQORM S XQORM("#")=$O(^ORD(101,"B","PXRM EXTRACT DEFINITION SELECT ENTRY",0))_U_"1:"_VALMCNT
     55 S XQORM("A")="Select Item: "
     56 Q
     57 ;
     58XSEL ;PXRM EXTRACT DEFINITION SELECT ENTRY validation
     59 N SEL,IEN
     60 S SEL=$P(XQORNOD(0),"=",2)
     61 ;Remove trailing ,
     62 I $E(SEL,$L(SEL))="," S SEL=$E(SEL,1,$L(SEL)-1)
     63 ;Invalid selection
     64 I SEL["," D  Q
     65 .W $C(7),!,"Only one item number allowed." H 2
     66 .S VALMBCK="R"
     67 I ('SEL)!(SEL>VALMCNT)!('$D(@VALMAR@("IDX",SEL))) D  Q
     68 .W $C(7),!,SEL_" is not a valid item number." H 2
     69 .S VALMBCK="R"
     70 ;
     71 ;Get the list ien.
     72 S IEN=^TMP("PXRMEPM",$J,"IDX",SEL,SEL)
     73 ;Display/Edit Extract Definition
     74 D START^PXRMEPED(IEN)
     75 D BLDLIST
     76 S VALMBCK="R"
     77 Q
     78 ;
     79HELP(CALL) ;General help text routine
     80 N HTEXT
     81 I CALL=1 D
     82 .S HTEXT(1)="Select DE to display or edit a definition."
     83 .S HTEXT(2)="Select ED to edit a definition"
     84 D HELP^PXRMEUT(.HTEXT)
     85 Q
     86 ;
     87EPADD ;Add Rule Option
     88 ;
     89 ;Reset Screen Mode
     90 W IORESET
     91 ;
     92 ;Add Rule
     93 D ADD^PXRMEPED
     94 ;
     95 ;Rebuild Workfile
     96 D BLDLIST
     97 ;
     98 S VALMBCK="R"
     99 Q
     100 ;
     101EPINQ ;Definition Inquiry - PXRM EXTRACT DEFINITION DISPLAY/EDIT entry
     102 N IND,LRIEN,VALMY
     103 D EN^VALM2(XQORNOD(0))
     104 ;
     105 ;If there is no list quit.
     106 I '$D(VALMY) Q
     107 S PXRMDONE=0
     108 S IND=""
     109 F  S IND=$O(VALMY(IND)) Q:(+IND=0)!(PXRMDONE)  D
     110 .;Get the ien.
     111 .S LRIEN=^TMP("PXRMEPM",$J,"IDX",IND,IND)
     112 .D START^PXRMEPED(LRIEN)
     113 D BLDLIST
     114 S VALMBCK="R"
     115 Q
     116 ;
     117PPLR ;Display rule set components
     118 ;used by [PXRM EXTRACT DEFINITION] template)
     119 N ACT,DATA,FIRST,IEN,LRDATA,LRIEN,SEQ,SUB
     120 S IEN=$P(X,U,2) Q:'IEN
     121 W !," Description: ",$P($G(^PXRM(810.4,IEN,0)),U,2)
     122 S SEQ="",FIRST=1
     123 F  S SEQ=$O(^PXRM(810.4,IEN,30,"B",SEQ)) Q:'SEQ  D
     124 .S SUB=$O(^PXRM(810.4,IEN,30,"B",SEQ,"")) Q:'SUB
     125 .S DATA=$G(^PXRM(810.4,IEN,30,SUB,0)) Q:DATA=""
     126 .S LRIEN=$P(DATA,U,2) Q:LRIEN=""
     127 .S ACT=$P(DATA,U,3),LRDATA=$G(^PXRM(810.4,LRIEN,0))
     128 .I FIRST W !!,?2,"List Rules:" S FIRST=0
     129 .W !,?2,SEQ,?7,$P(LRDATA,U),?66
     130 .W $S(ACT="A":"ADD PATIENT",ACT="R":"REMOVE PATIENT",ACT="F":"INSERT FINDING",1:"SELECT PATIENT")
     131 .;Display List Rule fields
     132 .D LROUT^PXRMLRED(LRIEN,23)
     133 .W !
     134 Q
     135 ;
     136PPFR ;Display counting rules and count type
     137 ;used by [PXRM EXTRACT DEFINITION] template)
     138 W !
     139 N DATA,GIEN,GSTATUS,IEN,SEQ,SUB
     140 S IEN=$P(X,U,3) Q:'IEN
     141 S SEQ=""
     142 F  S SEQ=$O(^PXRM(810.7,IEN,10,"B",SEQ)) Q:SEQ=""  D
     143 .S SUB=$O(^PXRM(810.7,IEN,10,"B",SEQ,"")) Q:'SUB
     144 .S DATA=$G(^PXRM(810.7,IEN,10,SUB,0)) Q:DATA=""
     145 .S GIEN=$P(DATA,U,2) Q:GIEN=""
     146 .S GSTATUS=$P(DATA,U,3)
     147 .;Get counting groups
     148 .N CTYP,CTXT,DATA,EXCL,FIRST,GNAME,PNAME,TIEN,TNAME,GSEQ,GSUB
     149 .S DATA=$G(^PXRM(810.8,GIEN,0)),GNAME=$P(DATA,U)
     150 .S CTYP=$P(DATA,U,3),PNAME=$P(DATA,U,2),GSEQ="",FIRST=1
     151 .S CTXT=$$TXT(CTYP,GSTATUS)
     152 .F  S GSEQ=$O(^PXRM(810.8,GIEN,10,"B",GSEQ)) Q:GSEQ=""  D
     153 ..S GSUB=$O(^PXRM(810.8,GIEN,10,"B",GSEQ,"")) Q:'GSUB
     154 ..S DATA=$G(^PXRM(810.8,GIEN,10,GSUB,0)) Q:DATA=""
     155 ..S TIEN=$P(DATA,U,2) Q:TIEN=""
     156 ..S EXCL=$P(DATA,U,3) Q:EXCL="E"
     157 ..S TNAME=$P($G(^PXRMD(811.5,TIEN,0)),U)
     158 ..I FIRST D
     159 ...W !,?14,SEQ
     160 ...W ?18,"Counting Group: ",GNAME
     161 ...W !,?18,$$TXT(CTYP,GSTATUS)
     162 ...W !,?23,"Terms:" S FIRST=0
     163 ..W ?30,TNAME,!
     164 Q
     165 ;
     166SCREEN ;Screen for 810.210 field .02
     167 S DIC("S")="I $P(^(0),U,3)=3"
     168 Q
     169 ;
     170TXT(COUNT,COHORT) ;Text to describe group
     171 N TXT
     172 ;Determine count type
     173 I COUNT="MRFP" S TXT="Most recent finding patient counts for "
     174 I COUNT="MRF" S TXT="Most recent finding counts for "
     175 I COUNT="UR" S TXT="Utilization in period finding counts for "
     176 ;Error
     177 I $G(TXT)="" Q "Unknown count type - error"
     178 ;Determine cohort
     179 S TXT=TXT_$S(COHORT="A":"APPLICABLE",1:"TOTAL")_" patients"
     180 Q TXT
Note: See TracChangeset for help on using the changeset viewer.