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/SCHEDULING-SD-SC/SCMCHLR2.m

    r613 r623  
    1 SCMCHLR2        ;ALB/KCL - PCMM HL7 Reject Processing - Build List Area; 10-JAN-2000  ; Compiled April 24, 2007 11:44:10
    2         ;;5.3;Scheduling;**210,272,297,458**;AUG 13, 1993;Build 14
    3         ;
    4 EN(SCARY,SCBEG,SCEND,SCEPS,SCSORTBY,SCCNT)      ;
    5         ; Description: This entry point is used to build list area for
    6         ; PCMM Transmission Errors.
    7         ;
    8         ; The following variables are 'system wide variables' in the
    9         ; PCMM Transmission Error Processing List Manager application:
    10         ;  Input:
    11         ;      SCARY - Global array subscript
    12         ;      SCBEG - Begin date for date range
    13         ;      SCEND - End date for date range
    14         ;      SCEPS - Error processing statuses
    15         ;                1 -> New
    16         ;                2 -> Checked
    17         ;                3 -> Both
    18         ;   SCSORTBY - Sort by criteria
    19         ;                N -> Patient Name
    20         ;                D -> Date/Time Ack Received
    21         ;                P -> Provider
    22         ;
    23         ; Output:
    24         ;  SCCNT - Contains number of lines in the list, pass by reference
    25         ;
    26         ;Display FM wait msg
    27         D WAIT^DICD
    28         ;
    29         ;Get PCMM HL7 Trans Log errors
    30         D GET(SCARY,SCBEG,SCEND,SCEPS,SCSORTBY)
    31         ;
    32         ;Build list area for PCMM HL7 Trans Log errors
    33         D BLDLIST^SCMCHLR3(SCSORTBY,SCEPS,.SCCNT)
    34         ;
    35         ;If no PCMM HL7 Trans Log errors, display msg in list area
    36         I 'SCCNT D
    37         .D SET^SCMCHLR3(SCARY,1,"",1,36,0,,,,.SCCNT)
    38         .D SET^SCMCHLR3(SCARY,2,"No 'PCMM Transmission Errors' to display.",4,41,0,,,,.SCCNT)
    39         Q
    40         ;
    41         ;
    42 GET(SCARY,SCBEG,SCEND,SCEPS,SCSORTBY)   ;
    43         ; Description: Get PCMM HL7 Transmission Log errors.
    44         ;
    45         ;  Input:
    46         ;      SCARY - Global array subscript
    47         ;      SCBEG - Begin date for date range
    48         ;      SCEND - End date for date range
    49         ;      SCEPS - Error processing status
    50         ;   SCSORTBY - Sort by criteria
    51         ;
    52         ; Output:
    53         ;  PCMM transmission log error list sorted by:
    54         ;
    55         ;   Patient Name: ^TMP("SCERRSRT",$J,<sort by>,<patient name>,<trans log IEN>,<err code ien>)
    56         ; OR,
    57         ;   Date/Time Ack Rec'd: ^TMP("SCERRSRT",$J,<sort by>,<date/time ack rec'd>,<trans log IEN>,<err code ien>)
    58         ; OR,
    59         ;   Provider: ^TMP("SCERRSRT",$J,<sort by>,<provider>,<trans log IEN>,<err code ien>)
    60         ;
    61         N SCDFN,SCDTR,SCERIEN,SCTLIEN,SCSTAT
    62         ;
    63         ;Loop thru PCMM HL7 Trans Log for selected date range
    64         F SCDTR=SCBEG:0 S SCDTR=$O(^SCPT(404.471,"AST",SCDTR)) Q:'SCDTR!($P(SCDTR,".")>SCEND)  D
    65         .;loop thru status
    66         .S SCSTAT=0
    67         .F  S SCSTAT=$O(^SCPT(404.471,"AST",SCDTR,SCSTAT)) Q:SCSTAT=""  D
    68         ..;loop thru patients
    69         ..S SCDFN=0
    70         ..F  S SCDFN=$O(^SCPT(404.471,"AST",SCDTR,SCSTAT,SCDFN)) Q:SCDFN=""  D
    71         ...;loop through (#404.471) ien's
    72         ...S SCTLIEN=0
    73         ...F  S SCTLIEN=$O(^SCPT(404.471,"AST",SCDTR,SCSTAT,SCDFN,SCTLIEN)) Q:'SCTLIEN  D
    74         ....;loop thru ien's of error code mult. and setup sort array
    75         ....S SCERIEN=0
    76         ....F  S SCERIEN=$O(^SCPT(404.471,SCTLIEN,"ERR",SCERIEN)) Q:'SCERIEN  D SORT(SCSORTBY,SCDTR,SCDFN,SCEPS,SCTLIEN,SCERIEN)
    77         ;
    78         Q
    79         ;
    80         ;
    81 SORT(SCSORTBY,SCDTR,SCDFN,SCEPS,SCTLIEN,SCERIEN)        ;
    82         ; Description: Used to set up sort array based on 'Sort Criteria' and
    83         ; 'Error Processing Status' for PCMM Transmission Errors list display.
    84         ;
    85         ;  Input:
    86         ;   SCSORTBY - Sort by criteria
    87         ;      SCDTR - PCMM transmission log date/time ack received
    88         ;      SCDFN - Patient IEN
    89         ;      SCEPS - Error processing status
    90         ;    SCTLIEN - PCMM transmission log IEN
    91         ;    SCERIEN - IEN of record in Error Code (#404.47142) multiple
    92         ;
    93         ; Output: None
    94         ;
    95         N SCTLOG
    96         ;
    97         ;If sort by criteria is 'Date/Time Ack Received'
    98         I SCSORTBY="D" D
    99         .;get data from PCMM HL7 Trans Log
    100         .I $$GETLOG^SCMCHLA(SCTLIEN,SCERIEN,.SCTLOG) D
    101         ..;if Error Proc Status matches selected Error Proc Status
    102         ..I (SCEPS=$G(SCTLOG("ERR","EPS"))!(SCEPS>2)) D
    103         ...;setup ^tmp array sorted by date/time ack rec'd
    104         ...S ^TMP("SCERRSRT",$J,SCSORTBY,SCDTR,SCTLIEN,SCERIEN)=""
    105         ;
    106         ;If sort by criteria is 'Provider'
    107         I SCSORTBY="P" D
    108         .N SCPTR,SCPROV,SCHL
    109         .;get data from PCMM HL7 Trans Log
    110         .I $$GETLOG^SCMCHLA(SCTLIEN,SCERIEN,.SCTLOG) D
    111         ..;if Error Proc Status matches selected Error Proc Status
    112         ..I (SCEPS=$G(SCTLOG("ERR","EPS"))!(SCEPS>2)) D
    113         ...;get data from PCMM HL7 ID file
    114         ...I $$GETHL7ID^SCMCHLA2($G(SCTLOG("ERR","ZPCID")),.SCHL) D
    115         ....;get provider from POSITION ASSIGNMENT HISTORY file
    116         ....S SCPTR=$P($G(SCHL("HL7ID")),"-",2)  ; pointer to PCMM HL7 ID file
    117         ....I $G(SCTLOG("WORK")) S SCPROV=$$PROV^SCMCHLP(SCTLOG("WORK"))
    118         ....I '$G(SCTLOG("WORK")) S SCPROV=$P($G(^SCTM(404.52,+SCPTR,0)),"^",3)
    119         ....;setup ^tmp array sorted by provider
    120         ....S ^TMP("SCERRSRT",$J,SCSORTBY,$S($G(SCPROV)'="":$$EXTERNAL^DILFD(404.52,.03,,SCPROV),1:"ZZZUNKNOWN"),SCTLIEN,SCERIEN)=""
    121         ;
    122         ;If sort by criteria is 'Patient' (default)
    123         I SCSORTBY="N" D
    124         .;get data from PCMM HL7 Trans Log
    125         .I $$GETLOG^SCMCHLA(SCTLIEN,SCERIEN,.SCTLOG) D
    126         ..;if Error Proc Status matches selected Error Proc Status
    127         ..I (SCEPS=$G(SCTLOG("ERR","EPS"))!(SCEPS>2)) D
    128         ...;setup ^tmp array sorted by patient
    129         ...I SCDFN="W" I $G(SCTLOG("WORK"))="" S SCDFN=""
    130         ...S ^TMP("SCERRSRT",$J,SCSORTBY,$S($P($G(^DPT(+SCDFN,0)),U)'="":$P(^(0),U),SCDFN="W":"Workload Message",1:"UNKNOWN"),SCTLIEN,SCERIEN)=""
    131         ;
    132         Q
     1SCMCHLR2 ;ALB/KCL - PCMM HL7 Reject Processing - Build List Area; 10-JAN-2000
     2 ;;5.3;Scheduling;**210,272,297**;AUG 13, 1993
     3 ;
     4EN(SCARY,SCBEG,SCEND,SCEPS,SCSORTBY,SCCNT) ;
     5 ; Description: This entry point is used to build list area for
     6 ; PCMM Transmission Errors.
     7 ;
     8 ; The following variables are 'system wide variables' in the
     9 ; PCMM Transmission Error Processing List Manager application:
     10 ;  Input:
     11 ;      SCARY - Global array subscript
     12 ;      SCBEG - Begin date for date range
     13 ;      SCEND - End date for date range
     14 ;      SCEPS - Error processing statuses
     15 ;                1 -> New
     16 ;                2 -> Checked
     17 ;                3 -> Both
     18 ;   SCSORTBY - Sort by criteria
     19 ;                N -> Patient Name
     20 ;                D -> Date/Time Ack Received
     21 ;                P -> Provider
     22 ;
     23 ; Output:
     24 ;  SCCNT - Contains number of lines in the list, pass by reference
     25 ;
     26 ;Display FM wait msg
     27 D WAIT^DICD
     28 ;
     29 ;Get PCMM HL7 Trans Log errors
     30 D GET(SCARY,SCBEG,SCEND,SCEPS,SCSORTBY)
     31 ;
     32 ;Build list area for PCMM HL7 Trans Log errors
     33 D BLDLIST^SCMCHLR3(SCSORTBY,SCEPS,.SCCNT)
     34 ;
     35 ;If no PCMM HL7 Trans Log errors, display msg in list area
     36 I 'SCCNT D
     37 .D SET^SCMCHLR3(SCARY,1,"",1,36,0,,,,.SCCNT)
     38 .D SET^SCMCHLR3(SCARY,2,"No 'PCMM Transmission Errors' to display.",4,41,0,,,,.SCCNT)
     39 Q
     40 ;
     41 ;
     42GET(SCARY,SCBEG,SCEND,SCEPS,SCSORTBY) ;
     43 ; Description: Get PCMM HL7 Transmission Log errors.
     44 ;
     45 ;  Input:
     46 ;      SCARY - Global array subscript
     47 ;      SCBEG - Begin date for date range
     48 ;      SCEND - End date for date range
     49 ;      SCEPS - Error processing status
     50 ;   SCSORTBY - Sort by criteria
     51 ;
     52 ; Output:
     53 ;  PCMM transmission log error list sorted by:
     54 ;
     55 ;   Patient Name: ^TMP("SCERRSRT",$J,<sort by>,<patient name>,<trans log IEN>,<err code ien>)
     56 ; OR,
     57 ;   Date/Time Ack Rec'd: ^TMP("SCERRSRT",$J,<sort by>,<date/time ack rec'd>,<trans log IEN>,<err code ien>)
     58 ; OR,
     59 ;   Provider: ^TMP("SCERRSRT",$J,<sort by>,<provider>,<trans log IEN>,<err code ien>)
     60 ;
     61 N SCDFN,SCDTR,SCERIEN,SCTLIEN,SCSTAT
     62 ;
     63 ;Loop thru PCMM HL7 Trans Log for selected date range
     64 F SCDTR=SCBEG:0 S SCDTR=$O(^SCPT(404.471,"AST",SCDTR)) Q:'SCDTR!($P(SCDTR,".")>SCEND)  D
     65 .;loop thru status
     66 .S SCSTAT=0
     67 .F  S SCSTAT=$O(^SCPT(404.471,"AST",SCDTR,SCSTAT)) Q:SCSTAT=""  D
     68 ..;loop thru patients
     69 ..S SCDFN=0
     70 ..F  S SCDFN=$O(^SCPT(404.471,"AST",SCDTR,SCSTAT,SCDFN)) Q:SCDFN=""  D
     71 ...;loop through (#404.471) ien's
     72 ...S SCTLIEN=0
     73 ...F  S SCTLIEN=$O(^SCPT(404.471,"AST",SCDTR,SCSTAT,SCDFN,SCTLIEN)) Q:'SCTLIEN  D
     74 ....;loop thru ien's of error code mult. and setup sort array
     75 ....S SCERIEN=0
     76 ....F  S SCERIEN=$O(^SCPT(404.471,SCTLIEN,"ERR",SCERIEN)) Q:'SCERIEN  D SORT(SCSORTBY,SCDTR,SCDFN,SCEPS,SCTLIEN,SCERIEN)
     77 ;
     78 Q
     79 ;
     80 ;
     81SORT(SCSORTBY,SCDTR,SCDFN,SCEPS,SCTLIEN,SCERIEN) ;
     82 ; Description: Used to set up sort array based on 'Sort Criteria' and
     83 ; 'Error Processing Status' for PCMM Transmission Errors list display.
     84 ;
     85 ;  Input:
     86 ;   SCSORTBY - Sort by criteria
     87 ;      SCDTR - PCMM transmission log date/time ack received
     88 ;      SCDFN - Patient IEN
     89 ;      SCEPS - Error processing status
     90 ;    SCTLIEN - PCMM transmission log IEN
     91 ;    SCERIEN - IEN of record in Error Code (#404.47142) multiple
     92 ;
     93 ; Output: None
     94 ;
     95 N SCTLOG
     96 ;
     97 ;If sort by criteria is 'Date/Time Ack Received'
     98 I SCSORTBY="D" D
     99 .;get data from PCMM HL7 Trans Log
     100 .I $$GETLOG^SCMCHLA(SCTLIEN,SCERIEN,.SCTLOG) D
     101 ..;if Error Proc Status matches selected Error Proc Status
     102 ..I (SCEPS=$G(SCTLOG("ERR","EPS"))!(SCEPS>2)) D
     103 ...;setup ^tmp array sorted by date/time ack rec'd
     104 ...S ^TMP("SCERRSRT",$J,SCSORTBY,SCDTR,SCTLIEN,SCERIEN)=""
     105 ;
     106 ;If sort by criteria is 'Provider'
     107 I SCSORTBY="P" D
     108 .N SCPTR,SCPROV,SCHL
     109 .;get data from PCMM HL7 Trans Log
     110 .I $$GETLOG^SCMCHLA(SCTLIEN,SCERIEN,.SCTLOG) D
     111 ..;if Error Proc Status matches selected Error Proc Status
     112 ..I (SCEPS=$G(SCTLOG("ERR","EPS"))!(SCEPS>2)) D
     113 ...;get data from PCMM HL7 ID file
     114 ...I $$GETHL7ID^SCMCHLA2($G(SCTLOG("ERR","ZPCID")),.SCHL)
     115 ...;get provider from POSITION ASSIGNMENT HISTORY file
     116 ...S SCPTR=$P($G(SCHL("HL7ID")),"-",2)  ; pointer to PCMM HL7 ID file
     117 ...I $G(SCTLOG("WORK")) S SCPROV=$$PROV^SCMCHLP(SCTLOG("WORK"))
     118 ...I '$G(SCTLOG("WORK")) S SCPROV=$P($G(^SCTM(404.52,+SCPTR,0)),"^",3)
     119 ...;setup ^tmp array sorted by provider
     120 ...S ^TMP("SCERRSRT",$J,SCSORTBY,$S($G(SCPROV)'="":$$EXTERNAL^DILFD(404.52,.03,,SCPROV),1:"ZZZUNKNOWN"),SCTLIEN,SCERIEN)=""
     121 ;
     122 ;If sort by criteria is 'Patient' (default)
     123 I SCSORTBY="N" D
     124 .;get data from PCMM HL7 Trans Log
     125 .I $$GETLOG^SCMCHLA(SCTLIEN,SCERIEN,.SCTLOG) D
     126 ..;if Error Proc Status matches selected Error Proc Status
     127 ..I (SCEPS=$G(SCTLOG("ERR","EPS"))!(SCEPS>2)) D
     128 ...;setup ^tmp array sorted by patient
     129 ...I SCDFN="W" I $G(SCTLOG("WORK"))="" S SCDFN=""
     130 ...S ^TMP("SCERRSRT",$J,SCSORTBY,$S($P($G(^DPT(+SCDFN,0)),U)'="":$P(^(0),U),SCDFN="W":"Workload Message",1:"UNKNOWN"),SCTLIEN,SCERIEN)=""
     131 ;
     132 Q
Note: See TracChangeset for help on using the changeset viewer.