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

SCMCHLR4.m

Go to the documentation of this file.
  1. SCMCHLR4 ;ALB/KCL - PCMM HL7 Reject Processing - Protocols; 10-JAN-2000
  1. ;;5.3;Scheduling;**210,272,505**;AUG 13, 1993;Build 20
  1. ;
  1. ;This routine contains the PCMM Transmission Error processing protocols.
  1. ;See EN^SCMCHLR2 for additional documentation on 'system wide' variables
  1. ;used in this routine.
  1. ;
  1. CS ; Description: Entry point for SCMC LE CHANGE STATUS protocol.
  1. ;
  1. ; Input:
  1. ; SCEPS - Error Processing Status
  1. ; 1 -> New
  1. ; 2 -> Checked
  1. ; 3 -> Both
  1. ;
  1. ; Output:
  1. ; SCEPS - Error Processing Status
  1. ; 1 -> New
  1. ; 2 -> Checked
  1. ; 3 -> Both
  1. ; VALMBCK - 'R'=Refresh screen
  1. ;
  1. N DIR,DTOUT,DUOUT,Y
  1. ;
  1. ;Set screen to full scrolling region
  1. D FULL^VALM1
  1. N DIRUT,SCBEG,SCEND,SCEPS,SCSORTBY
  1. ;
  1. ;Ask user to select error processing status
  1. S DIR(0)="SMO^1:New;2:Checked;3:Both"
  1. S DIR("A")="Select Error Processing Status"
  1. D ^DIR
  1. ;
  1. ;Process user response
  1. I Y D
  1. .S SCEPS=Y
  1. .;rebuild error list for selected error processing status
  1. .D BUILD^SCMCHLR1
  1. ;
  1. ;Place custom msg in msg window
  1. ;S VALMSG=$$MRKMSG^SCMCHLR1
  1. ;
  1. ;Refresh screen when returning from action
  1. S VALMBCK="R"
  1. Q
  1. ;
  1. ;
  1. CD ; Description: Entry point for SCMC LE CHANGE DATE RANGE protocol.
  1. ;
  1. ; Input:
  1. ; SCBEG - Begin date for date range
  1. ; SCEND - End date for date range
  1. ;
  1. ; Output:
  1. ; SCBEG - Begin date for date range
  1. ; SCEND - End date for date range
  1. ; VALMBCK - 'R'=Refresh screen
  1. ;
  1. N VALMB,VALMBEG,VALMEND,X,X1,X2
  1. ;
  1. ;Ask user for date range (default 2 wks prior to today)
  1. S X1=DT,X2=-14
  1. D C^%DTC
  1. S VALMB=X
  1. D RANGE^VALM1
  1. ;
  1. ;Process user response
  1. I 'VALMBEG!('VALMEND)!((SCBEG=VALMBEG)&(SCEND=VALMEND)) D
  1. .W !!,"Date Range was not changed."
  1. .D PAUSE^VALM1
  1. .S VALMBCK=""
  1. E D
  1. .S SCBEG=VALMBEG,SCEND=VALMEND
  1. .;rebuild error list for selected date range
  1. .D BUILD^SCMCHLR1
  1. .;Refresh screen when returning from action
  1. .S VALMBCK="R"
  1. ;
  1. ;Place custom msg in msg window
  1. ;S VALMSG=$$MRKMSG^SCMCHLR1
  1. ;
  1. Q
  1. ;
  1. ;
  1. SL ; Description: Entry point for SCMC LE SORT LIST protocol.
  1. ;
  1. ; Input:
  1. ; SCSORTBY - Sort by criteria
  1. ;
  1. ; Output:
  1. ; SCSORTBY - Sort by criteria
  1. ; VALMBCK - 'R'=Refresh screen
  1. ;
  1. N DIR,DTOUT,DUOUT,Y
  1. ;
  1. ;Sets screen to full scrolling region
  1. D FULL^VALM1
  1. ;
  1. ;Ask user to select sort by criteria
  1. S DIR(0)="SMO^N:Patient Name;D:Date Error Received;P:Provider;I:Institution"
  1. S DIR("A")="Select Sort By"
  1. D ^DIR
  1. ;
  1. ;Process user response
  1. I "^N^D^P^I^"[("^"_Y_"^"),SCSORTBY'=Y D
  1. .S SCSORTBY=Y
  1. .;rebuild error list for selected sort criteria
  1. .D BUILD^SCMCHLR1
  1. ;
  1. ;Place custom msg in msg window
  1. ;S VALMSG=$$MRKMSG^SCMCHLR1
  1. ;
  1. ;Refresh screen when returning from action
  1. S VALMBCK="R"
  1. Q
  1. ;
  1. ;
  1. CE ; Description: Entry point for SCMC LE CHECK ERROR OFF LIST protocol.
  1. ;
  1. ; Input: None
  1. ;
  1. ; Output:
  1. ; VALMSG - Custom message
  1. ; VALMBCK - 'R'=Refresh screen
  1. ;
  1. N NODE,SCLINE,SCNUM,SCTLIEN,SCERIEN,VALMY
  1. ;
  1. ;Ask user to select transmission errors to check off the list
  1. D EN^VALM2(XQORNOD(0))
  1. D FULL^VALM1
  1. ;
  1. ;Process user selection
  1. S SCNUM=0
  1. F S SCNUM=$O(VALMY(SCNUM)) Q:'SCNUM D
  1. .;invoke call to check error off list
  1. .I $D(^TMP(SCARY_"IDX",$J,SCNUM)) D
  1. ..S NODE=$G(^TMP(SCARY_"IDX",$J,SCNUM))
  1. ..S SCLINE=+NODE,SCTLIEN=+$P(NODE,"^",2),SCERIEN=+$P(NODE,"^",3)
  1. ..D CHKERR(SCARY,SCLINE,SCTLIEN,SCERIEN)
  1. ;
  1. ;Place custom msg in msg window
  1. ;S VALMSG=$$MRKMSG^SCMCHLR1
  1. ;
  1. ;Refresh screen when returning from action
  1. S VALMBCK="R"
  1. Q
  1. ;
  1. ;
  1. RP ; Description: Entry point for SCMC LE RETRANSMIT PATIENT protocol.
  1. ;
  1. ; Input: None
  1. ;
  1. ; Output:
  1. ; VALMBCK - 'R'=Refresh screen
  1. ;
  1. N NODE,SCLINE,SCNUM,SCTLIEN,SCTLOG,VALMY
  1. ;
  1. ;Ask user to select transmission errors to retransmit patient
  1. D EN^VALM2(XQORNOD(0))
  1. D FULL^VALM1
  1. ;
  1. ;Process user selections
  1. S SCNUM=0
  1. F S SCNUM=$O(VALMY(SCNUM)) Q:'SCNUM D
  1. .;
  1. .I $D(^TMP(SCARY_"IDX",$J,SCNUM)) D
  1. ..S NODE=$G(^TMP(SCARY_"IDX",$J,SCNUM))
  1. ..S SCLINE=+NODE,SCTLIEN=+$P(NODE,"^",2),SCERIEN=+$P(NODE,"^",3)
  1. ..;get information for PCMM HL7 Transmission Log entry and invoke code
  1. ..;to set patient to 'retransmit'.
  1. ..I $$GETLOG^SCMCHLA(SCTLIEN,SCERIEN,.SCTLOG) D SETPAT(SCARY,SCLINE,.SCTLOG)
  1. ;
  1. ;Place custom msg in msg window
  1. ;S VALMSG=$$MRKMSG^SCMCHLR1
  1. ;
  1. ;Refresh screen when returning from action
  1. S VALMBCK="R"
  1. Q
  1. ;
  1. ;
  1. PE ; Description: Entry point for SCMC LE PRINT ERROR CODES protocol.
  1. ;
  1. ; Input: None
  1. ;
  1. ; Output:
  1. ; VALMBCK - 'R'=Refresh screen
  1. ;
  1. ;Sets screen to full scrolling region
  1. D FULL^VALM1
  1. ;
  1. ;Print PCMM Transmission Error Code Report
  1. D ECRPRT^SCMCHLR7
  1. D PAUSE^VALM1
  1. ;
  1. ;Place custom msg in msg window
  1. ;S VALMSG=$$MRKMSG^SCMCHLR1
  1. ;
  1. ;Refresh screen when returning from action
  1. S VALMBCK="R"
  1. Q
  1. ;
  1. ;
  1. RA ; Description: Entry point for SCMC LE RETRANSMIT ALL protocol.
  1. ;
  1. ; Input: None
  1. ;
  1. ; Output:
  1. ; VALMBCK - 'R'=Refresh screen
  1. ;
  1. N DIR,DTOUT,DUOUT,Y
  1. ;
  1. ;Sets screen to full scrolling region
  1. D FULL^VALM1
  1. ;
  1. ;Ask user if they want to retransmit all patients
  1. S DIR(0)="Y"
  1. S DIR("A")="Mark all patients for re-transmission"
  1. S DIR("A",1)="This action will allow all patients to be marked for re-transmission."
  1. S DIR("A",2)="The error processing status for all patients will be marked as checked."
  1. S DIR("B")="NO"
  1. D ^DIR
  1. ;
  1. ;Process user response
  1. I '$D(DIRUT) D
  1. .I +Y D
  1. ..;set all patients as re-transmit
  1. ..D UPDALL
  1. ;
  1. ;Place custom msg in msg window
  1. ;S VALMSG=$$MRKMSG^SCMCHLR1
  1. ;
  1. ;Refresh screen when returning from action
  1. S VALMBCK="R"
  1. Q
  1. ;
  1. ;
  1. CHKERR(SCARY,SCLINE,SCTLIEN,SCERIEN) ;
  1. ; Description: Used to check an error off the list.
  1. ;
  1. ; Input:
  1. ; SCARY - Global array subscript
  1. ; SCLINE - Line number
  1. ; SCTLIEN - PCMM HL7 Transmission Log IEN
  1. ; SCERIEN - IEN of record in Error Code (#404.47142) multiple
  1. ;
  1. ; Output: None
  1. ;
  1. N SCERMSG
  1. ;
  1. I $$UPDEPS^SCMCHLA(SCTLIEN,SCERIEN,2,.SCERMSG) D
  1. .D FLDTEXT^VALM10(SCLINE,"STATUS","Checked")
  1. .D FLDCTRL^VALM10(SCLINE,"STATUS",IOINHI,IOINORM)
  1. E D
  1. .W !,^TMP(SCARY,$J,SCLINE,0)
  1. .W:$G(SCERMSG)'="" !,"...",$$LOWER^VALM1(SCERMSG)
  1. .W !,"...Unable to check error off list"
  1. .D PAUSE^VALM1
  1. Q
  1. ;
  1. ;
  1. SETPAT(SCARY,SCLINE,SCTLOG) ; Description: Used to set patient to marked for re-transmit.
  1. ;
  1. ; Input:
  1. ; SCARY - Global array subscript
  1. ; SCLINE - Line number
  1. ; SCTLOG - Transmission log entry array
  1. ;
  1. ; Output: None
  1. ;
  1. N SCERROR
  1. ;
  1. ;Set patient to marked for re-transmit
  1. I $$UPDSTAT^SCMCHLA(SCTLIEN,"M",.SCERROR) D
  1. .D UPDPAT(SCARY,$S($G(SCTLOG("DFN")):SCTLOG("DFN"),1:"W"),$S('$G(SCTLOG("DFN")):SCLINE,1:""))
  1. E D
  1. .W !,^TMP(SCARY,$J,SCLINE,0)
  1. .W:$G(SCERMSG)'="" !,"...",$$LOWER^VALM1(SCERROR)
  1. .W !,"...Unable to mark patient for re-transmit"
  1. .D PAUSE^VALM1
  1. Q
  1. ;
  1. ;
  1. UPDPAT(SCARY,SCDFN,LINE) ; Description: Update all PCMM HL7 Transmission Log
  1. ; entries in the list for the patient as 'marked for re-transmit'.
  1. ;
  1. ; Input:
  1. ; SCARY - Global array subscript
  1. ; SCDFN - Patient IEN
  1. ;
  1. ; Output: None
  1. ;
  1. N SCLINE,SCTLIEN
  1. S:'$G(LINE) LINE=9999999
  1. ;
  1. ;Loop thru entries in the list for the patient
  1. S SCLINE=0
  1. I SCDFN="W",LINE'=9999999 S SCLINE=LINE-.01
  1. F S SCLINE=$O(^TMP(SCARY_"IDX",$J,"PT",SCDFN,SCLINE)) Q:(('SCLINE)!(SCLINE>LINE)) S SCTLIEN=+^(SCLINE) D
  1. .;update entry as marked for re-transmit
  1. .D FLDTEXT^VALM10(SCLINE,"RETRANS","*")
  1. .D FLDCTRL^VALM10(SCLINE,"RETRANS",IOINHI,IOINORM)
  1. .;invoke code to check error off the list
  1. .D CHKERR(SCARY,SCLINE,SCTLIEN,SCERIEN)
  1. Q
  1. ;
  1. ;
  1. UPDALL ; Description: Update all PCMM HL7 Transmission Log
  1. ; entries in the list as 'marked for re-transmit'.
  1. ;
  1. ; Input: None
  1. ; Output: None
  1. ;
  1. N SCLINE,SCTLIEN,SCDFN
  1. ;
  1. ;Loop thru entries in the list for all patients
  1. S SCDFN=""
  1. F S SCDFN=$O(^TMP(SCARY_"IDX",$J,"PT",SCDFN)) Q:'SCDFN D
  1. .;Loop thru entries in the list for the patient
  1. .S SCLINE=0
  1. .F S SCLINE=$O(^TMP(SCARY_"IDX",$J,"PT",SCDFN,SCLINE)) Q:'SCLINE D
  1. ..S NODE=^TMP(SCARY_"IDX",$J,"PT",SCDFN,SCLINE)
  1. ..S SCTLIEN=+NODE,SCERIEN=+$P(NODE,"^",2)
  1. ..;
  1. ..;get information for PCMM HL7 Transmission Log entry and invoke code
  1. ..;to set patient to 'retransmit'.
  1. ..I $$GETLOG^SCMCHLA(SCTLIEN,SCERIEN,.SCTLOG) D SETPAT(SCARY,SCLINE,.SCTLOG)
  1. ..;
  1. ..;update entry as marked for re-transmit
  1. ..D FLDTEXT^VALM10(SCLINE,"RETRANS","*")
  1. ..D FLDCTRL^VALM10(SCLINE,"RETRANS",IOINHI,IOINORM)
  1. ..;invoke code to check error off the list
  1. ..D CHKERR(SCARY,SCLINE,SCTLIEN,SCERIEN)
  1. ;
  1. Q