Single Patient Record Back-up
FINISHED PROGRAM FOR RETRIEVING ONE PATIENT DATA METHOD #1:
USER>D ^%CD
Namespace: VISTA You're in namespace VISTA Default directory is c:\cachesys\mgr\vista\ VISTA>
VISTA>S DUZ=10000000020
VISTA>D ^XUP
Setting up programmer environment This is a TEST account.
Terminal Type set to: C-VT320
Select OPTION NAME: VISTA>
VISTA>D ^NAM5SSN
Contents
- 1 ===============================
- 2 ===============================
- 3 ===============================
- 4 ===============================
- 5 ===============================
- 6 ============================================================
- 7 ====
- 8 ============================================================
===============================
VISTA SELECT PATIENT PROCEDURE:
===============================
Select PATIENT NAME: ONE
1 ONE,IMAGEPATIENT 4-15-53 666061001 NO NSC
VETERAN
2 ONE,INPATIENT 3-9-45 666000801 NO NSC VETERAN
3 ONE,OUTPATIENT 3-9-45 666000601 NO NSC
VETERAN
4 ONE,PATIENT 4-7-35 666000001 YES SC VETERAN
5 ONEHUNDRED,INPATIENT 3-9-45 666000900 NO NSC
VETERAN
ENTER '^' TO STOP, OR CHOOSE 1-5: 4 ONE,PATIENT 4-7-35 666000001 YES SC VETERAN
Enrollment Priority: GROUP 3 Category: IN PROCESS End Date:
===============================
NAME5SSN SELECTED PATIENT DATA:
===============================
Name: ONE,PATIENT SSN: 666000001 SEX: M DOB: 03/12/8276 ADDRESS: 1312 Ashton Place CITY: Rowling STATE: WEST VIRGINIA ZIP: 99998 PHONE: 222-555-8235
===============================
VISTA>
============================================================
OUTPUT.TXT:
====
Name^ONE,PATIENT^SSN^666000001^SEX^M^DOB^03/12/8276^ADDRESS^1312 Ashton Place^CITY^Rowling^STATE^WEST VIRGINIA^ZIP^99998PHONE^222-555-8235^
============================================================
NAM5SSN ; Lab 9 M1; VISTA SELECT PATIENT NAME: W NAME & SSN; AHR;
09/28/2009
- Setting up a VistA environment
- USER>D ^%CD
- Namespace
- VISTA
- You're in namespace VISTA
- Default directory is c
- \cachesys\mgr\vista\
- VISTA>S DUZ=10000000020
- VISTA>D ^XUP
- Setting up programmer environment
- This is a TEST account.
- Terminal Type set to
- C-VT320
- Select OPTION NAME
- VISTA>
- VISTA>D ^NAM5SSN
- Assuming you want field #9 from File #2, the name of the field is
retrieved
- with the MUMPS expression
- WRITE $PIECE(^DD(2,9,0),"^",1),!
- observe the difference between
- field number and global subscript location
- Select DATA DICTIONARY UTILITY OPTION
- LIST FILE ATTRIBUTES
- START WITH WHAT FILE
- PATIENT//
- GO TO WHAT FILE
- PATIENT//
- Select SUB-FILE
- Select LISTING FORMAT
- STANDARD// CUSTOM-TAILORED
- SORT BY
- LABEL// NUMBER
- START WITH NUMBER
- FIRST//
- WITHIN NUMBER, SORT BY
- FIRST PRINT ATTRIBUTE
- LABEL
- THEN PRINT ATTRIBUTE
- NUMBER
- THEN PRINT ATTRIBUTE
- GLOBAL SUBSCRIPT LOCATION
- THEN PRINT ATTRIBUTE
- Heading (S/C)
- FIELD SEARCH//
- DEVICE
- 0;80;999 TELNET
- PATIENT FILE FIELD SEARCH SEP 24,2009 22
- 01 PAGE 1
- LABEL NUMBER GLOBAL
- SUBSCRIPT LOCATION
- Below is the section on address. Note
- Field Label, Number, and Global Subscript Location
-----
- NAME .01 0;1
- SEX .02 0;2
- DATE OF BIRTH .03 0;3
- AGE .033 ;
- MARITAL STATUS .05 0;5
- RACE .06 0;6
- OCCUPATION .07 0;7
- RELIGIOUS PREFERENCE .08 0;8
- DUPLICATE STATUS .081 0;18
- PATIENT MERGED TO .082 0;19
- CHECK FOR DUPLICATE .083 0;20
- SOCIAL SECURITY NUMBER .09 0;9
- STREET ADDRESS [LINE 1] .111 .11;1
- ZIP+4 .1112 .11;12
- STREET ADDRESS [LINE 2] .112 .11;2
- STREET ADDRESS [LINE 3] .113 .11;3
- CITY .114 .11;4
- STATE .115 .11;5
- ZIP CODE .116 .11;6
- COUNTY .117 .11;7
- ADDRESS CHANGE DT/TM .118 .11;13
- ADDRESS CHANGE SOURCE .119 .11;14
- Thus the first line of the address is in piece 1 of subscript " .11"
- Like so
- $P(^DPT(patientnum,.11),"^",1)
- And CITY is in piece 4
- $P(^DPT(patnumber,.11),"^",4)
- Addressing this bit of MUMPS code
- S ZSTATE=$P(^DD(5,STATE,0),"^",1)
- this says (in MUMPS-ish English)
- create a local variable for this process only named ZSTATE
- with the value found by reading the local variable STATE
- and using it as a FileMan Field Number.
- Use this FileMan Field Number to find the FileMan Field Name
- by looking it up in the Data Dictionary of the File #5.
- (not stated, but known by me, File #5 is the VistA STATE File)
- The Field Name is found by retrieving the "Zeroth" node of the
- Data Dictionary, and then processing it by removing the first piece
- of the string stored in that zeroth node value, which is itself a
- string of characters, using a "^" (caret character) as a delimiter.
- This does NOT do what you have been saying you want to do.
- If you want to look up the name of a state using the index for that
- state (the internal entry number of that entry in the STATE File)
- you must look in the global used for the STATE File.
- If you use the internal entry number of the state as if it were a
field
- number, you will get the wrong information.
- If you want to get the value of a particular state, you must find
out the
- global root for the STATE File. I happen to know that the global
root
- for the STATE File is "^DIC(5," I know this because I use the
FileMan
- inquire option to find it.
- Select OPTION
- INQUIRE TO FILE ENTRIES
- OUTPUT FROM WHAT FILE
- STATE// FILE
- Select FILE
- STATE
- ANOTHER ONE
- STANDARD CAPTIONED OUTPUT? Yes// (Yes)
- Include COMPUTED fields
- (N/Y/R/B): NO// BOTH Computed Fields and
Record Number
- (IEN)
- NUMBER
- 5 NAME: STATE
- APPLICATION GROUP
- VA
- DESCRIPTION
- This file contains the name of the state (or outlying
area) as
- issued by the Department of Veterans Affairs and issued in M-1, Part
I,
- Appendix B. These entries should remain as distributed and should
not be
- edited or updated unless done via a software upgrade or under
direction of VA
- Central Office.
- GLOBAL NAME (c)
- ^DIC(5, ENTRIES (c): 82
- DD ACCESS (c)
- # WR ACCESS (c): #
- DEL ACCESS (c)
- # LAYGO ACCESS (c): #
- VERSION (c)
- 5.3 COMPILED CROSS-REFERENCES (c): NO
- After I find out the global root for the STATE File, I have to get
the
- value for the NAME
- of the STATE. I happen to know this is in the Zeroth node and the
- first piece using
- "^" as a delimiter.
- So the code should be
- SET ZSTATE=$P(^DIC(5,STATE,0),"^",1)
- FROM
- DGPHIST ;WASH/ERC - PURPLE HEART REQUEST HISTORY ;23 AUG 00 ;
- 5.3;Registration;**343**,Aug 13, 1993
EN ;Entry point N DGDFN,DGPAT,DGNAM,DGSSN N SEX,DOB,ADDRESS,CITY,STATE,ZIP,PHONE
- I DTIME="" S DTIME=30 ; added 1 line; TIMEOUT 4 READ set if ^XUP not
run S DTIME=9999
W !,"===========================================" W !,"VISTA SELECT PATIENT PROCEDURE: ",! W "===========================================",!
S DGDFN=$$GETDFN() Q:DGDFN'>0
S DGNAM=$$NAME(DGDFN)
S DGSSN=$$SSN(DGDFN)
S SEX=$P($G(^DPT(DGDFN,0)),"^",2)
S DOB=$P($G(^DPT(DGDFN,0)),"^",3) S ZDOB=$ZDATETIME(DOB)
S ADDRESS=$P(^DPT(DGDFN,.11),"^",1)
S CITY=$P(^DPT(DGDFN,.11),"^",4)
S STATE=$P(^DPT(DGDFN,.11),"^",5) SET ZSTATE=$P(^DIC(5,STATE,0),"^",1)
S ZIP=$P(^DPT(DGDFN,.11),"^",6)
S PHONE=$P(^DPT(DGDFN,.13),"^",1)
- cell .13;10
- S CELLPHONE=$P(^DPT(DGDFN,.13),"^",10)
- e-mail address .13;3
- S EMAIL=$P(^DPT(DGDFN,.13),"^",3)
W !,"===========================================",! W !,"NAME5SSN SELECTED PATIENT DATA: " W !,"===========================================",! W !,"Name: ",DGNAM," SSN: ",DGSSN W !,"SEX: ",SEX," DOB: ",ZDOB," ADDRESS: ",ADDRESS W !,"CITY: ",CITY," STATE: ",ZSTATE," ZIP: ",ZIP W !,"PHONE: ", PHONE,! W !,"===========================================",!
- To write to an external file name
set externalfilename="C:\Documents and Settings\robinson\My Documents \HOMEWORK\MUMPS\Lab 09\out_file.txt" open externalfilename:("NRW") use externalfilename
- write to the selected file
- write a text file with the format
- Field Id Name^Field Data^
W "Name^",DGNAM,"^SSN^",DGSSN,"^" ; Line I have written W "SEX^",SEX,"^DOB^",ZDOB,"^ADDRESS^",ADDRESS,"^" W "CITY^",CITY,"^STATE^",ZSTATE,"^ZIP^",ZIP W "PHONE^", PHONE,"^"
close externalfilename
- W !,"WHOLE GLOBAL
- ",$G(^DPT(DGDFN,0))
- FROM
- VAFCMS01 ;BP-CIOFO/JRP - ADMISSION RETRANSMISSION;8/3/1998 ;
- 5.3;Registration;**209**;Aug 13, 1993
GETDFN() ;Get pointer to PATIENT file (#2)
- Input
- None
- Output
- DFN - Pointer to PATIENT file (#2)
- -1 - No entry selected
N DIC,X,Y,DTOUT,DUOUT S DIC="^DPT(" S DIC(0)="AEMNQZ" D ^DIC Q +Y
- FROM
- DGENPTA ;ALB/CJM - Patient API - Retrieve Data; 13 JUN 1997
- 5.3;Registration;**121,122,147**;08/13/93
SSN(DFN) ;
- Description
- Function returns the patient's SSN, or "" on failure.
Q:'DFN "" Q $P($G(^DPT(DFN,0)),"^",9)
NAME(DFN) ;
- Description
- Function returns the patient's NAME, or "" on failure.
Q:'DFN "" Q $P($G(^DPT(DFN,0)),"^")
QUIT ; END NAM2SSN
- VERY IMPORTANT EXAMPLE OF PATIENT LOOKUP MAIN ROUTINE
- DPTLK ;ALB/RMO,RTK - MAS Patient Look-up Main Routine ; 3/22/05
4:19pm
5.3;Registration;**32,72,93,73,136,157,197,232,265,277,223,327,244,513,528,541,576,600,485,633,629,647**;Aug 13, 1993
- mods made for magstripe read 12/96 - JFP
- Optional input
- DPTNOFZY='1' to suppress fuzzy lookups implemented
- by patch DG*5.3*244