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

SDECCONSJSON.m

Go to the documentation of this file.
  1. SDECCONSJSON ;ALB/ANU,MGD,LAB/BLB - VISTA SCHEDULING RPCS ;MAR 31, 2022@14:39
  1. ;;5.3;Scheduling;**784,785,788,805,807,813,877,886**;Aug 13, 1993;Build 13
  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. JSONCONSLIST(SDCONJSON,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 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. ; Number of Email Contacts
  1. ; Number of Text Contacts
  1. ; Number of Secure messages contact
  1. ;
  1. N ACTIVE,PENDING,ERRPOP,ERRMSG,SDECI,SDTMP,SDCONSREC,ERR
  1. S SDECI=$G(SDECI,0),ERR=""
  1. D INIT
  1. D VALIDATE
  1. I ERRPOP D BLDJSON Q
  1. D JSONSELCONS ;select "open" consults
  1. Q
  1. ;
  1. INIT ; initialize values needed
  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. Q
  1. ;
  1. VALIDATE ; validate incoming parameters
  1. ;*Add validation of DFN
  1. I '(+DFN) D
  1. . ;create error message - DFN required
  1. . D ERRLOG^SDESJSON(.SDCONSREC,1)
  1. . S ERRPOP=1
  1. I $G(DFN)>0,'$D(^DPT(DFN,0)) D
  1. . ;create error - Invalid DFN
  1. . D ERRLOG^SDESJSON(.SDCONSREC,2)
  1. . S ERRPOP=1
  1. Q
  1. ;
  1. JSONSELCONS ;selection all open consults - those consults in PENDING and ACTIVE status
  1. N SDCONSID,CPRSSTAT,IFCSTAT,CPRSSTAT
  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 BLDCONSULTREC
  1. I '$D(SDCONSREC("Consult")) S SDCONSREC("Consult")=""
  1. D BLDJSON
  1. K SDCONSARR
  1. Q
  1. ;
  1. BLDCONSULTREC ;Build a consult record for every consult
  1. N SDCLIEN,SDCLNAME,SDCONLET,SDSTOP,STOP,SIEN,SDTOSVCI,SDCONSARR,SDARRERR,CANCHANGEPID,PID
  1. D GETS^DIQ(123,SDCONSID,".01;.05;1;2;3;5;10;13;14;17","IE","SDCONSARR","SDARRERR")
  1. S SDECI=SDECI+1
  1. S SDCONSREC("Consult",SDECI,"ConsultIEN")=SDCONSID
  1. S SDCONSREC("Consult",SDECI,"RequestType")=$G(SDCONSARR(123,SDCONSID_",",13,"E"))
  1. S SDCONSREC("Consult",SDECI,"FileEntryDate")=$G(SDCONSARR(123,SDCONSID_",",.01,"I"))
  1. S SDCONSREC("Consult",SDECI,"ToService")=$G(SDCONSARR(123,SDCONSID_",",1,"E"))
  1. ;Need explanation of why for clinic ien and name
  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 SDCONSREC("Consult",SDECI,"ClinicIEN")=SDCLIEN
  1. S SDCONSREC("Consult",SDECI,"ClinicName")=SDCLNAME
  1. S SDCONSREC("Consult",SDECI,"DateOfRequest")=$G(SDCONSARR(123,SDCONSID_",",3,"I"))
  1. S SDCONSREC("Consult",SDECI,"UrgencyOrEarliestDate")=$$PRIO^SDEC51A(SDCONSID)
  1. S SDCONSREC("Consult",SDECI,"ProviderIEN")=$G(SDCONSARR(123,SDCONSID_",",10,"I"))
  1. S SDCONSREC("Consult",SDECI,"ProviderName")=$G(SDCONSARR(123,SDCONSID_",",10,"E"))
  1. S SDCONSREC("Consult",SDECI,"ServiceRenderedAs")=$G(SDCONSARR(123,SDCONSID_",",14,"E"))
  1. S SDCONSREC("Consult",SDECI,"ProhibitedClinicFlag")=$S($$GET1^DIQ(44,+SDCLIEN_",",2500,"I")="Y":1,1:0)
  1. I $D(^SDEC(409.87,"B",SDCONSID)) D
  1. .S PID=$$GETPID(SDCONSID)
  1. .S SDCONSREC("Consult",SDECI,"ClinicIndicatedDate")=PID
  1. I '$D(^SDEC(409.87,"B",SDCONSID)) D
  1. .S SDCONSREC("Consult",SDECI,"ClinicIndicatedDate")=$G(SDCONSARR(123,SDCONSID_",",17,"I"))
  1. S SDCONLET=$$CALLCON^SDECAR1A(DFN,SDCONSID) ; # OF CALLS MADE^DATE LAST LETTER SENT
  1. K SDECALL,SDECLET ; Returned from call to $$CALLCON^SDECAR1A
  1. S SDCONSREC("Consult",SDECI,"NumberOfPhoneContact")=$P(SDCONLET,U,1)
  1. S SDCONSREC("Consult",SDECI,"DateOfLastLetter")=$P(SDCONLET,U,2)
  1. S SDCONSREC("Consult",SDECI,"NumberOfEmailContact")=$P(SDCONLET,U,3) ;813
  1. S SDCONSREC("Consult",SDECI,"NumberOfTextContact")=$P(SDCONLET,U,4) ;813
  1. S SDCONSREC("Consult",SDECI,"NumberOfSecureMessage")=$P(SDCONLET,U,5) ;813
  1. S SDCONSREC("Consult",SDECI,"CovidPriority")=$$PRIORITY^SDEC51(SDCONSID) ; Get Covid priority
  1. S SDCONSREC("Consult",SDECI,"CanEditPid")=$$CONSCANCELCHECK^SDES2GETCONSULTS(SDCONSID,$$GET1^DIQ(123,SDCONSID,.02,"I"))
  1. ;build stop code list
  1. S SDSTOP="",STOP=""
  1. S SDTOSVCI=$G(SDCONSARR(123,SDCONSID_",",1,"I"))
  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 SDCONSREC("Consult",SDECI,"AssociateStopCode")=SDSTOP
  1. Q
  1. ;
  1. GETPID(SDCONSID) ;
  1. N CHIEN,CHSIEN,OLDESTPID
  1. S CHIEN=$O(^SDEC(409.87,"B",SDCONSID,0))
  1. S CHSIEN=$O(^SDEC(409.87,CHIEN,1,9999999),-1)
  1. S OLDESTPID=$$GET1^DIQ(409.871,CHSIEN_","_CHIEN_",",1,"I")
  1. Q OLDESTPID
  1. ;
  1. BLDJSON ;
  1. D ENCODE^SDESJSON(.SDCONSREC,.SDCONJSON,.ERR)
  1. K SDCONSREC
  1. Q
  1. ;
  1. JSONCONSLIST1(SDCONJSON,SDCONSID) ;Return a single ACTIVE or PENDING CONSULT for a patient
  1. ;INPUT - SDCONSID (Consult ID) IEN to REQUEST/CONSULTATION (#123) File.
  1. ;RETURN PARMETER:
  1. ; List of 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. ; Number of Email Contacts
  1. ; Number of Text Contacts
  1. ; Number of Secure messages contact
  1. ;
  1. N ACTIVE,PENDING,ERRPOP,ERRMSG,SDECI,SDTMP,SDCONSREC,DFN,ERR
  1. S SDECI=$G(SDECI,0),ERR=""
  1. D INIT
  1. D VALIDATE1
  1. I ERRPOP D BLDJSON Q
  1. S DFN=$$GET1^DIQ(123,SDCONSID,.02,"I")
  1. D BLDCONSULTREC
  1. D BLDJSON
  1. K SDCONSARR
  1. Q
  1. ;
  1. VALIDATE1 ;
  1. ; *Add validation of IEN
  1. I '(+SDCONSID) D
  1. . ; create error message - Consultation ID is required
  1. . D ERRLOG^SDESJSON(.SDCONSREC,5)
  1. . S ERRPOP=1
  1. I $G(SDCONSID)>0,'$D(^GMR(123,SDCONSID,0)) D
  1. . ; create error - Invalid Consult ID
  1. . D ERRLOG^SDESJSON(.SDCONSREC,6)
  1. . S ERRPOP=1
  1. Q