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

APCDAACD.m

Go to the documentation of this file.
  1. APCDAACD ; IHS/CMI/LAB - CDMIS TO PCC LINK ;
  1. ;;2.0;IHS PCC SUITE;;MAY 14, 2009
  1. ;
  1. ;
  1. ;cdmis to pcc link
  1. ;cdmis system will pass array ACDEV
  1. ;ACDEV("TYPE")=A,E OR D
  1. ;
  1. EP ;EP - call from APCDALD DRIVER
  1. D MAIN
  1. D EOJ
  1. Q
  1. ;
  1. MAIN ;
  1. W:'$D(ZTQUEUED) !!,"Updating PCC .. hold on.."
  1. K APCDQUIT,APCDALVR
  1. D ECHK
  1. I $G(APCDQUIT) D VSERROR Q
  1. D @ACDEV("TYPE")
  1. Q
  1. ;
  1. ECHK ;ERROR CHECK
  1. I '$D(ACDEV) S APCDQUIT=4 Q ; no array defined
  1. F X="CLINIC","LOCATION","PAT","POV","PRI PROV","SITE TYPE","SVC CAT","TYPE","V DATE","VISIT" D Q:$G(APCDQUIT)
  1. . S X=""""_X_""""
  1. . S:X["POV" X=X_",1"
  1. . I '$D(@("ACDEV("_X_")")) S APCDQUIT=5 Q ; required var missing
  1. . I $G(@("ACDEV("_X_")"))="" S APCDQUIT=6 Q ; required var null
  1. . Q
  1. Q:$G(APCDQUIT)
  1. I "AED"'[ACDEV("TYPE") S APCDQUIT=7 Q ; no appropriate type
  1. Q
  1. ;
  1. A ;EP-added a record
  1. ;//^APCDAAC2
  1. D CHECK
  1. I $G(APCDQUIT) Q ; quit if not a visit pcc wants
  1. D VISIT ; set up and create visit
  1. I $G(APCDQUIT) Q
  1. D ^APCDALV ; create visit
  1. I $D(APCDALVR("APCDAFLG")) S APCDQUIT=APCDALVR("APCDAFLG") D VSERROR Q
  1. S APCDVSIT=APCDALVR("APCDVSIT")
  1. D VFILES^APCDAAC1
  1. ;call protocol signifying a complete visit added to pcc files
  1. S APCDV("9000010")=APCDVSIT
  1. D COMPLETE^APCDALD
  1. Q
  1. ;
  1. CHECK ; SEE IF PCC WANTS VISIT
  1. Q
  1. ;
  1. VISIT ;EP
  1. ;//^APCDAAC2
  1. S APCDALVR("APCDAUTO")="" S:ACDEV("TYPE")="A" APCDALVR("APCDADD")=""
  1. S APCDALVR("APCDPAT")=ACDEV("PAT")
  1. S (APCDALVR("APCDDATE"),APCDDATK)=ACDEV("V DATE")
  1. D GETLOC ; get location of visit
  1. I $G(APCDQUIT) D VSERROR Q
  1. D GETTYPE ; get type of visit
  1. I $G(APCDQUIT) D VSERROR Q
  1. S APCDALVR("APCDCAT")=ACDEV("SVC CAT")
  1. S APCDALVR("APCDCLN")=ACDEV("CLINIC")
  1. S APCDALVR("APCDAPPT")="U"
  1. DEBUG ;ZW APCDALVR D PAUSE^ACDDEU
  1. Q
  1. ;
  1. GETLOC ;get location of encounter
  1. S APCDALVR("APCDLOC")=ACDEV("LOCATION")
  1. Q
  1. ; ********** DO WE NEED SOMETHING HERE **********
  1. I '$D(ACDEV("ACTLOC")) S APCDQUIT=21 Q ;can't tell activity location
  1. S APCDACTL=$P(ACDEV("ACTLOC"),U,5)
  1. S APCDLOC=$P(ACDEV("DATA0"),U,5)
  1. I APCDLOC S APCDALVR("APCDLOC")=APCDLOC Q ;quit if have a hosp/clinic pointer
  1. I APCDACTL="HC" S APCDQUIT=24 Q
  1. ;home visit
  1. I APCDACTL="HM" S APCDLOC=$P(ACDEV("SITE"),U,5) I APCDLOC="" S APCDQUIT=22 Q
  1. I APCDACTL="CH" S APCDLOC=$P(ACDEV("SITE"),U,6) I APCDLOC="" S APCDQUIT=27 Q
  1. I 'APCDLOC S APCDLOC=$P(ACDEV("SITE"),U,9) I APCDLOC="" S APCDQUIT=23 Q
  1. S APCDALVR("APCDLOC")=APCDLOC
  1. Q
  1. ;
  1. GETTYPE ;get type of visit
  1. S APCDALVR("APCDTYPE")=ACDEV("SITE TYPE")
  1. Q
  1. ; ********** DO WE NEED SOMETHING HERE *********
  1. S APCDLOC=$P(^AUTTLOC(APCDALVR("APCDLOC"),0),U,10) I $E(APCDLOC,5,6)>49 S APCDALVR("APCDTYPE")="T" Q ;if not a clinic, set to tribal and quit
  1. S APCDALVR("APCDTYPE")=$P(ACDEV("SITE"),U,4) Q:APCDALVR("APCDTYPE")'=""
  1. S X=$P(^AUTTLOC(APCDALVR("APCDLOC"),0),U,25) I X]"" S APCDALVR("APCDTYPE")=$S(X=1:"I",X=2:"6",X=3:"C",X=6:"T",1:"O") Q ;if loc updated use it
  1. S X=$P($G(^APCCCTRL(DUZ(2),0)),U,4) I X]"" S APCDALVR("APCDTYPE")=X Q ;use pcc master control if all else fails
  1. S APCDALVR("APCDTYPE")="T" ;default to T if can't determine
  1. Q
  1. ;
  1. E ;edited a cdmis record
  1. D E^APCDAAC2
  1. Q
  1. ;
  1. D ;deleted a cdmis record
  1. D D^APCDAAC2
  1. Q
  1. ;
  1. EOJ ;
  1. K APCDLINK,APCDFILE,APCDERR,APCDQUIT,APCDALVR,APCDTYPE,APCDLOC,APCDDATK,APCDACTL,APCDIEN,APCDX,APCDGOT,APCDVSIT
  1. K ACDEV
  1. Q
  1. ;
  1. VSERROR ;EP
  1. S APCDFILE="VISIT"
  1. S APCDIEN=$G(ACDEV("VISIT"))
  1. S APCDERR="VE"_APCDQUIT,APCDERR=$P($T(@APCDERR),";;",2)
  1. D LBULL^APCDALD
  1. Q
  1. ;
  1. VE2 ;;inability to create visit
  1. VE3 ;;invalid visit parameters (date, location etc.)
  1. VE4 ;;ACDEV array not passed
  1. VE5 ;;Required variable not passed
  1. VE6 ;;Required variable is null
  1. VE7 ;;No appropriate type (i.e., A,E,D)
  1. VE21 ;;No activity location passed. No Location determined.
  1. VE22 ;;No IHS Location for HOME in CDMIS SITE PARAMETER File.
  1. VE23 ;;No IHS Location for OTHER in CDMIS SITE PARAMETER File.
  1. VE24 ;;No Location of Encounter when Activity location is Hospital/Clinic.
  1. VE27 ;;No Location of Encounter for OFFICE in CDMIS SITE PARAMETER file.
  1. VE28 ;;Error attempting to modify visit