Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: SCMCHLR2

SCMCHLR2.m

Go to the documentation of this file.
  1. SCMCHLR2 ;ALB/KCL - PCMM HL7 Reject Processing - Build List Area; 10-JAN-2000
  1. ;;5.3;Scheduling;**210,272,297,458,505**;AUG 13, 1993;Build 20
  1. ;
  1. EN(SCARY,SCBEG,SCEND,SCEPS,SCSORTBY,SCCNT) ;
  1. ; Description: This entry point is used to build list area for
  1. ; PCMM Transmission Errors.
  1. ;
  1. ; The following variables are 'system wide variables' in the
  1. ; PCMM Transmission Error Processing List Manager application:
  1. ; Input:
  1. ; SCARY - Global array subscript
  1. ; SCBEG - Begin date for date range
  1. ; SCEND - End date for date range
  1. ; SCEPS - Error processing statuses
  1. ; 1 -> New
  1. ; 2 -> Checked
  1. ; 3 -> Both
  1. ; SCSORTBY - Sort by criteria
  1. ; N -> Patient Name
  1. ; D -> Date/Time Ack Received
  1. ; P -> Provider
  1. ; I -> Institution
  1. ;
  1. ; Output:
  1. ; SCCNT - Contains number of lines in the list, pass by reference
  1. ;
  1. ;Display FM wait msg
  1. D WAIT^DICD
  1. ;
  1. ;Get PCMM HL7 Trans Log errors
  1. D GET(SCARY,SCBEG,SCEND,SCEPS,SCSORTBY)
  1. ;
  1. ;Build list area for PCMM HL7 Trans Log errors
  1. D BLDLIST^SCMCHLR3(SCSORTBY,SCEPS,.SCCNT)
  1. ;
  1. ;If no PCMM HL7 Trans Log errors, display msg in list area
  1. I 'SCCNT D
  1. .D SET^SCMCHLR3(SCARY,1,"",1,36,0,,,,.SCCNT)
  1. .D SET^SCMCHLR3(SCARY,2,"No 'PCMM Transmission Errors' to display.",4,41,0,,,,.SCCNT)
  1. Q
  1. ;
  1. ;
  1. GET(SCARY,SCBEG,SCEND,SCEPS,SCSORTBY) ;
  1. ; Description: Get PCMM HL7 Transmission Log errors.
  1. ;
  1. ; Input:
  1. ; SCARY - Global array subscript
  1. ; SCBEG - Begin date for date range
  1. ; SCEND - End date for date range
  1. ; SCEPS - Error processing status
  1. ; SCSORTBY - Sort by criteria
  1. ;
  1. ; Output:
  1. ; PCMM transmission log error list sorted by:
  1. ;
  1. ; Patient Name: ^TMP("SCERRSRT",$J,<sort by>,<patient name>,<trans log IEN>,<err code ien>)
  1. ; OR,
  1. ; Date/Time Ack Rec'd: ^TMP("SCERRSRT",$J,<sort by>,<date/time ack rec'd>,<trans log IEN>,<err code ien>)
  1. ; OR,
  1. ; Provider: ^TMP("SCERRSRT",$J,<sort by>,<provider>,<trans log IEN>,<err code ien>)
  1. ; OR,
  1. ; INSTITUTION: ^TMP("SCERRSRT",$J,<sort by>,<institution>,<trans log IEN>,<err code ien>)
  1. ; (INSTITUTION SORT INTRO. IN SD*5.3*505)
  1. ;
  1. N SCDFN,SCDTR,SCERIEN,SCTLIEN,SCSTAT,SCHLIEN,SCHLIEN1,SCHLIEN2
  1. N SCHLIEN3,SCHLIEN4,SCHLIEN5,SCTP,SCTPOS,SCTPSS
  1. ;
  1. ;Loop thru PCMM HL7 Trans Log for selected date range
  1. F SCDTR=SCBEG:0 S SCDTR=$O(^SCPT(404.471,"AST",SCDTR)) Q:'SCDTR!($P(SCDTR,".")>SCEND) D
  1. .;loop thru status
  1. .S SCSTAT=0
  1. .F S SCSTAT=$O(^SCPT(404.471,"AST",SCDTR,SCSTAT)) Q:SCSTAT="" D
  1. ..;loop thru patients
  1. ..S SCDFN=0
  1. ..F S SCDFN=$O(^SCPT(404.471,"AST",SCDTR,SCSTAT,SCDFN)) Q:SCDFN="" D
  1. ...;loop through (#404.471) ien's
  1. ...S SCTLIEN=0
  1. ...F S SCTLIEN=$O(^SCPT(404.471,"AST",SCDTR,SCSTAT,SCDFN,SCTLIEN)) Q:'SCTLIEN D
  1. ....;loop thru ien's of error code mult. and setup sort array
  1. ....S SCERIEN=0
  1. ....F S SCERIEN=$O(^SCPT(404.471,SCTLIEN,"ERR",SCERIEN)) Q:'SCERIEN D SORT(SCSORTBY,SCDTR,SCDFN,SCEPS,SCTLIEN,SCERIEN)
  1. ;
  1. Q
  1. ;
  1. ;
  1. SORT(SCSORTBY,SCDTR,SCDFN,SCEPS,SCTLIEN,SCERIEN) ;
  1. ; Description: Used to set up sort array based on 'Sort Criteria' and
  1. ; 'Error Processing Status' for PCMM Transmission Errors list display.
  1. ;
  1. ; Input:
  1. ; SCSORTBY - Sort by criteria
  1. ; SCDTR - PCMM transmission log date/time ack received
  1. ; SCDFN - Patient IEN
  1. ; SCEPS - Error processing status
  1. ; SCTLIEN - PCMM transmission log IEN
  1. ; SCERIEN - IEN of record in Error Code (#404.47142) multiple
  1. ;
  1. ; Output: None
  1. ;
  1. N SCTLOG
  1. ;
  1. ;If sort by criteria is 'Date/Time Ack Received'
  1. I SCSORTBY="D" D
  1. .;get data from PCMM HL7 Trans Log
  1. .I $$GETLOG^SCMCHLA(SCTLIEN,SCERIEN,.SCTLOG) D
  1. ..;if Error Proc Status matches selected Error Proc Status
  1. ..I (SCEPS=$G(SCTLOG("ERR","EPS"))!(SCEPS>2)) D
  1. ...;setup ^tmp array sorted by date/time ack rec'd
  1. ...S ^TMP("SCERRSRT",$J,SCSORTBY,SCDTR,SCTLIEN,SCERIEN)=""
  1. ;
  1. ;If sort by criteria is 'Provider'
  1. I SCSORTBY="P" D
  1. .N SCPTR,SCPROV,SCHL
  1. .;get data from PCMM HL7 Trans Log
  1. .I $$GETLOG^SCMCHLA(SCTLIEN,SCERIEN,.SCTLOG) D
  1. ..;if Error Proc Status matches selected Error Proc Status
  1. ..I (SCEPS=$G(SCTLOG("ERR","EPS"))!(SCEPS>2)) D
  1. ...;get data from PCMM HL7 ID file
  1. ...I $$GETHL7ID^SCMCHLA2($G(SCTLOG("ERR","ZPCID")),.SCHL) D
  1. ....;get provider from POSITION ASSIGNMENT HISTORY file
  1. ....S SCPTR=$P($G(SCHL("HL7ID")),"-",2) ; pointer to PCMM HL7 ID file
  1. ....I $G(SCTLOG("WORK")) S SCPROV=$$PROV^SCMCHLP(SCTLOG("WORK"))
  1. ....I '$G(SCTLOG("WORK")) S SCPROV=$P($G(^SCTM(404.52,+SCPTR,0)),"^",3)
  1. ....;setup ^tmp array sorted by provider
  1. ....S ^TMP("SCERRSRT",$J,SCSORTBY,$S($G(SCPROV)'="":$$EXTERNAL^DILFD(404.52,.03,,SCPROV),1:"ZZZUNKNOWN"),SCTLIEN,SCERIEN)=""
  1. ;
  1. ;If sort by criteria is 'Patient' (default)
  1. I SCSORTBY="N" D
  1. .;get data from PCMM HL7 Trans Log
  1. .I $$GETLOG^SCMCHLA(SCTLIEN,SCERIEN,.SCTLOG) D
  1. ..;if Error Proc Status matches selected Error Proc Status
  1. ..I (SCEPS=$G(SCTLOG("ERR","EPS"))!(SCEPS>2)) D
  1. ...;setup ^tmp array sorted by patient
  1. ...I SCDFN="W" I $G(SCTLOG("WORK"))="" S SCDFN=""
  1. ...S ^TMP("SCERRSRT",$J,SCSORTBY,$S($P($G(^DPT(+SCDFN,0)),U)'="":$P(^(0),U),SCDFN="W":"Workload Message",1:"UNKNOWN"),SCTLIEN,SCERIEN)=""
  1. ;
  1. ;If sort by criteria is 'Institution" SD*5.3*505
  1. I SCSORTBY="I" D
  1. .;get data from PCMM HL7 Trans Log
  1. .I $$GETLOG^SCMCHLA(SCTLIEN,SCERIEN,.SCTLOG) D
  1. ..I (SCEPS=$G(SCTLOG("ERR","EPS"))!(SCEPS>2)) D
  1. ...;setup ^tmp array sorted by institution
  1. ...S SCHLIEN=0
  1. ...F S SCHLIEN=$O(^SCPT(404.471,SCTLIEN,"ZPC",SCHLIEN)) Q:SCHLIEN="" D
  1. ....S SCHLIEN1=$G(^SCPT(404.471,SCTLIEN,"ZPC",SCHLIEN,0)) Q:SCHLIEN<1 D
  1. .....S SCHLIEN2=$P(SCHLIEN1,U,2),SCHLIEN3=+$G(^SCPT(404.49,SCHLIEN2,0))
  1. .....S SCHLIEN4=$G(^SCPT(404.43,SCHLIEN3,0)) Q:SCHLIEN4="" D
  1. ......S SCHLIEN5=$G(^SCPT(404.42,+SCHLIEN4,0)) Q:SCHLIEN5="" D
  1. .......S SCTPOS=$P(SCHLIEN4,U,2),SCTPSS=$G(^SCTM(404.57,+SCTPOS,0))
  1. .......S SCTP=$P(SCTPSS,U,2),SCY=$G(^SCTM(404.51,+SCTP,0)),SCINT=$P(SCY,U,7)
  1. .......S SCINNAM=$$GET1^DIQ(4,+SCINT_",",99)
  1. .......S ^TMP("SCERRSRT",$J,SCSORTBY,$S($G(SCINNAM)'="":SCINNAM,1:"UNK"),SCTLIEN,SCERIEN)=""
  1. .......K SCTP,SCTPOS,SCTPSS,SCTP,SCY,SCINNAM,SCINT
  1. Q