[613] | 1 | XHDPCAT ; SLC/JER - Configurator Server Calls ; 25 Jul 2003 9:42 AM
|
---|
| 2 | ;;1.0;HEALTHEVET DESKTOP;;Jul 15, 2003
|
---|
| 3 | INSERT(ERR,CATFLDS) ; Insert ParameterCategory
|
---|
| 4 | N XHDI,FDA,LASTI,LASTS,LASTN,X,XHDDAD,NEWDA
|
---|
| 5 | S X="ONERROR^XHDPCAT",@^%ZOSF("TRAP")
|
---|
| 6 | S XHDI="",(ERR,LASTS,LASTN)=0,LASTI=1
|
---|
| 7 | F S XHDI=$O(CATFLDS(XHDI)) Q:+XHDI'>0 D
|
---|
| 8 | . S FDA($$GETFILE(XHDI),$$GETIENS(XHDI),$$GETORI(XHDI))=CATFLDS(XHDI)
|
---|
| 9 | I $D(FDA)'>9 S ERR="1^Request not well-formed." Q
|
---|
| 10 | D UPDATER(.ERR,.FDA) Q:+ERR
|
---|
| 11 | I '+ERR S NEWDA=$P(ERR,U,2)
|
---|
| 12 | ; If new record's parent doesn't include it as a subCategory, add it
|
---|
| 13 | S XHDDAD=+$P(^XHD(8935.91,NEWDA,0),U,4)
|
---|
| 14 | I +XHDDAD,'+$O(^XHD(8935.91,"SCAT",NEWDA,XHDDAD,0)) D Q:+ERR
|
---|
| 15 | . N FDA,SUBERR
|
---|
| 16 | . S FDA(8935.913,"?+1,"_XHDDAD_",",.01)=(+$O(^XHD(8935.91,1,3,"A"),-1)+1)
|
---|
| 17 | . S FDA(8935.913,"?+1,"_XHDDAD_",",.02)="`"_NEWDA
|
---|
| 18 | . D UPDATER(.SUBERR,.FDA) S:+SUBERR ERR=SUBERR
|
---|
| 19 | ; If there are subcategories, file NEWDA as their parentId
|
---|
| 20 | I +NEWDA D
|
---|
| 21 | . N XHDJ,SUBERR S XHDJ=0
|
---|
| 22 | . F S XHDJ=$O(^XHD(8935.91,NEWDA,3,XHDJ)) Q:+XHDJ'>0!+ERR D
|
---|
| 23 | . . N SUBDA,FDA,IEN,MSG
|
---|
| 24 | . . S SUBDA=$P($G(^XHD(8935.91,NEWDA,3,XHDJ,0)),U,2) Q:+SUBDA'>0
|
---|
| 25 | . . I +$P($G(^XHD(8935.91,SUBDA,0)),U,4)=NEWDA Q
|
---|
| 26 | . . S FDA(8935.91,SUBDA_",",.04)="`"_NEWDA
|
---|
| 27 | . . D FILER(.SUBERR,.FDA,SUBDA) S:+SUBERR ERR=SUBERR
|
---|
| 28 | Q
|
---|
| 29 | ADDPARAM(ERR,CATFLDS) ; Add Parameter to Category
|
---|
| 30 | N XHDI,FDA,PCDA,X S X="ONERROR^XHDPCAT",@^%ZOSF("TRAP")
|
---|
| 31 | S XHDI="",ERR=0,PCDA=+$G(CATFLDS("IEN"))
|
---|
| 32 | I $S('PCDA:1,'$D(^XHD(8935.91,PCDA,0)):1,1:0) D Q
|
---|
| 33 | . S ERR="1^Invalid ID passed."
|
---|
| 34 | L +^XHD(8935.91,PCDA):1
|
---|
| 35 | E D Q
|
---|
| 36 | . S ERR="1^Another process is modifying Category #"_PCDA
|
---|
| 37 | F S XHDI=$O(CATFLDS(XHDI)) Q:+XHDI'>0 D
|
---|
| 38 | . S FDA(8935.912,"?+1,"_PCDA_",",$P(XHDI,U,3))=CATFLDS(XHDI)
|
---|
| 39 | I $D(FDA)'>9 S ERR="1^Request not well-formed." Q
|
---|
| 40 | D UPDATER(.ERR,.FDA)
|
---|
| 41 | L -^XHD(8935.91,PCDA)
|
---|
| 42 | Q
|
---|
| 43 | UPDATER(ERR,FDA) ; Call UPDATE^DIE to create pCats or subCats
|
---|
| 44 | N IEN,MSG
|
---|
| 45 | D UPDATE^DIE("E","FDA","IEN","MSG")
|
---|
| 46 | I $D(MSG("DIERR")) S ERR="1^"_MSG("DIERR",1,"TEXT",1) Q
|
---|
| 47 | S ERR="0^"_IEN(1)_U_IEN(1,0)
|
---|
| 48 | Q
|
---|
| 49 | UPDATE(ERR,CATFLDS) ; Call FILE^DIE to update ParameterCategory
|
---|
| 50 | N XHDI,FDA,X S X="ONERROR^XHDPCAT",@^%ZOSF("TRAP")
|
---|
| 51 | S XHDI="",ERR=0,PCDA=+$G(CATFLDS("IEN"))
|
---|
| 52 | I $S('PCDA:1,'$D(^XHD(8935.91,PCDA,0)):1,1:0) D Q
|
---|
| 53 | . S ERR="1^Invalid ID passed."
|
---|
| 54 | F S XHDI=$O(CATFLDS(XHDI)) Q:+XHDI'>0 D
|
---|
| 55 | . S FDA($$GETFILE(XHDI),$$GETUPIEN(PCDA,XHDI),$$GETORI(XHDI))=CATFLDS(XHDI)
|
---|
| 56 | I $D(FDA)'>9 S ERR="1^Request not well-formed." Q
|
---|
| 57 | D UPDATER(.ERR,.FDA)
|
---|
| 58 | Q
|
---|
| 59 | REMPARAM(ERR,PDEF,PCDA) ; Remove Parameter from Category
|
---|
| 60 | N XHDSDA,XHDI,FDA,X S X="ONERROR^XHDPCAT",@^%ZOSF("TRAP")
|
---|
| 61 | S XHDI="",ERR=0
|
---|
| 62 | I $S('+$G(PCDA):1,'$D(^XHD(8935.91,PCDA,0)):1,1:0) D Q
|
---|
| 63 | . S ERR="1^Invalid ID passed."
|
---|
| 64 | S XHDSDA=$O(^XHD(8935.91,PCDA,2,"C",PDEF,0))
|
---|
| 65 | I +XHDSDA S FDA(8935.912,XHDSDA_","_PCDA_",",.01)="@"
|
---|
| 66 | I $D(FDA)'>9 S ERR="1^Parameter "_PDEF_" not found in Category "_PCDA_"." Q
|
---|
| 67 | D FILER(.ERR,.FDA,PCDA)
|
---|
| 68 | Q
|
---|
| 69 | REMOVE(ERR,PCAT,PARENT) ; Remove Parameter Category from parent
|
---|
| 70 | N XHDSDA,FDA,X S XHDSDA=0,X="ONERROR^XHDPCAT",@^%ZOSF("TRAP")
|
---|
| 71 | ; remove reference to parent
|
---|
| 72 | S FDA(8935.91,PCAT_",",.04)="@"
|
---|
| 73 | ; remove PCAT from parent's subCat multiple
|
---|
| 74 | S XHDSDA=$O(^XHD(8935.91,PARENT,3,"C",PCAT,0))
|
---|
| 75 | I +XHDSDA S FDA(8935.913,XHDSDA_","_PARENT_",",.01)="@"
|
---|
| 76 | I $D(FDA)'>9 S ERR="1^Sub-category not found in Parent Category." Q
|
---|
| 77 | D FILER(.ERR,.FDA,PARENT)
|
---|
| 78 | Q
|
---|
| 79 | DELETE(ERR,PCAT,DELKIDS) ; Delete Parameter Category and all descendents
|
---|
| 80 | N X,FDA,PARENT S X="ONERROR^XHDPCAT",@^%ZOSF("TRAP"),ERR=0
|
---|
| 81 | ; if DELKIDS, remove descendents first
|
---|
| 82 | I +$G(DELKIDS) D Q:+ERR
|
---|
| 83 | . N XHDI S XHDI=0
|
---|
| 84 | . F S XHDI=$O(^XHD(8935.91,PCAT,3,XHDI)) Q:+XHDI'>0!+ERR D
|
---|
| 85 | . . N XHDSDA S XHDSDA=$P($G(^XHD(8935.91,PCAT,3,XHDI,0)),U,2)
|
---|
| 86 | . . I '+XHDSDA S ERR="1^Corrupt Sub-category at PCat #"_PCAT_", seq #"_XHDI Q
|
---|
| 87 | . . D DELETE(.ERR,XHDSDA,1)
|
---|
| 88 | ;Remove the sub-category from its parent prior to deletion
|
---|
| 89 | S PARENT=$P($G(^XHD(8935.91,PCAT,0)),U,4)
|
---|
| 90 | I +PARENT D REMOVE(.ERR,PCAT,PARENT)
|
---|
| 91 | ; delete record
|
---|
| 92 | S FDA(8935.91,PCAT_",",.01)="@"
|
---|
| 93 | I $D(FDA)'>9 S ERR="1^Request not well-formed." Q
|
---|
| 94 | D FILER(.ERR,.FDA,PCAT)
|
---|
| 95 | Q
|
---|
| 96 | FILER(ERR,FDA,XHDDA) ; Call FILE^DIE with FDA to post changes
|
---|
| 97 | I $D(FDA)'>9 S ERR="1^Request not well-formed." Q
|
---|
| 98 | L +^XHD(8935.91,XHDDA):1
|
---|
| 99 | E D Q
|
---|
| 100 | . S ERR="1^Another process is modifying Category #"_XHDDA
|
---|
| 101 | D FILE^DIE("E","FDA","MSG")
|
---|
| 102 | L -^XHD(8935.91,XHDDA)
|
---|
| 103 | I $D(MSG("DIERR")) S ERR="1^"_MSG("DIERR",1,"TEXT",1) Q
|
---|
| 104 | S ERR="0^"_XHDDA
|
---|
| 105 | Q
|
---|
| 106 | ONERROR ; Trap errors
|
---|
| 107 | S ERR="1^"_$TR($$EC^%ZOSV,"^","~")
|
---|
| 108 | D ^%ZTER
|
---|
| 109 | Q
|
---|
| 110 | GETUPIEN(PCDA,XHDI) ; Get IENS for UPDATE call
|
---|
| 111 | Q $S($L(XHDI,U)=3:"?+"_$P(XHDI,U,2)_","_PCDA_",",1:PCDA_",")
|
---|
| 112 | GETFILE(XHDI) ; Get first subscript for FDA
|
---|
| 113 | Q $S($P(XHDI,U)=2:8935.912,$P(XHDI,U)=3:8935.913,1:8935.91)
|
---|
| 114 | GETIENS(XHDI) ; Get IENS for UPDATE^DIE call
|
---|
| 115 | I $L(XHDI,U)=3 D
|
---|
| 116 | . S LASTI=LASTI+$S($P(XHDI,U)'=LASTS:1,$P(XHDI,U,2)'=LASTN:1,1:0)
|
---|
| 117 | . S LASTS=$P(XHDI,U),LASTN=$P(XHDI,U,2)
|
---|
| 118 | Q $S($L(XHDI,U)=3:"?+"_LASTI_",?+1,",1:"?+1,")
|
---|
| 119 | GETORI(XHDI) ; Get field subscript for FDA
|
---|
| 120 | Q $S($L(XHDI,U)=3:$P(XHDI,U,3),1:XHDI)
|
---|