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

BEDDPCC.m

Go to the documentation of this file.
  1. BEDDPCC ;GDIT/HS/BEE-BEDD Admit - Create a Visit ; 08 Nov 2011 12:00 PM
  1. ;;2.0;BEDD DASHBOARD;**2,3**;Jun 04, 2014;Build 12
  1. ;
  1. ;GDIT/HS/BEE 05/10/2018;CR#10213 - BEDD*2.0*3 - Allow different hospital locations
  1. ;
  1. ;Derived from AMERPCC
  1. ;
  1. VISIT(AMERPAT,AMERTIME,BEDD) ; EP from NADM^BEDDADM when patient is admitted W/O PIMS interface CHEKIN^AMERBSDU
  1. ;
  1. NEW AMERVSIT
  1. ;
  1. ;GDIT/HS/BEE 05/10/2018;CR#10213 - BEDD*2.0*3 - Allow different hospital locations
  1. ;S AMERVSIT=$$AMVISIT(AMERPAT,AMERTIME) I +AMERVSIT'>0 Q "-1^"_$P(AMERVSIT,U,2)
  1. S AMERVSIT=$$AMVISIT(AMERPAT,AMERTIME,.BEDD) I +AMERVSIT'>0 Q "-1^"_$P(AMERVSIT,U,2)
  1. ;
  1. Q AMERVSIT
  1. ;
  1. ;GDIT/HS/BEE 05/10/2018;CR#10213 - BEDD*2.0*3 - Allow different hospital locations
  1. ;AMVISIT(AMERPAT,AMERDATE) ;
  1. AMVISIT(AMERPAT,AMERDATE,BEDD) ;
  1. ;
  1. ;NEW IN,AMERVSIT,OUT,X,AMERVDR,AMEROPT,AMERTEMP,BEDDADM
  1. NEW IN,AMERVSIT,OUT,X,AMERVDR,AMEROPT,AMERTEMP,BEDDADM,CLIN,ICLIN,ICPREF
  1. ;
  1. S (AMERVSIT,AMERVDR)=""
  1. ;
  1. S IN("PAT")=AMERPAT
  1. S IN("VISIT DATE")=AMERDATE
  1. S IN("SITE")=$G(DUZ(2))
  1. ;
  1. ; To determine "visit type" for this visit, look in the "PCC MASTER CONTROL" file
  1. ; and get the "type of visit" that is set there
  1. S IN("VISIT TYPE")=$P($G(^APCCCTRL(DUZ(2),0)),U,4)
  1. S IN("USR")=DUZ
  1. ;
  1. ;GDIT/HS/BEE 05/10/2018;CR#10213 - BEDD*2.0*3 - Allow different hospital locations
  1. ;S IN("HOS LOC")=$G(^AMER(2.5,DUZ(2),"SD"))
  1. S CLIN=$G(BEDD("tClinic")) I CLIN]"" D
  1. . NEW DA,IENS
  1. . S ICLIN=$O(^AMER(3,"B",CLIN,"")) Q:ICLIN=""
  1. . S ICPREF=$O(^AMER(2.5,DUZ(2),8,"B",ICLIN,"")) Q:ICPREF=""
  1. . S DA(1)=DUZ(2),DA=ICPREF,IENS=$$IENS^DILF(.DA)
  1. . S IN("HOS LOC")=$$GET1^DIQ(9009082.58,IENS,".02","I")
  1. S:$G(IN("HOS LOC"))="" IN("HOS LOC")=$G(^AMER(2.5,DUZ(2),"SD"))
  1. ;
  1. S:IN("HOS LOC")'="" IN("APPT DATE")=AMERDATE ; Setting IN("APPT DATE") will create an appoinment for this time
  1. S IN("SRV CAT")="A" ; ER VISITS are "ambulatory"
  1. S IN("TIME RANGE")=3 ; Only find a visit for a time that is close to time or ER VISIT
  1. S BEDDADM=1
  1. D GETVISIT^APCDAPI4(.IN,.OUT)
  1. ;
  1. ;No visit returned
  1. I $P(OUT(0),U,1)=0 Q "-1^"_$P(OUT(0),U,2)
  1. Q:+AMERVSIT<0 AMERVSIT
  1. ;
  1. ;Multiple results returned
  1. S AMERTEMP=0
  1. I $P(OUT(0),U,1)>1 D
  1. .F S AMERTEMP=$O(OUT(AMERTEMP)) Q:AMERTEMP="" D
  1. ..S AMERVSIT=AMERTEMP
  1. ;
  1. ;Only one result returned
  1. I $P(OUT(0),U,1)=1 S AMERVSIT=$O(OUT(AMERTEMP))
  1. ;
  1. ;If "Option use to create" is blank (no PIMS interface) update it with a DIE call...
  1. I AMERVSIT>0 D
  1. .Q:$$GETVOPTN^AMERVSIT(AMERVSIT)'=""
  1. .S AMEROPT=$$GETOPIEN^AMERVSIT("AMER IHS PCC LINK")
  1. .S:+AMEROPT>0 AMERVDR=".24///"_+AMEROPT
  1. .D:AMERVDR'="" VSITDIE^AMERVSIT(AMERVSIT,AMERVDR)
  1. ;
  1. Q AMERVSIT