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

BKMVF1.m

Go to the documentation of this file.
  1. BKMVF1 ;PRXM/HC/JGH - Manually Add Patient To Register ; 17 Jul 2005 1:31 PM
  1. ;;2.1;HIV MANAGEMENT SYSTEM;;Feb 07, 2011
  1. QUIT
  1. PROMPT ;Prompt user for Patient
  1. NEW DFN,ADD,REGISTER,PATIENT,STATUS,OPTPAR,OPTS,OPTA,YN
  1. S REGISTER=$$HIVIEN^BKMIXX3()
  1. I REGISTER="" D EN^DDIOL("There is no HMS register defined.") H 2 Q
  1. ;
  1. ; The following line no longer applies
  1. ;I '$D(^BKM(90450,REGISTER,11,"B",DUZ)) D EN^DDIOL("You are not a valid HMS user.") H 2 Q
  1. ;
  1. F Q:'$$GETPAT(.DFN) D
  1. . S ENTRY=$O(^BKM(90451,"B",DFN,""))
  1. . I ENTRY'="",$D(^BKM(90451,"D",REGISTER,ENTRY)) W !!,PNT,": is already in the register.",!! Q
  1. . S STATUS="R"
  1. . I $$GETOCCUP(DUZ)="M" S STATUS=$$STATUS ; Only File Managers are able to change the status.
  1. . I STATUS="^"!(STATUS="") W !!,"The patient wasn't added to the register." Q
  1. . S DIAGCAT=$$DIAG^BKMIXX3() I DIAGCAT=-1 S DIAGCAT="^"
  1. . I DIAGCAT="^"!(DIAGCAT="") W !!,"The patient wasn't added to the register." Q
  1. . S DIAGSTAT=""
  1. . I DIAGCAT="H"!(DIAGCAT="A") S DIAGSTAT=$$CLINCLAS I DIAGSTAT="^"!(DIAGSTAT="") W !!,"The patient wasn't added to the register." Q
  1. . S OPTA="Add the selected patient to the HMS register",OPTS=""
  1. . S OPTPAR="Y"
  1. . S YN=$$PROMPT2^BKMIXX4(OPTPAR,.OPTS,OPTA) I YN<1!(YN["^") W !!,"The patient wasn't added to the register." Q
  1. . D ADD(DFN,STATUS)
  1. . I $$BASETMP^BKMIXX3(DFN) D EN^VALM("BKMV R/E PATIENT RECORD",)
  1. . W @IOF,"The patient has been added to the register.",!! H 2
  1. K DIAGCAT,DIAGSTAT
  1. QUIT
  1. ADD(DFN,STATUS) ; add the patient to the register with status of "R" (unreviewed)
  1. NEW BKMIEN,BKMREG
  1. D ^XBFMK ; Kills off a lot of Fileman variables
  1. S BKMIEN=$O(^BKM(90451,"B",DFN,"")) ; BKMIEN and BKMREG are used by the routine BKMVAUD
  1. I BKMIEN="" D ADDENT(DFN) S BKMIEN=$O(^BKM(90451,"B",DFN,"")) ; Create entry in ICare registry for patient.
  1. I BKMIEN="" W !,"Error, An entry for "_ADD(DFN)_" wasn't created in HMS." Q ; end audit log
  1. S BKMREG=$O(^BKM(90451,BKMIEN,1,"B",REGISTER,""))
  1. I BKMREG="" D ADDTOREG(REGISTER,BKMIEN) S BKMREG=$O(^BKM(90451,BKMIEN,1,"B",REGISTER,""))
  1. I BKMREG="" W !,"Error, An entry for "_ADD(DFN)_" wasn't created in HMS." Q ; end audit log
  1. ;
  1. ; Enter audit entry for the NEW record
  1. D NEW^BKMVAUDN(BKMIEN,BKMREG,DUZ)
  1. ;
  1. D EN^BKMVAUD ; Start audit log
  1. D ADDCRBY(REGISTER,BKMIEN,DUZ),ADDCRDT(REGISTER,BKMIEN,DT)
  1. D ADDSTAT(REGISTER,BKMIEN,STATUS),ADDSTDT(REGISTER,BKMIEN,DT)
  1. I $G(DIAGCAT)'="" D ADDCAT(REGISTER,BKMIEN,DIAGCAT)
  1. I $G(DIAGSTAT)'="" D ADDCLASS(REGISTER,BKMIEN,DIAGSTAT),ADDCLADT(REGISTER,BKMIEN,DT)
  1. D POST^BKMVAUD ; End audit log
  1. ;
  1. I $G(BKMIEN)=""!($G(BKMREG)="") W !,"Error, A patient ID for "_ADD(DFN)_" wasn't created in HMS." Q
  1. ;PRXM/HC/BHS - Removed 8/31/2005 per client request Bug #971
  1. ;S DA=BKMIEN
  1. ;D ID^BKMILK ; Create patient ID and assign to patient.
  1. ; I ($P(Y,U,1)'?1.N)!'$P(Y,U,3) W !,Patient ",DFN," not added."
  1. D ^XBFMK ; Kills off a lot of Fileman variables
  1. QUIT
  1. ADDENT(X) ; add the entry
  1. S DIC(0)="L",DIC("DR")=".01////"
  1. S DIC="^BKM(90451,",DLAYGO=90451
  1. D FILE^DICN
  1. K DIFILE,DIC,DLAYGO
  1. QUIT
  1. ;
  1. ; Add the new patient entry to the HIV register.
  1. ADDTOREG(REGISTER,ENTRY) ;
  1. NEW DIC,X,DA,DLAYGO
  1. S DIC("DR")=".01////",X=REGISTER,DIC(0)="L"
  1. S DA(1)=ENTRY,DIC="^BKM(90451,"_ENTRY_",1,"
  1. S DLAYGO=90451.1
  1. D FILE^DICN
  1. QUIT
  1. ADDCRBY(REGISTER,ENTRY,CRBYUSER) ;
  1. NEW DIC,DR,DIE,DA
  1. S DA=$O(^BKM(90451,ENTRY,1,"B",REGISTER,""))
  1. Q:DA=""
  1. S DR=".025////"_CRBYUSER
  1. S DA(1)=ENTRY
  1. S DIE="^BKM(90451,"_ENTRY_",1,"
  1. D ^DIE
  1. QUIT
  1. ADDCRDT(REGISTER,ENTRY,DT) ;
  1. NEW DIC,DR,DIE,DA
  1. S DA(1)=ENTRY
  1. S DA=$O(^BKM(90451,ENTRY,1,"B",REGISTER,""))
  1. Q:DA=""
  1. S DR=".02////"_DT
  1. S DA(1)=ENTRY
  1. S DIE="^BKM(90451,"_ENTRY_",1,"
  1. D ^DIE
  1. QUIT
  1. ADDSTAT(REGISTER,ENTRY,STAT) ;
  1. NEW DIC,DR,DIE,DA
  1. S DA=$O(^BKM(90451,ENTRY,1,"B",REGISTER,""))
  1. Q:DA=""
  1. S DR=".5////"_STAT
  1. S DA(1)=ENTRY
  1. S DIE="^BKM(90451,"_ENTRY_",1,"
  1. D ^DIE
  1. QUIT
  1. ADDSTDT(REGISTER,ENTRY,DT) ;
  1. NEW DIC,DR,DIE,DLAYGO,DA
  1. S DA=$O(^BKM(90451,ENTRY,1,"B",REGISTER,""))
  1. Q:DA=""
  1. S DR=".75////"_DT
  1. S DA(1)=ENTRY
  1. S DIE="^BKM(90451,"_ENTRY_",1,"
  1. D ^DIE
  1. QUIT
  1. GETPAT(DFN) ;
  1. K DIC,DTOUT,DUOUT,X,Y,DOB,AGE,PNT,IEN
  1. S DIC=9000001 ; S DIC=90451
  1. S DIC(0)="AEMQZ"
  1. K DTOUT,DUOUT
  1. D ^DIC
  1. I $D(DTOUT)!$D(DUOUT)!$G(Y)<1 Q 0
  1. K DIC,DA,DD,DR,DINUM,D,DLAYGO,DIADD
  1. S DFN=$P(Y,"^",2),IEN=+Y,PNT=$G(Y(0,0))
  1. I DFN="" Q 0
  1. S BKMIEN=$O(^BKM(90451,"B",DFN,""))
  1. S BKMREG="" S:BKMIEN'="" BKMREG=$O(^BKM(90451,BKMIEN,1,"B",1,""))
  1. QUIT 1
  1. STATUS() ;STATUS
  1. S DIR(0)="S^"_$P($G(^DD(90451.01,.5,0)),U,3)
  1. S DIR("A")=$P($G(^DD(90451.01,.5,0)),U,1)
  1. D ^DIR
  1. K DIR
  1. QUIT $G(Y)
  1. GETOCCUP(DUZ) ;GETOCCUP
  1. N OCCUP,IENS
  1. Q:$G(DUZ)="" ""
  1. S DA(1)=REGISTER
  1. S DA=$O(^BKM(90450,REGISTER,11,"B",DUZ,""))
  1. Q:DA="" ""
  1. S IENS=$$IENS^DILF(.DA)
  1. S OCCUP=$$GET1^DIQ(90450.011,IENS,.5,"I")
  1. K DA
  1. QUIT OCCUP
  1. DIAGCAT() ;^DD(90451.01,2.3,0)=
  1. ; MHS DIAGNOSIS CATEGORY^S^R:AT RISK;H:HIV;A:AIDS;EK:
  1. ; EXPOSED SOURCE KNOWN;EI:INFANT EXPOSED;EO:OCCUPATIONAL EXPOSURE;EN:
  1. ; NONOCCUPATIONAL EXPOSURE;EU:EXPOSED SOURCE UNKNOWN;^3;7^Q
  1. ; 3)=Enter one of the 8 diagnosis categories for this patient
  1. S DIR(0)="S^"_$P($G(^DD(90451.01,2.3,0)),U,3)
  1. S DIR("A")=$P($G(^DD(90451.01,2.3,0)),U,1)
  1. D ^DIR
  1. K DIR
  1. QUIT $G(Y)
  1. CLINCLAS() ; Clinical Classification
  1. K DIC,DTOUT,DUOUT,X,Y
  1. S DIC=90451.7 ; S DIC=90451
  1. S DIC(0)="AEMQZ"
  1. D ^DIC
  1. I $D(DTOUT)!$D(DUOUT)!$G(Y)<1 Q ""
  1. K DIC
  1. QUIT $G(Y)
  1. ADDCAT(REGISTER,ENTRY,CAT) ;
  1. NEW DIC,DR,DIE,DLAYGO,DA
  1. S DA=$O(^BKM(90451,ENTRY,1,"B",REGISTER,""))
  1. Q:DA=""
  1. S DR="2.3////"_CAT
  1. S DA(1)=ENTRY
  1. S DIE="^BKM(90451,"_ENTRY_",1,"
  1. D ^DIE
  1. QUIT
  1. ADDCLASS(REGISTER,ENTRY,CLASS) ;
  1. NEW DIC,DR,DIE,DLAYGO,DA
  1. S DA=$O(^BKM(90451,ENTRY,1,"B",REGISTER,""))
  1. Q:DA=""
  1. S DR="3////"_CLASS
  1. S DA(1)=ENTRY
  1. S DIE="^BKM(90451,"_ENTRY_",1,"
  1. D ^DIE
  1. QUIT
  1. ADDCLADT(REGISTER,ENTRY,CDATE) ;
  1. NEW DIC,DR,DIE,DLAYGO,DA
  1. S DA=$O(^BKM(90451,ENTRY,1,"B",REGISTER,""))
  1. Q:DA=""
  1. S DR="3.5////"_CDATE
  1. S DA(1)=ENTRY
  1. S DIE="^BKM(90451,"_ENTRY_",1,"
  1. D ^DIE
  1. QUIT