source: FOIAVistA/trunk/r/HEALTH_DATA_AND_INFORMATICS-HDI/HDISVS02.m@ 812

Last change on this file since 812 was 628, checked in by George Lilly, 15 years ago

initial load of FOIAVistA 6/30/08 version

File size: 3.2 KB
Line 
1HDISVS02 ;BPFO/JRP - PROCESS RECEIVED XML DATA;12/20/2004
2 ;;1.0;HEALTH DATA & INFORMATICS;;Feb 22, 2005
3 ;
4TERM(DATA,EINDX,AINDX,SYSPTR,FFPTR,ERRARR) ;Process 'Term' portion of XML document
5 ; Input : DATA - Array reference from which the 'File' element
6 ; begins (closed root)
7 ; EINDX - Element index array (closed root)
8 ; AINDX - Attribute index array (closed root)
9 ; SYSPTR - Pointer to HDIS SYSTEM file (#7118.21)
10 ; FFPTR - Pointer to HDIS FILE/FIELD file (#7115.6)
11 ; Derived from 'FileNumber' & 'FieldNumber' element
12 ; ERRARR - Error array (closed root)
13 ;Output : None
14 ; @ERRARR@(x) = Error text (if applicable)
15 ; Notes : Existance/validity of input assumed (internal call)
16 N INDX,REP,TERM,IREF,VUID,TMP,OOPS,TERMPTR,FILEARR,X
17 S INDX=@EINDX@("Term")
18 S REP=0
19 F S REP=+$O(@DATA@(INDX,REP)) Q:'REP D
20 .S OOPS=0
21 .S TERMPTR=0
22 .;Get elements
23 .S TERM=$G(@DATA@(INDX,REP,@EINDX@("TermName"),1,"V"))
24 .S IREF=$G(@DATA@(INDX,REP,@EINDX@("FacilityInternalReference"),1,"V"))
25 .S VUID=$G(@DATA@(INDX,REP,@EINDX@("VUID"),1,"V"))
26 .;Validate elements
27 .;VUID allowed to be null (in most cases they are)
28 .F TMP="TERM","IREF" I $G(@TMP)="" D
29 ..S Y="TermName"
30 ..I TMP="IREF" S Y="FacilityInternalReference"
31 ..S X="XML element '"_Y_"' for repetition number "_REP_" of 'Term' "
32 ..I TMP="TERM" S X="Repetition number "_REP_" of XML element 'Term' "
33 ..I TMP'="TERM" S X=X_"("_TERM_") "
34 ..S X=X_"did not have a value"
35 ..D ADDERR^HDISVC00(X,ERRARR)
36 ..S OOPS=1
37 .;Problem found - quit
38 .I OOPS Q
39 .;VUID passed - ignore
40 .I VUID'="" Q
41 .;Convert term to upper case
42 .S TERM=$$UP^XLFSTR(TERM)
43 .;Known term/concept
44 .K FILEARR
45 .S FILEARR(FFPTR)=""
46 .K TERMPTR
47 .I $$GETTERM^HDISVF04(TERM,.FILEARR,.TERMPTR) D
48 ..;Get VUID
49 ..S VUID=""
50 ..S X=$$GETVUID^HDISVF04(TERMPTR,.VUID)
51 ..;Make sure VUID has a value
52 ..I VUID="" D
53 ...S X="Entry number "_TERMPTR_" in HDIS TERM/CONCEPT VUID "
54 ...S X=X_"ASSOCIATION file (#7118.11) does not have a VUID."
55 ...S X=X_" Repetition "_REP_" of 'Term' ("_TERM_")."
56 ...D ADDERR^HDISVC00(X,ERRARR)
57 ...S OOPS=1
58 .;Problem found - quit
59 .I OOPS Q
60 .;Assign non-standard VUID
61 .I VUID="" D
62 ..;Calculate non-standard VUID
63 ..S VUID=$$CALCNSV^HDISVF03()
64 ..I VUID="" D Q
65 ...S TMP="Unable to calculate non-standard VUID for repetition number "
66 ...S TMP=TMP_REP_" of 'Term' ("_TERM_")"
67 ...D ADDERR^HDISVC00(TMP,ERRARR)
68 ...S OOPS=1
69 ..;Create entry in Term/Concept file
70 ..K FILEARR
71 ..S FILEARR(FFPTR)=""
72 ..K TERMPTR
73 ..I '$$ADDTERM^HDISVF04(TERM,VUID,.FILEARR,0,1,$$NOW^XLFDT(),0,.TERMPTR) D
74 ...S TMP="Unable to create entry in HDIS TERM/CONCEPT VUID "
75 ...S TMP=TMP_"ASSOCIATION file (#7118.11) for repetition number "
76 ...S TMP=TMP_REP_" of 'Term' ("_TERM_"). VUID was "_VUID_"."
77 ...D ADDERR^HDISVC00(TMP,ERRARR)
78 ...S OOPS=1
79 ..;Wait 1 second - resolve global cache problem
80 ..H 1
81 .;Problem found - quit
82 .I OOPS Q
83 .;Create entry in Facility Term/Concept file
84 .I '$$FINDFAC^HDISVF08(SYSPTR,FFPTR,TERMPTR,IREF,1) D
85 ..S TMP="Unable to create entry in HDIS FACILITY TERM/CONCEPT "
86 ..S TMP="ASSOCIATION file (#7118.22) for repetition number "_REP
87 ..S TMP=TMP_" of 'Term' ("_TERM_"). VUID was "_VUID_"."
88 ..D ADDERR^HDISVC00(TMP,ERRARR)
89 ..S OOPS=1
90 .;Problem found - quit
91 .I OOPS Q
92 Q
Note: See TracBrowser for help on using the repository browser.