1 | GMRCITPI ;SLC/JFR - SET TEST PATIENT ICN'S ;10/2/02 12:10
|
---|
2 | ;;3.0;CONSULT/REQUEST TRACKING;**22,28**;DEC 27, 1997
|
---|
3 | ;
|
---|
4 | ; This routine invokes IA #'s 3552, 3553
|
---|
5 | ;
|
---|
6 | ;
|
---|
7 | ; WARNING: due to complications that may occur with the VA MPI, this
|
---|
8 | ; routine should never be executed in a production VistA
|
---|
9 | ; environment.
|
---|
10 | ;
|
---|
11 | EN ;set test patient ICN's based on SSN
|
---|
12 | I '$$ENVOK Q ;don't continue if environment isn't right
|
---|
13 | N DIR,X,Y,DIRUT,DIROUT,DUOUT,DTOUT,GMRCPT,VA,VAHOW,VAROOT,DFN,OK
|
---|
14 | W !!
|
---|
15 | S DIR(0)="PAO^2:EMQZ",DIR("A")="Select shared patient: "
|
---|
16 | D ^DIR I $D(DIRUT) Q
|
---|
17 | S DFN=+Y
|
---|
18 | S VAROOT="GMRCPT",VAHOW=1 D DEM^VADPT
|
---|
19 | I '$$PATOK($P(GMRCPT("SS"),U)) G EN
|
---|
20 | W !!,"Trying to set test patient ICN..."
|
---|
21 | S OK=$$SETICN^MPIF001(DFN,(9_+GMRCPT("SS")),$E(GMRCPT("SS"),3,8))
|
---|
22 | I 'OK W !!,"Unable to set ICN for this patient. Try again or select another patient." Q
|
---|
23 | W !!," Done.",!
|
---|
24 | G EN
|
---|
25 | Q
|
---|
26 | ENVOK() ;check and quit if this could be a production environment
|
---|
27 | ; checks PROCESSING ID (#.03) of file 869.3 to see if training
|
---|
28 | N GMRCPID
|
---|
29 | S GMRCPID=$P($$PARAM^HLCS2,U,3) ; new API to call
|
---|
30 | I '$L(GMRCPID) D Q 0
|
---|
31 | . W !!,"Unable to continue! VistA HL7 is not configured."
|
---|
32 | . W !,"Check the HL COMMUNICATION SERVER PARAMETERS file to be sure this is "
|
---|
33 | . W !,"configured as a test environment."
|
---|
34 | I GMRCPID="P" D Q 0
|
---|
35 | . W !!,$C(7),"This appears to be a production system!",!!
|
---|
36 | . W "This option is only for use in training environments!",!
|
---|
37 | . W !,"If this is indeed a training environment, Check the HL COMMUNICATION "
|
---|
38 | . W !,"SERVER PARAMETERS file to be sure this is configured as a test environment."
|
---|
39 | . W !,"Then access this option again."
|
---|
40 | Q 1
|
---|
41 | ;
|
---|
42 | PATOK(GMRCSSN) ;make sure patient is only one with the SSN passed in
|
---|
43 | ; Input:
|
---|
44 | ; GMRCSSN = ssn of patient in question
|
---|
45 | ;
|
---|
46 | ; Output:
|
---|
47 | ; 1 = patient has a unique SSN and can be assigned a pseudo-ICN
|
---|
48 | ; 0 = already a patient on file with the SSN
|
---|
49 | N GMRCPT,ICN,OK
|
---|
50 | I $E(GMRCSSN,1,5)="00000" D Q 0
|
---|
51 | . W !,"Patients having a SSN with 5 leading zeros cannot be used for inter-facility",!,"consult testing. Edit the SSN or choose a different patient."
|
---|
52 | I GMRCSSN["P" D Q 0
|
---|
53 | . W !!,"This patient has a pseudo-SSN. A pseudo-ICN cannot be assigned. Edit the SSN",!,"or choose a different patient.",!
|
---|
54 | S GMRCPT=$$FIND1^DIC(2,"","X",GMRCSSN,"SSN")
|
---|
55 | I GMRCPT'>0 D Q 0
|
---|
56 | . W !,"There is more than one patient on file with the SSN of this patient. ",!,"A pseudo-ICN cannot be assigned. Edit the SSN or choose different patient."
|
---|
57 | S ICN=$$GETICN^MPIF001(GMRCPT)
|
---|
58 | I $L(ICN),+ICN=(9_GMRCSSN) D Q 0
|
---|
59 | . W !!,"Test patient ICN already set using current SSN.",!
|
---|
60 | I $L(ICN),'$$IFLOCAL^MPIF001(GMRCPT) D Q OK
|
---|
61 | . S OK=1
|
---|
62 | . W !!,"This patient appears to have a national ICN on file.",!
|
---|
63 | . N DIR,X,Y,DTOUT,DIRUT,DUOUT
|
---|
64 | . S DIR(0)="YA",DIR("A")="Are you sure you want to overwrite this ICN? "
|
---|
65 | . D ^DIR
|
---|
66 | . I Y'>0 S OK=0
|
---|
67 | Q 1
|
---|