| 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 | 
|---|