Ignore:
Timestamp:
May 11, 2012, 6:06:25 PM (13 years ago)
Author:
Sam Habiel
Message:

Update of all routines

File:
1 edited

Legend:

Unmodified
Added
Removed
  • ccr/branches/ohum/p/C0CVA200.m

    r1342 r1428  
    1 C0CVA200 ;WV/C0C/SMH - Routine to get Provider Data;07/13/2008
    2  ;;1.0;C0C;;May 19, 2009;Build 2
    3  ;Copyright 2008 Sam Habiel.  Licensed under the terms of the GNU
    4  ;General Public License See attached copy of the License.
    5  ;
    6  ;This program is free software; you can redistribute it and/or modify
    7  ;it under the terms of the GNU General Public License as published by
    8  ;the Free Software Foundation; either version 2 of the License, or
    9  ;(at your option) any later version.
    10  ;
    11  ;This program is distributed in the hope that it will be useful,
    12  ;but WITHOUT ANY WARRANTY; without even the implied warranty of
    13  ;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    14  ;GNU General Public License for more details.
    15  ;
    16  ;You should have received a copy of the GNU General Public License along
    17  ;with this program; if not, write to the Free Software Foundation, Inc.,
    18  ;51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
    19  Q
    20  ; This routine uses Kernel APIs and Direct Global Access to get
    21  ; Proivder Data from File 200.
    22  ;
    23   ; The Global is VA(200,*)
    24   ;
    25 FAMILY(DUZ) ; Get Family Name; PUBLIC; EXTRINSIC
    26   ; INPUT: DUZ (i.e. File 200 IEN) ByVal
    27   ; OUTPUT: String
    28   N NAME S NAME=$P(^VA(200,DUZ,0),U)
    29   D NAMECOMP^XLFNAME(.NAME)
    30   Q NAME("FAMILY")
    31   ;
    32 GIVEN(DUZ) ; Get Given Name; PUBLIC; EXTRINSIC
    33   ; INPUT: DUZ ByVal
    34   ; OUTPUT: String
    35   N NAME S NAME=$P(^VA(200,DUZ,0),U)
    36   D NAMECOMP^XLFNAME(.NAME)
    37   Q NAME("GIVEN")
    38   ;
    39 MIDDLE(DUZ) ; Get Middle Name, PUBLIC; EXTRINSIC
    40   ; INPUT: DUZ ByVal
    41   ; OUTPUT: String
    42   N NAME S NAME=$P(^VA(200,DUZ,0),U)
    43   D NAMECOMP^XLFNAME(.NAME)
    44   Q NAME("MIDDLE")
    45   ;
    46 SUFFIX(DUZ) ; Get Suffix Name, PUBLIC; EXTRINSIC
    47   ; INPUT: DUZ ByVal
    48   ; OUTPUT: String
    49   N NAME S NAME=$P(^VA(200,DUZ,0),U)
    50   D NAMECOMP^XLFNAME(.NAME)
    51   Q NAME("SUFFIX")
    52   ;
    53 TITLE(DUZ) ; Get Title for Proivder, PUBLIC; EXTRINSIC
    54   ; INPUT: DUZ ByVal
    55   ; OUTPUT: String
    56   ; Gets External Value of Title field in New Person File.
    57   ; It's actually a pointer to file 3.1
    58   ; 200=New Person File; 8 is Title Field
    59   Q $$GET1^DIQ(200,DUZ_",",8)
    60   ;
    61 NPI(DUZ) ; Get NPI Number, PUBLIC; EXTRINSIC
    62   ; INPUT: DUZ ByVal
    63   ; OUTPUT: Delimited String in format:
    64   ; IDType^ID^IDDescription
    65   ; If the NPI doesn't exist, "" is returned.
    66   ; This routine uses a call documented in the Kernel dev guide
    67   ; This call returns as "NPI^TimeEntered^ActiveInactive"
    68   ; It returns -1 for NPI if NPI doesn't exist.
    69   N NPI S NPI=$P($$NPI^XUSNPI("Individual_ID",DUZ),U)
    70   Q:NPI=-1 ""
    71   Q "NPI^"_NPI_"^HHS"
    72   ;
    73 SPEC(DUZ) ; Get Provider Specialty, PUBLIC; EXTRINSIC
    74   ; INPUT: DUZ ByVal
    75   ; OUTPUT: String: ProviderType/Specialty/Subspecialty OR ""
    76   ; Uses a Kernel API. Returns -1 if a specialty is not specified
    77   ; in file 200.
    78   ; Otherwise, returns IEN^Profession^Specialty^Sub­specialty^Effect date^Expired date^VA code
    79   N STR S STR=$$GET^XUA4A72(DUZ)
    80   Q:+STR<0 ""
    81   ; Sometimes we have 3 pieces, or 2. Deal with that.
    82   Q:$L($P(STR,U,4)) $P(STR,U,2)_"-"_$P(STR,U,3)_"-"_$P(STR,U,4)
    83   Q $P(STR,U,2)_"-"_$P(STR,U,3)
    84   ;
    85 ADDTYPE(DUZ) ; Get Address Type, PUBLIC; EXTRINSIC
    86   ; INPUT: DUZ, but not needed really... here for future expansion
    87   ; OUTPUT: At this point "Work"
    88   Q "Work"
    89   ;
    90 ADDLINE1(ADUZ) ; Get Address associated with this instituation; PUBLIC; EXTRINSIC ; CHANGED PARAMETER TO ADUZ TO KEEP FROM CRASHING GPL 1/09
    91   ; INPUT: DUZ ByVal
    92   ; Output: String.
    93   ;
    94   ; First, get site number from the institution file.
    95   ; 1st piece returned by $$SITE^VASITE, which gets the system institution
    96   N INST S INST=$P($$SITE^VASITE(),U)
    97   ;
    98   ; Second, get mailing address
    99   ; There are two APIs to get the address, one for physical and one for
    100   ; mailing. We will check if mailing exists first, since that's the
    101   ; one we want to use; then check for physical. If neither exists,
    102   ; then we return nothing. We check for the existence of an address
    103   ; by the length of the returned string.
    104   ; NOTE: API doesn't support Address 2, so I won't even include it
    105   ; in the template.
    106   N ADD
    107   S ADD=$$MADD^XUAF4(INST) ; mailing address
    108   Q:$L(ADD) $P(ADD,U)
    109   S ADD=$$PADD^XUAF4(INST) ; physical address
    110   Q:$L(ADD) $P(ADD,U)
    111   Q ""
    112   ;
    113 CITY(ADUZ) ; Get City for Institution. PUBLIC; EXTRINSIC
    114     ;GPL CHANGED PARAMETER TO ADUZ TO KEEP $$SITE^VASITE FROM CRASHING
    115   ; INPUT: DUZ ByVal
    116   ; Output: String.
    117   ; See ADD1 for comments
    118   N INST S INST=$P($$SITE^VASITE(),U)
    119   N ADD
    120   S ADD=$$MADD^XUAF4(INST) ; mailing address
    121   Q:$L(ADD) $P(ADD,U,2)
    122   S ADD=$$PADD^XUAF4(INST) ; physical address
    123   Q:$L(ADD) $P(ADD,U,2)
    124   Q ""
    125   ;
    126 STATE(ADUZ) ; Get State for Institution. PUBLIC; EXTRINSIC
    127   ; INPUT: DUZ ByVal
    128   ; Output: String.
    129   ; See ADD1 for comments
    130   N INST S INST=$P($$SITE^VASITE(),U)
    131   N ADD
    132   S ADD=$$MADD^XUAF4(INST) ; mailing address
    133   Q:$L(ADD) $P(ADD,U,3)
    134   S ADD=$$PADD^XUAF4(INST) ; physical address
    135   Q:$L(ADD) $P(ADD,U,3)
    136   Q ""
    137   ;
    138 POSTCODE(ADUZ) ; Get Postal Code for Institution. PUBLIC; EXTRINSIC
    139   ; INPUT: DUZ ByVal
    140   ; OUTPUT: String.
    141   ; See ADD1 for comments
    142   N INST S INST=$P($$SITE^VASITE(),U)
    143   N ADD
    144   S ADD=$$MADD^XUAF4(INST) ; mailing address
    145   Q:$L(ADD) $P(ADD,U,4)
    146   S ADD=$$PADD^XUAF4(INST) ; physical address
    147   Q:$L(ADD) $P(ADD,U,4)
    148   Q ""
    149   ;
    150 TEL(DUZ) ; Get Office Phone number. PUBLIC; EXTRINSIC
    151   ; INPUT: DUZ ByVal
    152   ; OUTPUT: String.
    153   ; Direct global access
    154   N TEL S TEL=$G(^VA(200,DUZ,.13))
    155   Q $P(TEL,U,2)
    156   ;
    157 TELTYPE(DUZ) ; Get Telephone Type. PUBLIC; EXTRINSIC
    158   ; INPUT: DUZ ByVal
    159   ; OUTPUT: String.
    160   Q "Office"
    161   ;
    162 EMAIL(DUZ) ; Get Provider's Email. PUBLIC; EXTRINSIC
    163   ; INPUT: DUZ ByVal
    164   ; OUTPUT: String
    165   ; Direct global access
    166   N EMAIL S EMAIL=$G(^VA(200,DUZ,.15))
    167   Q $P(EMAIL,U)
    168   ;
     1C0CVA200        ;WV/C0C/SMH - Routine to get Provider Data;07/13/2008
     2        ;;1.2;C0C;;May 11, 2012;Build 46
     3        ;Copyright 2008 Sam Habiel.  Licensed under the terms of the GNU
     4        ;General Public License See attached copy of the License.
     5        ;
     6        ;This program is free software; you can redistribute it and/or modify
     7        ;it under the terms of the GNU General Public License as published by
     8        ;the Free Software Foundation; either version 2 of the License, or
     9        ;(at your option) any later version.
     10        ;
     11        ;This program is distributed in the hope that it will be useful,
     12        ;but WITHOUT ANY WARRANTY; without even the implied warranty of
     13        ;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     14        ;GNU General Public License for more details.
     15        ;
     16        ;You should have received a copy of the GNU General Public License along
     17        ;with this program; if not, write to the Free Software Foundation, Inc.,
     18        ;51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
     19        Q
     20        ; This routine uses Kernel APIs and Direct Global Access to get
     21        ; Proivder Data from File 200.
     22        ;
     23        ; The Global is VA(200,*)
     24        ;
     25FAMILY(DUZ)     ; Get Family Name; PUBLIC; EXTRINSIC
     26        ; INPUT: DUZ (i.e. File 200 IEN) ByVal
     27        ; OUTPUT: String
     28        N NAME S NAME=$P(^VA(200,DUZ,0),U)
     29        D NAMECOMP^XLFNAME(.NAME)
     30        Q NAME("FAMILY")
     31        ;
     32GIVEN(DUZ)      ; Get Given Name; PUBLIC; EXTRINSIC
     33        ; INPUT: DUZ ByVal
     34        ; OUTPUT: String
     35        N NAME S NAME=$P(^VA(200,DUZ,0),U)
     36        D NAMECOMP^XLFNAME(.NAME)
     37        Q NAME("GIVEN")
     38        ;
     39MIDDLE(DUZ)     ; Get Middle Name, PUBLIC; EXTRINSIC
     40        ; INPUT: DUZ ByVal
     41        ; OUTPUT: String
     42        N NAME S NAME=$P(^VA(200,DUZ,0),U)
     43        D NAMECOMP^XLFNAME(.NAME)
     44        Q NAME("MIDDLE")
     45        ;
     46SUFFIX(DUZ)     ; Get Suffix Name, PUBLIC; EXTRINSIC
     47        ; INPUT: DUZ ByVal
     48        ; OUTPUT: String
     49        N NAME S NAME=$P(^VA(200,DUZ,0),U)
     50        D NAMECOMP^XLFNAME(.NAME)
     51        Q NAME("SUFFIX")
     52        ;
     53TITLE(DUZ)      ; Get Title for Proivder, PUBLIC; EXTRINSIC
     54        ; INPUT: DUZ ByVal
     55        ; OUTPUT: String
     56        ; Gets External Value of Title field in New Person File.
     57        ; It's actually a pointer to file 3.1
     58        ; 200=New Person File; 8 is Title Field
     59        Q $$GET1^DIQ(200,DUZ_",",8)
     60        ;
     61NPI(DUZ)        ; Get NPI Number, PUBLIC; EXTRINSIC
     62        ; INPUT: DUZ ByVal
     63        ; OUTPUT: Delimited String in format:
     64        ; IDType^ID^IDDescription
     65        ; If the NPI doesn't exist, "" is returned.
     66        ; This routine uses a call documented in the Kernel dev guide
     67        ; This call returns as "NPI^TimeEntered^ActiveInactive"
     68        ; It returns -1 for NPI if NPI doesn't exist.
     69        N NPI S NPI=$P($$NPI^XUSNPI("Individual_ID",DUZ),U)
     70        Q:NPI=-1 ""
     71        Q "NPI^"_NPI_"^HHS"
     72        ;
     73SPEC(DUZ)       ; Get Provider Specialty, PUBLIC; EXTRINSIC
     74        ; INPUT: DUZ ByVal
     75        ; OUTPUT: String: ProviderType/Specialty/Subspecialty OR ""
     76        ; Uses a Kernel API. Returns -1 if a specialty is not specified
     77        ; in file 200.
     78        ; Otherwise, returns IEN^Profession^Specialty^Sub­specialty^Effect date^Expired date^VA code
     79        N STR S STR=$$GET^XUA4A72(DUZ)
     80        Q:+STR<0 ""
     81        ; Sometimes we have 3 pieces, or 2. Deal with that.
     82        Q:$L($P(STR,U,4)) $P(STR,U,2)_"-"_$P(STR,U,3)_"-"_$P(STR,U,4)
     83        Q $P(STR,U,2)_"-"_$P(STR,U,3)
     84        ;
     85ADDTYPE(DUZ)    ; Get Address Type, PUBLIC; EXTRINSIC
     86        ; INPUT: DUZ, but not needed really... here for future expansion
     87        ; OUTPUT: At this point "Work"
     88        Q "Work"
     89        ;
     90ADDLINE1(ADUZ)  ; Get Address associated with this instituation; PUBLIC; EXTRINSIC ; CHANGED PARAMETER TO ADUZ TO KEEP FROM CRASHING GPL 1/09
     91        ; INPUT: DUZ ByVal
     92        ; Output: String.
     93        ;
     94        ; First, get site number from the institution file.
     95        ; 1st piece returned by $$SITE^VASITE, which gets the system institution
     96        N INST S INST=$P($$SITE^VASITE(),U)
     97        ;
     98        ; Second, get mailing address
     99        ; There are two APIs to get the address, one for physical and one for
     100        ; mailing. We will check if mailing exists first, since that's the
     101        ; one we want to use; then check for physical. If neither exists,
     102        ; then we return nothing. We check for the existence of an address
     103        ; by the length of the returned string.
     104        ; NOTE: API doesn't support Address 2, so I won't even include it
     105        ; in the template.
     106        N ADD
     107        S ADD=$$MADD^XUAF4(INST) ; mailing address
     108        Q:$L(ADD) $P(ADD,U)
     109        S ADD=$$PADD^XUAF4(INST) ; physical address
     110        Q:$L(ADD) $P(ADD,U)
     111        Q ""
     112        ;
     113CITY(ADUZ)      ; Get City for Institution. PUBLIC; EXTRINSIC
     114           ;GPL CHANGED PARAMETER TO ADUZ TO KEEP $$SITE^VASITE FROM CRASHING
     115        ; INPUT: DUZ ByVal
     116        ; Output: String.
     117        ; See ADD1 for comments
     118        N INST S INST=$P($$SITE^VASITE(),U)
     119        N ADD
     120        S ADD=$$MADD^XUAF4(INST) ; mailing address
     121        Q:$L(ADD) $P(ADD,U,2)
     122        S ADD=$$PADD^XUAF4(INST) ; physical address
     123        Q:$L(ADD) $P(ADD,U,2)
     124        Q ""
     125        ;
     126STATE(ADUZ)     ; Get State for Institution. PUBLIC; EXTRINSIC
     127        ; INPUT: DUZ ByVal
     128        ; Output: String.
     129        ; See ADD1 for comments
     130        N INST S INST=$P($$SITE^VASITE(),U)
     131        N ADD
     132        S ADD=$$MADD^XUAF4(INST) ; mailing address
     133        Q:$L(ADD) $P(ADD,U,3)
     134        S ADD=$$PADD^XUAF4(INST) ; physical address
     135        Q:$L(ADD) $P(ADD,U,3)
     136        Q ""
     137        ;
     138POSTCODE(ADUZ)  ; Get Postal Code for Institution. PUBLIC; EXTRINSIC
     139        ; INPUT: DUZ ByVal
     140        ; OUTPUT: String.
     141        ; See ADD1 for comments
     142        N INST S INST=$P($$SITE^VASITE(),U)
     143        N ADD
     144        S ADD=$$MADD^XUAF4(INST) ; mailing address
     145        Q:$L(ADD) $P(ADD,U,4)
     146        S ADD=$$PADD^XUAF4(INST) ; physical address
     147        Q:$L(ADD) $P(ADD,U,4)
     148        Q ""
     149        ;
     150TEL(DUZ)        ; Get Office Phone number. PUBLIC; EXTRINSIC
     151        ; INPUT: DUZ ByVal
     152        ; OUTPUT: String.
     153        ; Direct global access
     154        N TEL S TEL=$G(^VA(200,DUZ,.13))
     155        Q $P(TEL,U,2)
     156        ;
     157TELTYPE(DUZ)    ; Get Telephone Type. PUBLIC; EXTRINSIC
     158        ; INPUT: DUZ ByVal
     159        ; OUTPUT: String.
     160        Q "Office"
     161        ;
     162EMAIL(DUZ)      ; Get Provider's Email. PUBLIC; EXTRINSIC
     163        ; INPUT: DUZ ByVal
     164        ; OUTPUT: String
     165        ; Direct global access
     166        N EMAIL S EMAIL=$G(^VA(200,DUZ,.15))
     167        Q $P(EMAIL,U)
     168        ;
Note: See TracChangeset for help on using the changeset viewer.