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

SDESGETCLINAPPT.m

Go to the documentation of this file.
  1. SDESGETCLINAPPT ;ALB/LAB - VISTA SCHEDULING READ CLINIC APPOINTMENT ;FEB 21,2023@15:01
  1. ;;5.3;Scheduling;**805,838**;Aug 13, 1993;Build 7
  1. ;;Per VHA Directive 6402, this routine should not be modified
  1. Q
  1. ;
  1. GETAPPOINTMENTS(SDECY,SDCLIN,SDSTDTTM,SDENDDTTM) ;get all appointments for a given clinic for a given datetime range
  1. ; ALERT! This tag should NOT be called directly from outside source. This RPC will be called via an EAS wrapper/layer.
  1. ; INPUT:
  1. ; SDCLIN - Pointer to HOSPITAL LOCATION (#44) FILE
  1. ; SDDTTM - start appointment date time in ISO8601 Time format
  1. ; SDENDDTTM - end appoitnment date time in ISO8601 Time fomat
  1. N APPTREC,SDAPPT,SDSTDT,SDAPPT,SDAPPTNO,SDMSG,SDIEN,NUM,ERR,FOUND,SDENDDT
  1. K SDECY
  1. S NUM=0,FOUND=0
  1. D VALIDATE ;basic validation just to make sure required fields have been sent
  1. D:+NUM ERRLOG^SDESJSON(.SDECY,NUM)
  1. I '+NUM D
  1. . D CONVERTINPDTS
  1. . Q:+NUM
  1. . F S SDSTDT=$O(^SC(SDCLIN,"S",SDSTDT)) Q:(SDSTDT="")!(SDSTDT>SDENDDT) D
  1. . . S SDAPPTNO=0
  1. . . F S SDAPPTNO=$O(^SC(SDCLIN,"S",SDSTDT,1,SDAPPTNO)) Q:SDAPPTNO="" D
  1. . . . K SDAPPT,SDMSG
  1. . . . S SDIEN=SDAPPTNO_","_SDSTDT_","_SDCLIN_","
  1. . . . D GETS^DIQ(44.003,SDIEN,"**","IE","SDAPPT","SDMSG")
  1. . . . D BLDREC
  1. I +NUM D
  1. . S FOUND=1
  1. . D ERRLOG^SDESJSON(.APPTREC,NUM)
  1. S:'FOUND APPTREC("ClinicApptDate")=""
  1. D BUILDER
  1. Q
  1. ;
  1. VALIDATE ;Validate required fields are sent
  1. I ('+$G(SDCLIN)) S NUM=18 Q
  1. I ('+$G(SDSTDTTM)) S NUM=25 Q
  1. I ('+$G(SDENDDTTM)) S NUM=26 Q
  1. Q
  1. ;
  1. CONVERTINPDTS ;Convert INPUT dates from ISO8601 to Fileman
  1. S SDSTDT=$$ISOTFM^SDAMUTDT(SDSTDTTM,SDCLIN) ;Need to change this to conversion
  1. S:SDSTDT=-1 NUM=27
  1. Q:NUM
  1. I $L(SDSTDT,".")=1 S SDSTDT=SDSTDT_.0001
  1. S SDSTDT=$O(^SC(SDCLIN,"S",SDSTDT),-1)
  1. S SDENDDT=$$ISOTFM^SDAMUTDT(SDENDDTTM,SDCLIN) ;need to convert this from ISO8601 based on clinic time zone
  1. S:SDENDDT=-1 NUM=28
  1. Q:NUM
  1. I $L(SDENDDT,".")=1 S SDENDDT=SDENDDT_.24
  1. Q
  1. ;
  1. BUILDER ;
  1. D ENCODE^XLFJSON("APPTREC","SDECY","ERR")
  1. Q
  1. ;
  1. BLDREC ; build an appointment record
  1. N DFN
  1. S FOUND=1
  1. S DFN=SDAPPT(44.003,SDIEN,.01,"I")
  1. S APPTREC("ClinicApptDate",SDSTDT,"ClinicApptNumber",SDAPPTNO,"AppointmentTime")=$$FMTISO^SDAMUTDT(SDSTDT,SDCLIN)
  1. S APPTREC("ClinicApptDate",SDSTDT,"ClinicApptNumber",SDAPPTNO,"Patient",DFN,"DFN")=DFN
  1. S APPTREC("ClinicApptDate",SDSTDT,"ClinicApptNumber",SDAPPTNO,"Patient",DFN,"NAME")=SDAPPT(44.003,SDIEN,.01,"E")
  1. S APPTREC("ClinicApptDate",SDSTDT,"ClinicApptNumber",SDAPPTNO,"Patient",DFN,"SSN")=SDAPPT(44.003,SDIEN,.09,"I")
  1. S APPTREC("ClinicApptDate",SDSTDT,"ClinicApptNumber",SDAPPTNO,"Patient",DFN,"Last4")=SDAPPT(44.003,SDIEN,.099,"I")
  1. S APPTREC("ClinicApptDate",SDSTDT,"ClinicApptNumber",SDAPPTNO,"Patient",DFN,"Street")=SDAPPT(44.003,SDIEN,.11,"I")
  1. S APPTREC("ClinicApptDate",SDSTDT,"ClinicApptNumber",SDAPPTNO,"AppointmentLength")=SDAPPT(44.003,SDIEN,1,"I")
  1. S APPTREC("ClinicApptDate",SDSTDT,"ClinicApptNumber",SDAPPTNO,"Patient",DFN,"EnrollmentCode")=SDAPPT(44.003,SDIEN,1.6,"I")
  1. S APPTREC("ClinicApptDate",SDSTDT,"ClinicApptNumber",SDAPPTNO,"Patient",DFN,"EnrollmentDate")=$$FMTISO^SDAMUTDT(SDAPPT(44.003,SDIEN,1.7,"I"))
  1. S APPTREC("ClinicApptDate",SDSTDT,"ClinicApptNumber",SDAPPTNO,"XRAY")=SDAPPT(44.003,SDIEN,2,"I")
  1. S APPTREC("ClinicApptDate",SDSTDT,"ClinicApptNumber",SDAPPTNO,"OtherTests")=SDAPPT(44.003,SDIEN,3,"I")
  1. S APPTREC("ClinicApptDate",SDSTDT,"ClinicApptNumber",SDAPPTNO,"WardLocation")=SDAPPT(44.003,SDIEN,4,"I")
  1. S APPTREC("ClinicApptDate",SDSTDT,"ClinicApptNumber",SDAPPTNO,"Status")=SDAPPT(44.003,SDIEN,5,"I")
  1. S APPTREC("ClinicApptDate",SDSTDT,"ClinicApptNumber",SDAPPTNO,"OtherTravel")=SDAPPT(44.003,SDIEN,6,"I")
  1. S APPTREC("ClinicApptDate",SDSTDT,"ClinicApptNumber",SDAPPTNO,"DataEntryClerk")=SDAPPT(44.003,SDIEN,7,"E")
  1. S APPTREC("ClinicApptDate",SDSTDT,"ClinicApptNumber",SDAPPTNO,"DateAppointmentMade")=$$FMTISO^SDAMUTDT(SDAPPT(44.003,SDIEN,8,"I"))
  1. S APPTREC("ClinicApptDate",SDSTDT,"ClinicApptNumber",SDAPPTNO,"OverbookFlag")=SDAPPT(44.003,SDIEN,9,"I")
  1. S APPTREC("ClinicApptDate",SDSTDT,"ClinicApptNumber",SDAPPTNO,"PriorXRayResults")=SDAPPT(44.003,SDIEN,10,"I")
  1. S APPTREC("ClinicApptDate",SDSTDT,"ClinicApptNumber",SDAPPTNO,"Patient",DFN,"CurrentEligibilityCode")=SDAPPT(44.003,SDIEN,10.5,"E")
  1. S APPTREC("ClinicApptDate",SDSTDT,"ClinicApptNumber",SDAPPTNO,"COLLATERAL")=SDAPPT(44.003,SDIEN,11,"I")
  1. S APPTREC("ClinicApptDate",SDSTDT,"ClinicApptNumber",SDAPPTNO,"LABTIME")=$$FMTISO^SDAMUTDT(SDAPPT(44.003,SDIEN,12,"I"))
  1. S APPTREC("ClinicApptDate",SDSTDT,"ClinicApptNumber",SDAPPTNO,"XRAYTIME")=$$FMTISO^SDAMUTDT(SDAPPT(44.003,SDIEN,13,"I"))
  1. S APPTREC("ClinicApptDate",SDSTDT,"ClinicApptNumber",SDAPPTNO,"EKGTIME")=$$FMTISO^SDAMUTDT(SDAPPT(44.003,SDIEN,14,"I"))
  1. S APPTREC("ClinicApptDate",SDSTDT,"ClinicApptNumber",SDAPPTNO,"Patient",DFN,"EligibilityOfVisit")=SDAPPT(44.003,SDIEN,30,"E")
  1. S APPTREC("ClinicApptDate",SDSTDT,"ClinicApptNumber",SDAPPTNO,"ParentRecordRequest")=SDAPPT(44.003,SDIEN,200,"E")
  1. S APPTREC("ClinicApptDate",SDSTDT,"ClinicApptNumber",SDAPPTNO,"CheckInUser")=SDAPPT(44.003,SDIEN,302,"E")
  1. S APPTREC("ClinicApptDate",SDSTDT,"ClinicApptNumber",SDAPPTNO,"CheckedOutDate")=$$FMTISO^SDAMUTDT(SDAPPT(44.003,SDIEN,303,"I"),SDCLIN)
  1. S APPTREC("ClinicApptDate",SDSTDT,"ClinicApptNumber",SDAPPTNO,"CheckOutUser")=SDAPPT(44.003,SDIEN,304,"E")
  1. S APPTREC("ClinicApptDate",SDSTDT,"ClinicApptNumber",SDAPPTNO,"CheckInEntered")=$$FMTISO^SDAMUTDT(SDAPPT(44.003,SDIEN,305,"I"))
  1. S APPTREC("ClinicApptDate",SDSTDT,"ClinicApptNumber",SDAPPTNO,"CheckOutEntered")=$$FMTISO^SDAMUTDT(SDAPPT(44.003,SDIEN,306,"I"))
  1. S APPTREC("ClinicApptDate",SDSTDT,"ClinicApptNumber",SDAPPTNO,"CheckedIn")=$$FMTISO^SDAMUTDT(SDAPPT(44.003,SDIEN,309,"I"),SDCLIN)
  1. S APPTREC("ClinicApptDate",SDSTDT,"ClinicApptNumber",SDAPPTNO,"AppointmentCancelled")=SDAPPT(44.003,SDIEN,310,"E")
  1. S APPTREC("ClinicApptDate",SDSTDT,"ClinicApptNumber",SDAPPTNO,"VeteranVideoCallURL")=SDAPPT(44.003,SDIEN,400,"I")
  1. S APPTREC("ClinicApptDate",SDSTDT,"ClinicApptNumber",SDAPPTNO,"ConsultLink")=SDAPPT(44.003,SDIEN,688,"I")
  1. S APPTREC("ClinicApptDate",SDSTDT,"ClinicApptNumber",SDAPPTNO,"DuplicateApptSameDay")=SDAPPT(44.003,SDIEN,999,"I")
  1. Q
  1. ;