1 | IBCNEUT8 ;DAOU/AM - IIV MISC. UTILITIES ;12-JUN-2002
|
---|
2 | ;;2.0;INTEGRATED BILLING;**184**;21-MAR-94
|
---|
3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | ;
|
---|
5 | ; This routine includes subroutines originally included in IBCNEUT3
|
---|
6 | ; and referenced by IBCNEUT3 and IBCNEUT4.
|
---|
7 | ;
|
---|
8 | ; INSIEN returns an array of matching insurance IENs based upon the
|
---|
9 | ; provided Insurance Name.
|
---|
10 | ;
|
---|
11 | ; FINDPAY returns the National IDs for all provided active insurance
|
---|
12 | ; companies.
|
---|
13 | ;
|
---|
14 | ; ERROR returns the IEN of the symbol mnemonice passed to it and updates
|
---|
15 | ; an array of items to display, if passed.
|
---|
16 | ;
|
---|
17 | ; Can't be called from the top
|
---|
18 | Q
|
---|
19 | ;
|
---|
20 | ;
|
---|
21 | INSIEN(INSNAME,INSIEN) ; Subroutine to find all ins co IENs
|
---|
22 | ; matching a given ins co name
|
---|
23 | ; Input parameter: INSNAME - Ins co name to find IENs for
|
---|
24 | ; Output parameter: INSIEN - array of ins co IENs that
|
---|
25 | ; match the passed ins co name, passed by reference
|
---|
26 | ; If the array is defined at the time this subroutine is called,
|
---|
27 | ; then it will add to the data that pre-exists in the array
|
---|
28 | ;
|
---|
29 | N NAME
|
---|
30 | ; Loop through the ins co names starting with a space (" ")
|
---|
31 | ; looking for matching names
|
---|
32 | S NAME=" " F S NAME=$O(^DIC(36,"B",NAME)) Q:$E(NAME,1)'=" " D
|
---|
33 | . ;I $$TRIM^XLFSTR(NAME)=INSNAME M INSIEN=^DIC(36,"B",NAME)
|
---|
34 | . I $$TRIM^XLFSTR(NAME)=INSNAME D
|
---|
35 | . . N %X,%Y
|
---|
36 | . . S %X="^DIC(36,""B"",NAME,"
|
---|
37 | . . S %Y="INSIEN("
|
---|
38 | . . I $D(^DIC(36,"B",NAME))#10=1 S INSIEN=^DIC(36,"B",NAME)
|
---|
39 | . . D %XY^%RCR K %X,%Y
|
---|
40 | ;
|
---|
41 | ; Retrieve the ins co names from the Ins Buffer
|
---|
42 | ; starting with the entry prior to the ins co name in
|
---|
43 | ; the Buffer and look for ins co name matches
|
---|
44 | S NAME=$O(^DIC(36,"B",INSNAME),-1)
|
---|
45 | F S NAME=$O(^DIC(36,"B",NAME)) Q:$E(NAME,1,$L(INSNAME))'=INSNAME D
|
---|
46 | . ;I $$TRIM^XLFSTR(NAME)=INSNAME M INSIEN=^DIC(36,"B",NAME)
|
---|
47 | . I $$TRIM^XLFSTR(NAME)=INSNAME D
|
---|
48 | . . N %X,%Y
|
---|
49 | . . S %X="^DIC(36,""B"",NAME,"
|
---|
50 | . . S %Y="INSIEN("
|
---|
51 | . . I $D(^DIC(36,"B",NAME))#10=1 S INSIEN=^DIC(36,"B",NAME)
|
---|
52 | . . D %XY^%RCR K %X,%Y
|
---|
53 | ;
|
---|
54 | Q
|
---|
55 | ;
|
---|
56 | FINDPAY(INSIEN,PAYID) ; Find National IDs for an array of ins co IENs
|
---|
57 | ; Input parameter: INSIEN - Array of ins co IENs
|
---|
58 | ; Output parameter: PAYID - Array of National IDs
|
---|
59 | N PAYIEN,IEN
|
---|
60 | S IEN=0 F S IEN=$O(INSIEN(IEN)) Q:'IEN D
|
---|
61 | . ; Discard INACTIVE ins companies from the array
|
---|
62 | . I '$$ACTIVE^IBCNEUT4(IEN) K INSIEN(IEN) Q
|
---|
63 | . ; Retrieve the Payer IEN for this ins co IEN
|
---|
64 | . S PAYIEN=$P($G(^DIC(36,IEN,3)),U,10)
|
---|
65 | . I 'PAYIEN Q
|
---|
66 | . ; Retrieve the National ID for this ins co IEN
|
---|
67 | . S PAYID=$P($G(^IBE(365.12,PAYIEN,0)),U,2)
|
---|
68 | . I PAYID'="" S PAYID(PAYID)=IEN
|
---|
69 | Q
|
---|
70 | ;
|
---|
71 | ERROR(ERRCODE,ERRTEXT,MULTI) ; Function to return the IEN of the Symbol
|
---|
72 | ; file entry and error text - also adds error data to ARRAY
|
---|
73 | ; Input parameters: ERRCODE - Symbol mnemonic ("B1", "B2", etc)
|
---|
74 | ; ERRTEXT - Optional additional error text
|
---|
75 | ; MULTI - Optional array of items to display
|
---|
76 | ; Output parameters: ARRAY - Updated by this function
|
---|
77 | ; Function value - Symbol IEN
|
---|
78 | NEW %,DISYS,DIW,DIWI,DIWT,DIWTC,DIWX,DN,ERRARR,I,SYMIEN,Z
|
---|
79 | ; If an optional array of items to display was passed in, add it
|
---|
80 | I $G(ERRTEXT)'="",$D(MULTI) S ERRTEXT=$$MULTNAME^IBCNEUT4(ERRTEXT,.MULTI)
|
---|
81 | S SYMIEN=$$FIND1^DIC(365.15,,"X",$G(ERRCODE))
|
---|
82 | ; call an IB utility to parse ERRTEXT into lines of acceptable length
|
---|
83 | D FSTRNG^IBJU1($G(ERRTEXT),70,.ERRARR)
|
---|
84 | ; Update the line counter in the error array
|
---|
85 | S ARRAY=$G(ARRAY)+1
|
---|
86 | ; Merge the error text array returned by the IB utility in
|
---|
87 | M ARRAY(ARRAY)=ERRARR
|
---|
88 | ; Reset the error-specific node of the error array to follow the
|
---|
89 | ; published input/output parameter format
|
---|
90 | S ARRAY(ARRAY)=SYMIEN_U_ERRARR
|
---|
91 | Q SYMIEN
|
---|
92 | ;
|
---|