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

SDEC51B.m

Go to the documentation of this file.
  1. SDEC51B ;ALB/LAB,ANU - VISTA SCHEDULING RPCS ;APR 12, 2021@14:39
  1. ;;5.3;Scheduling;**784,785**;Aug 13, 1993;Build 14
  1. ;
  1. ; Documented API's and Integration Agreements
  1. ; -------------------------------------------
  1. ; Reference to ^GMR(123 In ICR #4837
  1. ; Reference to ^GMR(123.5 In ICR #4557
  1. ; Reference to ^GMR(123 In ICR #6185
  1. ; Reference to ^ORD(100.01 In ICR #2638
  1. ; Reference to $$GETS^DIQ,$$GETS1^DIQ in ICR #2056
  1. Q
  1. ;
  1. CONSLIST(SDECY,DFN) ;Return a list of ACTIVE or PENDING CONSULTS for patient
  1. ;INPUT - DFN (Date File Number) Pointer to PATIENT (#2) File.
  1. ;RETURN PARMETER:
  1. ; List of consults in ACTIVE or PENDING CPRS STATUS. Data is delimited by
  1. ; carat (^).
  1. ; Field List:
  1. ; (1) Internal IEN
  1. ; (2) Request Type
  1. ; (3) File Entry Date
  1. ; (4) To Service/Specialty
  1. ; (5) Clinic IEN
  1. ; (6) Clinic Name
  1. ; (7) Date of Request
  1. ; (8) URGENCY name or Earliest date
  1. ; (9) Provider IEN
  1. ; (10) Provider Name
  1. ; (11) Service Rendered as in or outpatient
  1. ; (12) Associated Stop Code
  1. ; (13) Prohibited Clinic Flag
  1. ; (14) Clinic indicated Date
  1. ; (15) # of Phone contacts
  1. ; (16) Date of Last Letter
  1. ; (17) Covid Priority
  1. ;
  1. N ACTIVE,PENDING,ERRPOP,ERRMSG,SDECI,SDTMP
  1. S SDECI=$G(SDECI,0)
  1. D INIT
  1. D VALIDATE
  1. I ERRPOP D ERR1^SDECERR(-1,ERRMSG,.SDECI,SDECY) Q
  1. D SELCONS ;select "open" consults
  1. D EXIT
  1. Q
  1. ;
  1. INIT ;
  1. K ^TMP("SDEC51B",$J)
  1. S SDECY="^TMP(""SDEC51B"","_$J_")"
  1. S ACTIVE=$O(^ORD(100.01,"B","ACTIVE",0))
  1. S PENDING=$O(^ORD(100.01,"B","PENDING",0))
  1. S ERRPOP=0,SDECI=0,ERRMSG=""
  1. ; data header
  1. D HDR
  1. Q
  1. ;
  1. VALIDATE ;
  1. ;*Add validation of DFN
  1. I '(+DFN) D Q
  1. .;create error message - DFN required
  1. .S ERRMSG="DFN required. "
  1. .S ERRPOP=1
  1. I '$D(^DPT(DFN,0)) D
  1. .;create error - Invalid DFN
  1. .S ERRMSG="Invalid DFN"
  1. .S ERRPOP=1
  1. Q
  1. ;
  1. HDR ;Get the header information
  1. ;
  1. ; Consult IEN^Request Type^ORIGDT^TO Service^CLINIEN^CLINNAME^Date of Request
  1. ; Prio^Provider IEN^Provider Name^Service Rendered As
  1. ; Req_Proc_Act^Stop^PRHBLOC^Earliest
  1. ; CPHONE^CLET^Covid_Priority
  1. ; 1 2 3 4
  1. S SDTMP="T00020CONSULTIEN^T00020REQTYPE^T00020ORIGDT^T00030TO_SERVICE"
  1. ; 5 6 7 8
  1. S SDTMP=SDTMP_"^T00010CLINIEN^T00030CLINNAME^T00030DATE_OF_REQUEST^T00030PRIO"
  1. ; 9 10 11
  1. S SDTMP=SDTMP_"^T00030PROVIEN^T00030PROVNAME^T00030SERVICE_RENDERED_AS"
  1. ; 12 13 14 15 16 17
  1. S SDTMP=SDTMP_"^T00100STOP^T00030PRHBLOC^T00030EARLIEST^T00030CPHONE^T00030CLET^T00030COVID_PRIORITY"
  1. S @SDECY@(SDECI)=SDTMP_$C(30)
  1. Q
  1. SELCONS ;selection all open consults - those consults in PENDING and ACTIVE status
  1. N SDCONSID,CPRSSTAT,SDURGEN,SDREQTYPE,STOP,SIEN,SDTOSVC,PRHBLOC,COVPRIORITY,IFCSTAT
  1. N SDORIGDT,SDTOSVC,SDTOSVCI,SDCLIEN,SDCLNAME,SDDOREQ,SDPRIO,SDPRIEN,SDPRNAME,SDSRA,SDCOMM,SDSTOP
  1. N SDCONLET,SDCONTACT,SDEARLI,SDLET
  1. S SDCONSID=""
  1. F S SDCONSID=$O(^GMR(123,"F",DFN,SDCONSID)) Q:SDCONSID="" D
  1. .S CPRSSTAT=$$GET1^DIQ(123,SDCONSID,8,"I")
  1. .S IFCSTAT=$$GET1^DIQ(123,SDCONSID,.125,"I")
  1. .I (IFCSTAT'="P")&((CPRSSTAT=ACTIVE)!(CPRSSTAT=PENDING)) D
  1. ..D ASSIGNINFO
  1. ..D BLDREC
  1. ;
  1. Q
  1. ;
  1. ASSIGNINFO ;
  1. N SDCONSARR,SDARRERR,SDECALL,SDECLET
  1. D GETS^DIQ(123,SDCONSID,".01;.05;1;2;3;5;10;13;14;17","IE","SDCONSARR","SDARRERR")
  1. S SDORIGDT=$G(SDCONSARR(123,SDCONSID_",",.01,"I"))
  1. S SDTOSVC=$G(SDCONSARR(123,SDCONSID_",",1,"E"))
  1. S SDTOSVCI=$G(SDCONSARR(123,SDCONSID_",",1,"I"))
  1. S SDCLIEN=$G(SDCONSARR(123,SDCONSID_",",2,"I")) S:SDCLIEN="" SDCLIEN=$G(SDCONSARR(123,SDCONSID_",",.05,"I"))
  1. S SDCLNAME=$G(SDCONSARR(123,SDCONSID_",",2,"E")) S:SDCLNAME="" SDCLNAME=$G(SDCONSARR(123,SDCONSID_",",.05))
  1. S SDDOREQ=$G(SDCONSARR(123,SDCONSID_",",3,"I"))
  1. S SDREQTYPE=$G(SDCONSARR(123,SDCONSID_",",13,"E"))
  1. S SDPRIO=$$PRIO^SDEC51A(SDCONSID)
  1. S SDPRIEN=$G(SDCONSARR(123,SDCONSID_",",10,"I"))
  1. S SDPRNAME=$G(SDCONSARR(123,SDCONSID_",",10,"E"))
  1. S SDSRA=$G(SDCONSARR(123,SDCONSID_",",14,"E"))
  1. S SDEARLI=$G(SDCONSARR(123,SDCONSID_",",17,"I"))
  1. S SDSTOP="",STOP=""
  1. I +SDTOSVCI D
  1. .S SIEN=0 F S SIEN=$O(^GMR(123.5,SDTOSVCI,688,SIEN)) Q:'+SIEN D
  1. ..S STOP=$$GET1^DIQ(123.5688,SIEN_","_SDTOSVCI_",",.01,"I") ;ICR 4557
  1. ..I SDSTOP="" S SDSTOP=STOP
  1. ..E S SDSTOP=SDSTOP_"|"_STOP
  1. S PRHBLOC=$S($$GET1^DIQ(44,+SDCLIEN_",",2500,"I")="Y":1,1:0)
  1. S SDCONLET=$$CALLCON^SDECAR1A(DFN,SDCONSID) ; SDECALL_U_SDECLET # OF CALLS MADE^DATE LAST LETTER SENT
  1. S SDCONTACT=$P(SDCONLET,U,1)
  1. S SDLET=$P(SDCONLET,U,2)
  1. S COVPRIORITY=$$PRIORITY^SDEC51(SDCONSID) ; Get covid priority
  1. Q
  1. ;
  1. BLDREC ;build consult record
  1. ;
  1. ; Consult IEN^Request Type^ORIGDT^TO Service^CLINIEN^CLINNAME^Date of Request
  1. S SDTMP=SDCONSID_U_SDREQTYPE_U_SDORIGDT_U_SDTOSVC_U_SDCLIEN_U_SDCLNAME_U_SDDOREQ
  1. ; Prio^Provider IEN^Provider Name^Service Rendered As
  1. S SDTMP=SDTMP_U_SDPRIO_U_SDPRIEN_U_SDPRNAME_U_SDSRA
  1. ; Req_Proc_Act^Stop^PRHBLOC^Earliest
  1. S SDTMP=SDTMP_U_SDSTOP_U_PRHBLOC_U_SDEARLI
  1. ; CPHONE^CLET^Covid_Priority
  1. S SDTMP=SDTMP_U_SDCONTACT_U_SDLET_U_COVPRIORITY
  1. S SDECI=SDECI+1 S ^TMP("SDEC51B",$J,SDECI)=SDTMP_$C(30)
  1. Q
  1. ;
  1. EXIT ;
  1. I SDECI=0 D
  1. . S SDECI=SDECI+1
  1. . S ^TMP("SDEC51B",$J,SDECI)=0_$C(30)
  1. S ^TMP("SDEC51B",$J,SDECI)=^TMP("SDEC51B",$J,SDECI)_$C(31)
  1. Q
  1. ;
  1. CONSULT1(SDECY,SDCONSID) ; RPC: SDEC GET PAT CONSULT BY IEN - Return a CONSULT
  1. ;INPUT - SDCONSID (Consult ID) IEN to REQUEST/CONSULTATION (#123) File.
  1. ;RETURN PARAMETER:
  1. ; Consults in ACTIVE or PENDING CPRS STATUS. Data is delimited by carat (^).
  1. ; Field List:
  1. ; (1) Internal IEN
  1. ; (2) Request Type
  1. ; (3) File Entry Date
  1. ; (4) To Service/Specialty
  1. ; (5) Clinic IEN
  1. ; (6) Clinic Name
  1. ; (7) Date of Request
  1. ; (8) URGENCY name or Earliest date
  1. ; (9) Provider IEN
  1. ; (10) Provider Name
  1. ; (11) Service Rendered as in or outpatient
  1. ; (12) Associated Stop Code
  1. ; (13) Prohibited Clinic Flag
  1. ; (14) Clinic indicated Date
  1. ; (15) # of Phone contacts
  1. ; (16) Date of Last Letter
  1. ; (17) Covid Priority
  1. ;
  1. N DFN,ACTIVE,PENDING,ERRPOP,ERRMSG,SDECI,SDTMP,COVPRIORITY,PRHBLOC,SDCLIEN
  1. N SDCLNAME,SDCONLET,SDCONSARR,SDCONTACT,SDDOREQ,SDEARLI,SDECALL,SDECI
  1. N SDECLET,SDLET,SDORIGDT,SDPRIEN,SDPRIO,SDPRNAME,SDREQTYPE,SDSRA,SDSTOP,SDTMP
  1. N SDTOSVCI,SIEN,STOP,SDTOSVC
  1. D INIT
  1. D VALIDATE1
  1. I ERRPOP D ERR1^SDECERR(-1,ERRMSG,.SDECI,SDECY) Q
  1. S DFN=$$GET1^DIQ(123,SDCONSID,.02,"I")
  1. D ASSIGNINFO
  1. D BLDREC
  1. D EXIT
  1. Q
  1. ;
  1. VALIDATE1 ;
  1. ;*Add validation of DFN
  1. I '(+SDCONSID) D Q
  1. .;create error message - Consultation ID is required
  1. .S ERRMSG="Consultation ID is required."
  1. .S ERRPOP=1
  1. I '$D(^GMR(123,SDCONSID,0)) D
  1. .;create error - Invalid Consult ID
  1. .S ERRMSG="Invalid Consult ID."
  1. .S ERRPOP=1
  1. Q