Ignore:
Timestamp:
Dec 4, 2009, 12:11:15 AM (14 years ago)
Author:
George Lilly
Message:

revised back to 6/30/08 version

File:
1 edited

Legend:

Unmodified
Added
Removed
  • WorldVistAEHR/trunk/r/REGISTRATION-DGQE-DG-DPT-GRPX-VAD-VAF-VAS-VAT-VAU--VA-VIC--DGBT--DGJ--DGYA--VALM/DGLBPID.m

    r613 r623  
    1 DGLBPID ;DJW,TOAD; Health Record Number Identifier ;5/1/07  20:26
    2         ;;5.3;Registration;**634**;Aug 13, 1993;Build 30
    3         ; Copyright (C) 2007 WorldVistA
    4         ;
    5         ; This program is free software; you can redistribute it and/or modify
    6         ; it under the terms of the GNU General Public License as published by
    7         ; the Free Software Foundation; either version 2 of the License, or
    8         ; (at your option) any later version.
    9         ;
    10         ; This program is distributed in the hope that it will be useful,
    11         ; but WITHOUT ANY WARRANTY; without even the implied warranty of
    12         ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    13         ; GNU General Public License for more details.
    14         ;
    15         ; You should have received a copy of the GNU General Public License
    16         ; along with this program; if not, write to the Free Software
    17         ; Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
    18         ;'Modified' MAS Patient Look-up Check Cross-References June 1987
    19         Q
    20         ;
    21         ;
    22 ID(DFN) ;GFT/VW  IA 10035
    23         N ID S ID=$P($G(^DPT(DFN,.36)),U,3) ;PRIMARY LONG ID
    24         I ID="" S ID=$$HRN(DFN)
    25         I ID="" S ID=$P($G(^DPT(DFN,0)),U,9) I ID]"" S ID=$E(ID,1,3)_"-"_$E(ID,4,5)_"-"_$E(ID,6,99)
    26         I ID="" D
    27         .N I F I=0:0 S I=$O(^AUPNPAT(DFN,41,I)) Q:'I  I $P($G(^(I,0)),U,5)="" S ID=$P($G(^(0)),U,2) I ID]"" S ID=ID_" ("_$P($G(^DIC(4,I,0)),U,5)_")" Q
    28         I ID="" S ID="`"_DFN
    29         Q ID
    30         ;
    31         ;
    32         ;
    33         ;
    34 HRN(DFN)        ;LOOKUP HEALTH RECORD NUMBER
    35         I '$G(DUZ(2)) Q ""
    36         Q $P($G(^AUPNPAT(DFN,41,DUZ(2),0)),U,2)
    37         ;
    38         ;
    39 GOTIDQ(DFN)     ;Do we have the needed number for this guy?
    40         N T S T=$$REQID(DFN)
    41         I T="SSN" Q $P(^DPT(DFN,0),U,9)]""
    42         I T="HRN" Q:'$G(DUZ(2)) 0 Q $P($G(^AUPNPAT(DFN,41,DUZ(2),0)),U,2)]""
    43         Q 1
    44         ;
    45         ;
    46 REQID(DFN)      ;WHICH IDENTIFICATION FORMAT IS REQUIRED?
    47         N TYPE S TYPE=""
    48         D:$G(DFN)
    49         .S TYPE=+$G(^DPT(DFN,.361)) I TYPE S TYPE=$P($G(^DIC(8,TYPE,0)),U,9) ;try PRIMARY ELIGIBILITY CODE
    50         .I TYPE="" S TYPE=+$G(^DPT(DFN,"TYPE")) I TYPE S TYPE=+$G(^DG(391,TYPE,8.2)) ;try patient TYPE
    51         I 'TYPE S TYPE=$G(DUZ("AG")),TYPE=$S(TYPE="V":1,1:2) ;or just assume it's HRN if not VA
    52         Q $P("SSN^HRN",U,TYPE)
    53         ;
    54         ;
    55 IDCAP() ;Returns 3 characters: " ID" or "SSN"
    56         I $G(DUZ("AG"))="E" Q " ID"
    57         Q "SSN"
    58         ;
    59         ;
    60         ;
    61         ;
    62         ;
    63         ;
    64 LONGID  ;Called by ^DIC(8.2,2,"LONG") (assumes DA(1) is DFN!)
    65         N INSTITU,DFN,DFNID,SSNID,IHSID D GETALL
    66         S X=$S($G(IHSID("L"))'?."-":IHSID("L"),$G(SSNID("L"))'?."-":SSNID("L"),$G(DFNID("L"))'?."-":DFNID("L"),1:"")
    67         ;I X="" W 1/0  ;some LONGID must exist for a patient, else ERROR!
    68         Q
    69         ;
    70         ;
    71 SHORTID ;Called by ^DIC(8.2,2,"SHORT") (assumes DA(1) is DFN!)
    72         N INSTITU,DFN,DFNID,SSNID,IHSID D GETALL
    73         S X=$S($G(IHSID("S"))'?."-":IHSID("S"),$G(SSNID("S"))'?."-":SSNID("S"),$G(DFNID("S"))'?."-":DFNID("S"),1:"")
    74         ;I X="" W 1/0  ;some SHORTID must exist for a patient, else ERROR!
    75         Q
    76         ;
    77         ;
    78 IHSID   ;
    79         ;given INSTITU (current institution #)
    80         ;get HEALTH RECORD NUMBER (Multiple 4101, 9000001.41) associated
    81         ;with the institution
    82         S IHSID=$P($G(^AUPNPAT(DFN,41,+INSTITU,0)),"^",2)
    83         I IHSID'="" D
    84         . S IHSID("L")=IHSID ; $J(IHSID,12) ; if we want to zero pad then $TR($J(IHSID("L"),12)," ",0)
    85         . S IHSID("S")=$TR(IHSID("L"),$TR(IHSID("L"),9876543210))
    86         . S IHSID("S")=$TR($J(IHSID("S"),4)," ",0)
    87         . S IHSID("S")=$E(IHSID("S"),$L(IHSID("S"))-3,$L(IHSID("S")))
    88         ;now return Health Record Number
    89         Q
    90 DFNID   S DFN=DA(1) ; IEN in patient file, with default institution from
    91         ;kernel system parameters file as prefix.
    92         ;8989.3,217    DEFAULT INSTITUTION of #8989.3 -- KERNEL SYSTEM PARAMETERS FILE
    93         S INSTITU=$P($G(^XTV(8989.3,1,"XUS")),U,17)
    94         ;150.9  VISIT TRACKING PARAMETERS :: DEFAULT INSTITUTION:
    95         I INSTITU="",$P($G(^DIC(150.9,1,0)),U,4)'="" S INSTITU=$P(^(0),U,4)
    96         ; if we have a medical record number in IHS PATIENT, for this
    97         I INSTITU'="",$P($G(^DIC(4,+INSTITU,99)),U)'="" S INSTITU("STA#")=$P(^(99),U)
    98         ; now put INSTITUtion STATION NUMBER as prefix to DFN as "DFNID"
    99         S DFNID("S")="`"_DFN,DFNID("L")=999_"-`"_DFN S:$D(INSTITU("STA#"))#2 DFNID("L")=INSTITU("STA#")_"-`"_DFN
    100         Q
    101 SSNID   ;
    102         ;code scarfed from ^DIC(8.2,1,"LONG") - retrieving the SSN
    103         N X
    104         S SSNID("L")="" I $D(DFN),$D(^DPT(DFN,0)) S X=$P(^(0),U,9),SSNID("L")=$E(X,1,3)_"-"_$E(X,4,5)_"-"_$E(X,6,10)
    105         S SSNID("S")=$P(SSNID("L"),"-",3)
    106         Q
    107 GETALL  ;
    108         ;Utility Subroutine to Getall the variables
    109         D DFNID,IHSID,SSNID
    110         ;K DFNID,SSNID ; kill because HRN is "required"
    111         Q
    112         ;
    113 ENALL   ;RE-INDEX PHONE NUMBER (KIDS POST-INSTALL DG*5.3*634)
    114         K ^DPT("AZVWVOE")
    115         N DIK S DIK="^DPT(",DIK(1)=".131^251000" D ENALL^DIK
    116         Q
     1DGLBPID ;DJW,TOAD; Health Record Number Identifier ;5/1/07  20:26
     2 ;;5.3;Registration;**634**;Aug 13, 1993;Build 28
     3 ; Copyright (C) 2007 WorldVistA
     4 ;
     5 ; This program is free software; you can redistribute it and/or modify
     6 ; it under the terms of the GNU General Public License as published by
     7 ; the Free Software Foundation; either version 2 of the License, or
     8 ; (at your option) any later version.
     9 ;
     10 ; This program is distributed in the hope that it will be useful,
     11 ; but WITHOUT ANY WARRANTY; without even the implied warranty of
     12 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     13 ; GNU General Public License for more details.
     14 ;
     15 ; You should have received a copy of the GNU General Public License
     16 ; along with this program; if not, write to the Free Software
     17 ; Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
     18 ;'Modified' MAS Patient Look-up Check Cross-References June 1987
     19 Q
     20 ;
     21 ;
     22ID(DFN) ;GFT/VW  IA 10035
     23 N ID S ID=$P($G(^DPT(DFN,.36)),U,3) ;PRIMARY LONG ID
     24 I ID="" S ID=$$HRN(DFN)
     25 I ID="" S ID=$P($G(^DPT(DFN,0)),U,9) I ID]"" S ID=$E(ID,1,3)_"-"_$E(ID,4,5)_"-"_$E(ID,6,99)
     26 I ID="" D
     27 .N I F I=0:0 S I=$O(^AUPNPAT(DFN,41,I)) Q:'I  I $P($G(^(I,0)),U,5)="" S ID=$P($G(^(0)),U,2) I ID]"" S ID=ID_" ("_$P($G(^DIC(4,I,0)),U,5)_")" Q
     28 I ID="" S ID="`"_DFN
     29 Q ID
     30 ;
     31 ;
     32 ;
     33 ;
     34HRN(DFN) ;LOOKUP HEALTH RECORD NUMBER
     35 I '$G(DUZ(2)) Q ""
     36 Q $P($G(^AUPNPAT(DFN,41,DUZ(2),0)),U,2)
     37 ;
     38 ;
     39GOTIDQ(DFN) ;Do we have the needed number for this guy?
     40 N T S T=$$REQID(DFN)
     41 I T="SSN" Q $P(^DPT(DFN,0),U,9)]""
     42 I T="HRN" Q:'$G(DUZ(2)) 0 Q $P($G(^AUPNPAT(DFN,41,DUZ(2),0)),U,2)]""
     43 Q 1
     44 ;
     45 ;
     46REQID(DFN) ;WHICH IDENTIFICATION FORMAT IS REQUIRED?
     47 N TYPE S TYPE=""
     48 D:$G(DFN)
     49 .S TYPE=+$G(^DPT(DFN,.361)) I TYPE S TYPE=$P($G(^DIC(8,TYPE,0)),U,9) ;try PRIMARY ELIGIBILITY CODE
     50 .I TYPE="" S TYPE=+$G(^DPT(DFN,"TYPE")) I TYPE S TYPE=+$G(^DG(391,TYPE,8.2)) ;try patient TYPE
     51 I 'TYPE S TYPE=$G(DUZ("AG")),TYPE=$S(TYPE="V":1,1:2) ;or just assume it's HRN if not VA
     52 Q $P("SSN^HRN",U,TYPE)
     53 ;
     54 ;
     55IDCAP() ;Returns 3 characters: " ID" or "SSN"
     56 I $G(DUZ("AG"))="E" Q " ID"
     57 Q "SSN"
     58 ;
     59 ;
     60 ;
     61 ;
     62 ;
     63 ;
     64LONGID ;Called by ^DIC(8.2,2,"LONG") (assumes DA(1) is DFN!)
     65 N INSTITU,DFN,DFNID,SSNID,IHSID D GETALL
     66 S X=$S($G(IHSID("L"))'?."-":IHSID("L"),$G(SSNID("L"))'?."-":SSNID("L"),$G(DFNID("L"))'?."-":DFNID("L"),1:"")
     67 ;I X="" W 1/0  ;some LONGID must exist for a patient, else ERROR!
     68 Q
     69 ;
     70 ;
     71SHORTID ;Called by ^DIC(8.2,2,"SHORT") (assumes DA(1) is DFN!)
     72 N INSTITU,DFN,DFNID,SSNID,IHSID D GETALL
     73 S X=$S($G(IHSID("S"))'?."-":IHSID("S"),$G(SSNID("S"))'?."-":SSNID("S"),$G(DFNID("S"))'?."-":DFNID("S"),1:"")
     74 ;I X="" W 1/0  ;some SHORTID must exist for a patient, else ERROR!
     75 Q
     76 ;
     77 ;
     78IHSID ;
     79 ;given INSTITU (current institution #)
     80 ;get HEALTH RECORD NUMBER (Multiple 4101, 9000001.41) associated
     81 ;with the institution
     82 S IHSID=$P($G(^AUPNPAT(DFN,41,+INSTITU,0)),"^",2)
     83 I IHSID'="" D
     84 . S IHSID("L")=IHSID ; $J(IHSID,12) ; if we want to zero pad then $TR($J(IHSID("L"),12)," ",0)
     85 . S IHSID("S")=$TR(IHSID("L"),$TR(IHSID("L"),9876543210))
     86 . S IHSID("S")=$TR($J(IHSID("S"),4)," ",0)
     87 . S IHSID("S")=$E(IHSID("S"),$L(IHSID("S"))-3,$L(IHSID("S")))
     88 ;now return Health Record Number
     89 Q
     90DFNID S DFN=DA(1) ; IEN in patient file, with default institution from
     91 ;kernel system parameters file as prefix.
     92 ;8989.3,217    DEFAULT INSTITUTION of #8989.3 -- KERNEL SYSTEM PARAMETERS FILE
     93 S INSTITU=$P($G(^XTV(8989.3,1,"XUS")),U,17)
     94 ;150.9  VISIT TRACKING PARAMETERS :: DEFAULT INSTITUTION:
     95 I INSTITU="",$P($G(^DIC(150.9,1,0)),U,4)'="" S INSTITU=$P(^(0),U,4)
     96 ; if we have a medical record number in IHS PATIENT, for this
     97 I INSTITU'="",$P($G(^DIC(4,+INSTITU,99)),U)'="" S INSTITU("STA#")=$P(^(99),U)
     98 ; now put INSTITUtion STATION NUMBER as prefix to DFN as "DFNID"
     99 S DFNID("S")="`"_DFN,DFNID("L")=999_"-`"_DFN S:$D(INSTITU("STA#"))#2 DFNID("L")=INSTITU("STA#")_"-`"_DFN
     100 Q
     101SSNID ;
     102 ;code scarfed from ^DIC(8.2,1,"LONG") - retrieving the SSN
     103 N X
     104 S SSNID("L")="" I $D(DFN),$D(^DPT(DFN,0)) S X=$P(^(0),U,9),SSNID("L")=$E(X,1,3)_"-"_$E(X,4,5)_"-"_$E(X,6,10)
     105 S SSNID("S")=$P(SSNID("L"),"-",3)
     106 Q
     107GETALL ;
     108 ;Utility Subroutine to Getall the variables
     109 D DFNID,IHSID,SSNID
     110 ;K DFNID,SSNID ; kill because HRN is "required"
     111 Q
     112 ;
     113ENALL ;RE-INDEX PHONE NUMBER (KIDS POST-INSTALL DG*5.3*634)
     114 K ^DPT("AZVWVOE")
     115 N DIK S DIK="^DPT(",DIK(1)=".131^251000" D ENALL^DIK
     116 Q
Note: See TracChangeset for help on using the changeset viewer.