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

SDES2BLDAPPT2.m

Go to the documentation of this file.
  1. SDES2BLDAPPT2 ;ALB/LAB,JAS,LAB - VISTA SCHEDULING BUILDING APPT OBJECT FROM PATIENT ;MAY 15, 2024
  1. ;;5.3;Scheduling;**871,877,880**;Aug 13, 1993;Build 5
  1. ;;Per VHA Directive 6402, this routine should not be modified
  1. ;
  1. Q
  1. ;
  1. GET2INFO(APPTOBJ,APPTIEN,SDDFN,RECCNT,SDDUZ) ;
  1. S APPTOBJ("Appointment",RECCNT,"Patient","DFN")=SDDFN
  1. S APPTOBJ("Appointment",RECCNT,"Patient","ICN")=$$GETPATICN^SDESINPUTVALUTL(SDDFN)
  1. S APPTOBJ("Appointment",RECCNT,"Patient","SSN")=$$LAST4SSN^SDESINPUTVALUTL(SDDFN)
  1. S APPTOBJ("Appointment",RECCNT,"Patient","DateOfBirth")=$$FMTISO^SDAMUTDT($$GET1^DIQ(2,SDDFN_",",.03,"I"))
  1. S APPTOBJ("Appointment",RECCNT,"Patient","DateOfBirthInternal")=$$GET1^DIQ(2,SDDFN_",",.03,"I")
  1. S APPTOBJ("Appointment",RECCNT,"Patient","DateOfDeath")=$$FMTISO^SDAMUTDT($$GET1^DIQ(2,SDDFN_",",.351,"I"))
  1. S APPTOBJ("Appointment",RECCNT,"Patient","EligibilityIEN")=$$GET1^DIQ(2,SDDFN_",",.361,"I")
  1. S APPTOBJ("Appointment",RECCNT,"Patient","Eligibility")=$$GET1^DIQ(2,SDDFN_",",.361,"E")
  1. S APPTOBJ("Appointment",RECCNT,"Patient","FugitiveFelonFlag")=$S($$GET1^DIQ(2,SDDFN_",",1100.01,"I"):"YES",1:"NO")
  1. S APPTOBJ("Appointment",RECCNT,"Patient","Gender")=$$GET1^DIQ(2,SDDFN_",",.02,"E")
  1. S APPTOBJ("Appointment",RECCNT,"Patient","Name")=$$GET1^DIQ(2,SDDFN_",",.01,"E")
  1. S APPTOBJ("Appointment",RECCNT,"Patient","Street")=$$GET1^DIQ(2,SDDFN_",",.111,"E")
  1. N SENSITIVE,NEEDSINS
  1. D SENSITIVE^SDES2UTIL(.SENSITIVE,SDDFN,SDDUZ)
  1. S APPTOBJ("Appointment",RECCNT,"Patient","SensitivePatientRestrictedRecord")=$S($G(SENSITIVE(1)):1,1:0)
  1. S APPTOBJ("Appointment",RECCNT,"Patient","SensitivePatientType")=$G(SENSITIVE(1))
  1. D NEEDVERIFY^SDESPATRPC(.NEEDSINS,SDDFN,180,90)
  1. S APPTOBJ("Appointment",RECCNT,"Patient","NeedInsuranceVerification")=NEEDSINS
  1. D GETREGDT(.APPTOBJ,RECCNT,SDDFN)
  1. D NATIONALFLAG(.APPTOBJ,RECCNT,SDDFN)
  1. D LOCALFLAGS(.APPTOBJ,RECCNT,SDDFN)
  1. Q
  1. ;
  1. GETREGDT(APPTOBJ,RECCNT,SDDFN) ;
  1. N ORIGREGIEN,ORIGREGDT,LASTREGIEN,LASTREGDT,DEMODIFF
  1. S DEMODIFF=180
  1. I $D(^DGS(41.41,"B",SDDFN)) D
  1. .S ORIGREGIEN=$O(^DGS(41.41,"B",SDDFN,0))
  1. .S LASTREGIEN=$O(^DGS(41.41,"B",SDDFN,"A"),-1)
  1. .S ORIGREGDT=$$FMTISO^SDAMUTDT($$GET1^DIQ(41.41,ORIGREGIEN,1,"I"))
  1. .S LASTREGDT=$$FMTISO^SDAMUTDT($$GET1^DIQ(41.41,LASTREGIEN,1,"I"))
  1. .S DEMODIFF=$$FMDIFF^XLFDT(DT,$$GET1^DIQ(41.41,LASTREGIEN_",",1,"I"))
  1. S APPTOBJ("Appointment",RECCNT,"Patient","OriginalRegistrationDate")=$G(ORIGREGDT)
  1. S APPTOBJ("Appointment",RECCNT,"Patient","LastRegistrationDate")=$G(LASTREGDT)
  1. S APPTOBJ("Appointment",RECCNT,"Patient","DemographicsNeedUpdate")=$S(DEMODIFF>179:1,DEMODIFF<180:0)
  1. Q
  1. ;
  1. NATIONALFLAG(APPTOBJ,RECCNT,SDDFN) ;
  1. N PRFDATA,DFNERROR,DFNERRORS,FN,RESNUM,PRFCNT,FIEN,FPTR,PRFARRY,NARR,FDATA
  1. S FN=26.15
  1. D LIST^DIC(26.15,,,"E",,,,,,,"FDATA","ERR")
  1. S (RESNUM,PRFCNT)=0
  1. F S RESNUM=$O(FDATA("DILIST",2,RESNUM)) Q:'RESNUM D
  1. .S FIEN=$G(FDATA("DILIST",2,RESNUM))
  1. .S FPTR=FIEN_";"_$P($$ROOT^DILFD(26.15),U,2)
  1. .K PRFDATA
  1. .D GETINF^DGPFAPIH(SDDFN,FPTR,,,"PRFDATA") Q:'$D(PRFDATA)
  1. .S PRFCNT=PRFCNT+1
  1. .S APPTOBJ("Appointment",RECCNT,"Patient","NationalFlag",PRFCNT,"Name")=$P($G(PRFDATA("FLAG")),U,2)
  1. .S APPTOBJ("Appointment",RECCNT,"Patient","NationalFlag",PRFCNT,"Type")=$P($G(PRFDATA("FLAGTYPE")),U,2)
  1. .S APPTOBJ("Appointment",RECCNT,"Patient","NationalFlag",PRFCNT,"Category")=$P($G(PRFDATA("CATEGORY")),U)
  1. .S APPTOBJ("Appointment",RECCNT,"Patient","NationalFlag",PRFCNT,"AssignedDate")=$$FMTISO^SDAMUTDT($P($G(PRFDATA("ASSIGNDT")),U,1))
  1. .S APPTOBJ("Appointment",RECCNT,"Patient","NationalFlag",PRFCNT,"OwnerSiteID")=$P($G(PRFDATA("OWNER")),U)
  1. .S APPTOBJ("Appointment",RECCNT,"Patient","NationalFlag",PRFCNT,"OwnerSiteName")=$P($G(PRFDATA("OWNER")),U,2)
  1. .S APPTOBJ("Appointment",RECCNT,"Patient","NationalFlag",PRFCNT,"OriginatingSiteID")=$P($G(PRFDATA("ORIGSITE")),U)
  1. .S APPTOBJ("Appointment",RECCNT,"Patient","NationalFlag",PRFCNT,"OriginatingSiteName")=$P($G(PRFDATA("ORIGSITE")),U,2)
  1. .S APPTOBJ("Appointment",RECCNT,"Patient","NationalFlag",PRFCNT,"ReviewDate")=$$FMTISO^SDAMUTDT($P($G(PRFDATA("REVIEWDT")),U))
  1. .S NARR=0 F S NARR=$O(PRFDATA("NARR",NARR)) Q:'NARR D
  1. ..S APPTOBJ("Appointment",RECCNT,"Patient","NationalFlag",PRFCNT,"Narrative",NARR)=$G(PRFDATA("NARR",NARR,0))
  1. I '$D(APPTOBJ("Appointment",RECCNT,"Patient","NationalFlag")) S APPTOBJ("Appointment",RECCNT,"Patient","NationalFlag",1)=""
  1. Q
  1. ;
  1. LOCALFLAGS(APPTOBJ,RECCNT,SDDFN) ;
  1. N PRFDATA,DFNERROR,DFNERRORS,FN,RESNUM,PRFCNT,FIEN,FPTR,PRFARRY,NARR,FDATA
  1. S FN=26.11
  1. D LIST^DIC(26.11,,,"E",,,,,,,"FDATA","ERR")
  1. S (RESNUM,PRFCNT)=0
  1. F S RESNUM=$O(FDATA("DILIST",2,RESNUM)) Q:'RESNUM D
  1. .S FIEN=$G(FDATA("DILIST",2,RESNUM))
  1. .S FPTR=FIEN_";"_$P($$ROOT^DILFD(26.11),U,2)
  1. .K PRFDATA
  1. .D GETINF^DGPFAPIH(SDDFN,FPTR,,,"PRFDATA") Q:'$D(PRFDATA)
  1. .S PRFCNT=PRFCNT+1
  1. .S APPTOBJ("Appointment",RECCNT,"Patient","LocalFlag",PRFCNT,"Name")=$P($G(PRFDATA("FLAG")),U,2)
  1. .S APPTOBJ("Appointment",RECCNT,"Patient","LocalFlag",PRFCNT,"Type")=$P($G(PRFDATA("FLAGTYPE")),U,2)
  1. .S APPTOBJ("Appointment",RECCNT,"Patient","LocalFlag",PRFCNT,"Category")=$P($G(PRFDATA("CATEGORY")),U)
  1. .S APPTOBJ("Appointment",RECCNT,"Patient","LocalFlag",PRFCNT,"AssignedDate")=$$FMTISO^SDAMUTDT($P($G(PRFDATA("ASSIGNDT")),U,1))
  1. .S APPTOBJ("Appointment",RECCNT,"Patient","LocalFlag",PRFCNT,"OwnerSiteID")=$P($G(PRFDATA("OWNER")),U)
  1. .S APPTOBJ("Appointment",RECCNT,"Patient","LocalFlag",PRFCNT,"OwnerSiteName")=$P($G(PRFDATA("OWNER")),U,2)
  1. .S APPTOBJ("Appointment",RECCNT,"Patient","LocalFlag",PRFCNT,"OriginatingSiteID")=$P($G(PRFDATA("ORIGSITE")),U)
  1. .S APPTOBJ("Appointment",RECCNT,"Patient","LocalFlag",PRFCNT,"OriginatingSiteName")=$P($G(PRFDATA("ORIGSITE")),U,2)
  1. .S APPTOBJ("Appointment",RECCNT,"Patient","LocalFlag",PRFCNT,"ReviewDate")=$$FMTISO^SDAMUTDT($P($G(PRFDATA("REVIEWDT")),U))
  1. .S NARR=0 F S NARR=$O(PRFDATA("NARR",NARR)) Q:'NARR D
  1. ..S APPTOBJ("Appointment",RECCNT,"Patient","LocalFlag",PRFCNT,"Narrative",NARR)=$G(PRFDATA("NARR",NARR,0))
  1. I '$D(APPTOBJ("Appointment",RECCNT,"Patient","LocalFlag")) S APPTOBJ("Appointment",RECCNT,"Patient","LocalFlag",1)=""
  1. Q
  1. ;
  1. GET298INFO(APPTOBJ,APPTIEN,SDDFN,RECCNT,CLINIEN) ;
  1. N INCLUDEPAT,PATIENS,ARRAY298,ERR
  1. D CHECKSTATUS(.INCLUDEPAT,SDDFN,APPTIEN,APPTOBJ("Appointment",RECCNT,"StartTimeFM")) ;need to know whether to include PatientAppointment information
  1. S APPTOBJ("Appointment",RECCNT,"OverLaidAppointmentData")=$S(INCLUDEPAT=1:"NO",1:"YES")
  1. I INCLUDEPAT=0 D BLANK298(.APPTOBJ) Q
  1. S PATIENS=APPTOBJ("Appointment",RECCNT,"StartTimeFM")_","_SDDFN_","
  1. D GETS^DIQ(2.98,PATIENS,"**","IE","ARRAY298","ERR")
  1. S APPTOBJ("Appointment",RECCNT,"AppointmentTypeSubCategory")=$G(ARRAY298(2.98,PATIENS,24,"E"))
  1. S APPTOBJ("Appointment",RECCNT,"AutoRebookedApptDateTime")=$$FMTISO^SDAMUTDT($G(ARRAY298(2.98,PATIENS,12,"I")))
  1. S APPTOBJ("Appointment",RECCNT,"CancellationRemarks")=$G(ARRAY298(2.98,PATIENS,17,"E"))
  1. S APPTOBJ("Appointment",RECCNT,"CollateralVisit")=$G(ARRAY298(2.98,PATIENS,13,"E"))
  1. S APPTOBJ("Appointment",RECCNT,"EkgDateTime")=$$FMTISO^SDAMUTDT($G(ARRAY298(2.98,PATIENS,7,"I")),CLINIEN)
  1. S APPTOBJ("Appointment",RECCNT,"EncounterConversionStatus")=$G(ARRAY298(2.98,PATIENS,23.1,"E"))
  1. S APPTOBJ("Appointment",RECCNT,"EncounterFormsAsAddOns")=$G(ARRAY298(2.98,PATIENS,23,"E"))
  1. S APPTOBJ("Appointment",RECCNT,"EncounterFormsPrinted")=$G(ARRAY298(2.98,PATIENS,22,"E"))
  1. S APPTOBJ("Appointment",RECCNT,"FollowUpVisit")=$G(ARRAY298(2.98,PATIENS,28,"E"))
  1. S APPTOBJ("Appointment",RECCNT,"LabDateTime")=$$FMTISO^SDAMUTDT($G(ARRAY298(2.98,PATIENS,5,"I")),CLINIEN)
  1. S APPTOBJ("Appointment",RECCNT,"NextAvaApptIndicator")=$G(ARRAY298(2.98,PATIENS,26,"E"))
  1. S APPTOBJ("Appointment",RECCNT,"NoShowCancelDateTime")=$$FMTISO^SDAMUTDT($G(ARRAY298(2.98,PATIENS,15,"I")))
  1. S APPTOBJ("Appointment",RECCNT,"NoShowCancelledBy")=$G(ARRAY298(2.98,PATIENS,14,"E"))
  1. S APPTOBJ("Appointment",RECCNT,"NumberOfCollateralSeen")=$G(ARRAY298(2.98,PATIENS,11,"E"))
  1. S APPTOBJ("Appointment",RECCNT,"OutpatientEncounter")=$$FMTISO^SDAMUTDT($$GET1^DIQ(409.68,$G(ARRAY298(2.98,PATIENS,21,"I")),.01,"I"),CLINIEN)
  1. S APPTOBJ("Appointment",RECCNT,"PurposeOfVisit")=$G(ARRAY298(2.98,PATIENS,9,"E"))
  1. S APPTOBJ("Appointment",RECCNT,"RealAppointment")=$G(ARRAY298(2.98,PATIENS,4,"E"))
  1. S APPTOBJ("Appointment",RECCNT,"RoutingSlipPrintDate")=$$FMTISO^SDAMUTDT($G(ARRAY298(2.98,PATIENS,8.5,"I")))
  1. S APPTOBJ("Appointment",RECCNT,"RoutingSlipPrinted")=$G(ARRAY298(2.98,PATIENS,8,"E"))
  1. S APPTOBJ("Appointment",RECCNT,"SchedulerName")=$G(ARRAY298(2.98,PATIENS,30,"E"))
  1. S APPTOBJ("Appointment",RECCNT,"SchedulingApplication")=$G(ARRAY298(2.98,PATIENS,29,"I"))
  1. S APPTOBJ("Appointment",RECCNT,"SchedulingRequestType")=$G(ARRAY298(2.98,PATIENS,25,"E"))
  1. S APPTOBJ("Appointment",RECCNT,"SpecialSurveyDisposition")=$G(ARRAY298(2.98,PATIENS,10,"E"))
  1. S:APPTOBJ("Appointment",RECCNT,"Status")="" APPTOBJ("Appointment",RECCNT,"Status")=APPTOBJ("Appointment",RECCNT,"CurrentStatus")
  1. S APPTOBJ("Appointment",RECCNT,"InpatientFlag")=$S($G(ARRAY298(2.98,PATIENS,3,"I"))="I":1,1:0)
  1. S APPTOBJ("Appointment",RECCNT,"XrayDateTime")=$$FMTISO^SDAMUTDT($G(ARRAY298(2.98,PATIENS,6,"I")),CLINIEN)
  1. Q
  1. ;
  1. BLANK298(APPTOBJ) ;if overlaid appointment, send empty fields
  1. S APPTOBJ("Appointment",RECCNT,"InpatientFlag")=""
  1. S APPTOBJ("Appointment",RECCNT,"AppointmentTypeSubCategory")=""
  1. S APPTOBJ("Appointment",RECCNT,"AutoRebookedApptDateTime")=""
  1. S APPTOBJ("Appointment",RECCNT,"CancellationRemarks")=""
  1. S APPTOBJ("Appointment",RECCNT,"CollateralVisit")=""
  1. S APPTOBJ("Appointment",RECCNT,"EkgDateTime")=""
  1. S APPTOBJ("Appointment",RECCNT,"EncounterConversionStatus")=""
  1. S APPTOBJ("Appointment",RECCNT,"EncounterFormsAsAddOns")=""
  1. S APPTOBJ("Appointment",RECCNT,"EncounterFormsPrinted")=""
  1. S APPTOBJ("Appointment",RECCNT,"FollowUpVisit")=""
  1. S APPTOBJ("Appointment",RECCNT,"LabDateTime")=""
  1. S APPTOBJ("Appointment",RECCNT,"NextAvaApptIndicator")=""
  1. S APPTOBJ("Appointment",RECCNT,"NoShowCancelDateTime")=""
  1. S APPTOBJ("Appointment",RECCNT,"NoShowCancelledBy")=""
  1. S APPTOBJ("Appointment",RECCNT,"NumberOfCollateralSeen")=""
  1. S APPTOBJ("Appointment",RECCNT,"OutpatientEncounter")=""
  1. S APPTOBJ("Appointment",RECCNT,"PurposeOfVisit")=""
  1. S APPTOBJ("Appointment",RECCNT,"RealAppointment")=""
  1. S APPTOBJ("Appointment",RECCNT,"RoutingSlipPrintDate")=""
  1. S APPTOBJ("Appointment",RECCNT,"RoutingSlipPrinted")=""
  1. S APPTOBJ("Appointment",RECCNT,"SchedulerName")=""
  1. S APPTOBJ("Appointment",RECCNT,"SchedulingApplication")=""
  1. S APPTOBJ("Appointment",RECCNT,"SchedulingRequestType")=""
  1. S APPTOBJ("Appointment",RECCNT,"SpecialSurveyDisposition")=""
  1. S APPTOBJ("Appointment",RECCNT,"XrayDateTime")=""
  1. Q
  1. ;
  1. CHECKSTATUS(INCLUDEPAT,SDDFN,APPTIEN,APPTDTTM) ;
  1. S INCLUDEPAT=$O(^SDEC(409.84,"APTDT",SDDFN,APPTDTTM,APPTIEN))
  1. S:INCLUDEPAT'="" INCLUDEPAT=0 ;Patient appointment was overlaid with new appointment
  1. S:INCLUDEPAT="" INCLUDEPAT=1
  1. Q
  1. ;