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

AUPNLK2.m

Go to the documentation of this file.
  1. AUPNLK2 ; IHS/CMI/LAB - IHS PATIENT LOOKUP ADD NEW PATIENT ; [ 11/02/2006 9:48 AM ]
  1. ;;99.1;IHS DICTIONARIES (PATIENT);**14,15,17**;MAR 09, 1999;Build 9
  1. ;'Modified' MAS Patient Look-up Add New Patient, June 1987
  1. ;
  1. ; Upon exiting this routine AUPDFN will be set as follows:
  1. ;
  1. ; AUPDFN >0 means patient added and AUPDFN is the DFN
  1. ; AUPDFN <0 means patient not added
  1. ;
  1. ; AUPQF2 values have the following meaning:
  1. ;
  1. ; 0 = Initial state
  1. ; 1 = Primary error
  1. ; 2 = Name edit error
  1. ; 3 = Operator said no
  1. ; 4 = Identifier failure
  1. ; 5 = No add from dupe checker
  1. ; 6 = Add failed
  1. ;
  1. START ;
  1. D INIT ; Initialization
  1. I AUPQF2 D EOJ Q
  1. D EDIT ; Edit the name
  1. I AUPQF2 D EOJ Q
  1. K AUPLID
  1. I DIC(0)["E" D TALK ; Ask if add, get identifiers, check dupes
  1. I AUPQF2 D EOJ Q
  1. D ADDPAT ; Add patient
  1. I AUPQF2 D EOJ Q
  1. D EOJ
  1. Q
  1. ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1. ;
  1. EDIT ; EXTERNAL ENTRY POINT - EDIT NAME
  1. S X=AUPX
  1. X $P(^DD(2,.01,0),U,5,99)
  1. I '$D(X) S AUPQF2=2 W:DIC(0)["Q" *7," ??" Q
  1. ;IHS/ITSC/WAR 6/25/2004 Set AUPX = X if changed
  1. I X'=AUPX S AUPX=X
  1. Q
  1. ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1. ;
  1. TALK ; EXTERNAL ENTERY POINT - TALK TO OPERATOR
  1. D ^AUPNLK2B
  1. Q
  1. ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1. ;
  1. ADDPAT ; ADD PATIENT
  1. I $D(AUPLID),DIC(0)["E" W !!?3,"Please enter the following additional information:",!?3
  1. K DD,DO S X=AUPX S:$D(AUP("DR")) DIC("DR")=AUP("DR") D FILE^DICN S DIC("W")=AUPDICW K:$D(AUP("DR")) DIC("DR") S AUPDFN=Y
  1. I +AUPDFN>0 L +^DPT(+AUPDFN):10 D IHSPAT L
  1. Q
  1. ;
  1. IHSPAT ; ADD PATIENT TO 9000001
  1. K DD,DO
  1. F AUPV="DINUM","DIC","DIC(""DR"")","DIC(0)","DLAYGO" S:$D(@AUPV) AUPRCR(AUPV)=@AUPV
  1. S X=+AUPDFN,DINUM=X,DIC="^AUPNPAT(",DIC(0)="L",DLAYGO=9000001,DIC("DR")=".02////"_DT_";.11////"_DUZ D FILE^DICN L +^DPT(+AUPDFN):10 S DIC("W")=AUPDICW I Y<0 D IHSPATE
  1. K DINUM,DIC("DR"),DIC(0),DLAYGO S AUPV="" F AUPL=0:0 S AUPV=$O(AUPRCR(AUPV)) Q:AUPV="" S @AUPV=AUPRCR(AUPV)
  1. K AUPRCR,AUPV
  1. Q
  1. ;
  1. IHSPATE ; ERROR ADDING TO 9000001
  1. W:AUPRCR("DIC(0)")["Q" !!?3,"Adding patient to ^AUPNPAT failed. Patient being removed from ^DPT also.",!
  1. S DA=+AUPDFN,DIK="^DPT(" D ^DIK K DA,DIK
  1. S AUPQF2=6
  1. Q
  1. ;
  1. ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1. ;
  1. INIT ; EXTERNAL ENTERY POINT - INITIALIZATION
  1. S AUPQF2=0
  1. I '$D(DUZ(0)) W:DIC(0)["Q" !?3,*7,"Unable to Add Patient. Your Fileman Access Code is undefined." S AUPQF2=1 Q
  1. D ACCESS K I,X
  1. Q:AUPQF2
  1. S:'($D(DUZ)#2) DUZ=0 S:DUZ="" DUZ=0
  1. ;AUPN*99.1*15, line below used to reference ^DIC(3
  1. I '$D(^VA(200,DUZ)) W:DIC(0)["Q" !?3,*7,"Unable to Add Patient. DUZ is not a valid user." S AUPQF2=1 Q
  1. Q
  1. ;
  1. ACCESS ; CHECK FILEMAN ACCESS
  1. S X=$S(AUPDIC="^DPT(":2,1:9000001)
  1. I $S($D(DLAYGO):X-DLAYGO,1:1),DUZ(0)'["@",$D(^DIC(X,0,"LAYGO")) S X=^("LAYGO") X "F I=1:1 I DUZ(0)[$E(X,I) Q" I I>$L(DUZ(0)) W:DIC(0)["Q" !?3,*7,"Unable to Add Patient. You do not have Add authority." S AUPQF2=1 Q
  1. Q
  1. ;
  1. ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1. ;
  1. EOJ ; EXTERNAL ENTRY POINT
  1. S:AUPQF2 AUPDFN=-1
  1. K AUPGID,AUPID,AUPID0,AUPIDS,AUPLID,AUP("DR"),AUPQF2,AUPRCR,AUPSET,AUPV
  1. Q