| [613] | 1 | MDRPCOR ; HOIFO/DP - Object RPCs (TMDRecordId) ; [01-10-2003 09:14]
 | 
|---|
 | 2 |  ;;1.0;CLINICAL PROCEDURES;;Apr 01, 2004
 | 
|---|
 | 3 |  ; Description:
 | 
|---|
 | 4 |  ; This routine manages both the MDVCL components and
 | 
|---|
 | 5 |  ; the TMDRecordID object
 | 
|---|
 | 6 |  ;
 | 
|---|
 | 7 |  ; Integration Agreements:
 | 
|---|
 | 8 |  ; IA# 3568 [Private] TIUCP call.
 | 
|---|
 | 9 |  ; IA# 3266 [Subscription] Calls to DPTLK1
 | 
|---|
 | 10 |  ; IA# 3267 [Subscription] Call to DPTLK1
 | 
|---|
 | 11 |  ; IA# 10104 [Public] Call to XLFSTR
 | 
|---|
 | 12 |  ;
 | 
|---|
 | 13 | CHANGES ; [Procedure] Returns number of changes to save
 | 
|---|
 | 14 |  S MDCHNG=0,(MDDD,MDIENS)=""
 | 
|---|
 | 15 |  F  S MDDD=$O(^TMP("MDFDA",$J,MDDD)) Q:MDDD=""  D
 | 
|---|
 | 16 |  .Q:$E(MDDD,1,$L(DD))'=DD  ; Not even the right DD
 | 
|---|
 | 17 |  .F  S MDIENS=$O(^TMP("MDFDA",$J,MDDD,MDIENS)) Q:MDIENS=""  D
 | 
|---|
 | 18 |  ..Q:$E(MDIENS,$L(MDIENS)-$L(IENS)+1,$L(MDIENS))'=IENS
 | 
|---|
 | 19 |  ..F FLD=0:0 S FLD=$O(^TMP("MDFDA",$J,MDDD,MDIENS,FLD)) Q:'FLD  D
 | 
|---|
 | 20 |  ...S MDCHNG=MDCHNG+1
 | 
|---|
 | 21 |  S @RESULTS@(0)=MDCHNG_"^Changes to Save"
 | 
|---|
 | 22 |  Q
 | 
|---|
 | 23 |  ;
 | 
|---|
 | 24 | CHKVER ; [Procedure] 
 | 
|---|
 | 25 |  S @RESULTS@(0)=+$G(DATA)'<1
 | 
|---|
 | 26 |  Q
 | 
|---|
 | 27 |  ;
 | 
|---|
 | 28 | CLEARFDA ; [Procedure] Discards changes in the FDA
 | 
|---|
 | 29 |  S MDFDA=$NA(^TMP("MDFDA",$J))
 | 
|---|
 | 30 |  F  S MDFDA=$Q(@MDFDA) Q:MDFDA=""  Q:$QS(MDFDA,2)'=$J  D
 | 
|---|
 | 31 |  .S MDDD=$QS(MDFDA,3),MDIENS=$QS(MDFDA,4)
 | 
|---|
 | 32 |  .I MDIENS'?@(".E1"""_IENS_"""") Q
 | 
|---|
 | 33 |  .I MDDD'?@("1"""_DD_""".E") Q
 | 
|---|
 | 34 |  .K ^TMP("MDFDA",$J,MDDD,MDIENS)
 | 
|---|
 | 35 |  S @RESULTS@(0)="1^FDA CLEARED"
 | 
|---|
 | 36 |  Q
 | 
|---|
 | 37 |  ;
 | 
|---|
 | 38 | DELREC ; [Procedure] Delete a fileman record
 | 
|---|
 | 39 |  D VAL^DIE(DD,IENS,.01,"FR","@",.MDRET,"MDDEL","MDERR")
 | 
|---|
 | 40 |  I MDRET="^" D ERROR^MDRPCU($NA(^TMP($J)),.MDERR) Q
 | 
|---|
 | 41 |  D FILE^DIE("","MDDEL","MDERR")
 | 
|---|
 | 42 |  I $D(MDERR) D ERROR^MDRPCU($NA(^TMP($J)),.MDERR) Q
 | 
|---|
 | 43 |  D RPC(.X,"CLEARFDA",DD,IENS)
 | 
|---|
 | 44 |  S @RESULTS@(0)="1^Record Deleted"
 | 
|---|
 | 45 |  Q
 | 
|---|
 | 46 |  ;
 | 
|---|
 | 47 | DT ; [Procedure] Convert date/time via %DT
 | 
|---|
 | 48 |  S DATA=$G(DATA,"NOW^TS")
 | 
|---|
 | 49 |  S X=$P(DATA,U,1),%DT=$P(DATA,U,2)
 | 
|---|
 | 50 |  D ^%DT
 | 
|---|
 | 51 |  I Y<1 S @RESULTS@(0)=Y_U_"Invalid date/time input '"_X_"'"
 | 
|---|
 | 52 |  E  S @RESULTS@(0)=1_U_Y D DD^%DT S $P(@RESULTS@(0),U,3)=Y
 | 
|---|
 | 53 |  Q
 | 
|---|
 | 54 |  ;
 | 
|---|
 | 55 | EXISTS ; [Procedure] Verify that a record exists
 | 
|---|
 | 56 |  S X=$$ROOT^DILFD(DD,IENS)
 | 
|---|
 | 57 |  S @RESULTS@(0)=$D(@(X_(+IENS)_",0)"))
 | 
|---|
 | 58 |  Q
 | 
|---|
 | 59 |  ;
 | 
|---|
 | 60 | FILENAME ; [Procedure] Return a filename
 | 
|---|
 | 61 |  I $$VFILE^DILFD(DD) S @RESULTS@(0)="1^"_$$GET1^DID(DD,"","","NAME")
 | 
|---|
 | 62 |  E  S @RESULTS@(0)="-1^Not a valid file #"
 | 
|---|
 | 63 |  Q
 | 
|---|
 | 64 |  ;
 | 
|---|
 | 65 | GETCODES ; [Procedure] Returns set of codes
 | 
|---|
 | 66 |  S MDTYPE=$$GET1^DID(DD,FLD,"","TYPE","","MDERR")
 | 
|---|
 | 67 |  I $D(MDERR) D ERROR^MDRPCU($NA(^TMP($J)),.MDERR) Q
 | 
|---|
 | 68 |  D:MDTYPE="SET"
 | 
|---|
 | 69 |  .S MDSET=$$GET1^DID(DD,FLD,"","POINTER")
 | 
|---|
 | 70 |  .F X=1:1:$L(MDSET,";")-1 D
 | 
|---|
 | 71 |  ..S @RESULTS@(X)=$P(MDSET,";",X)
 | 
|---|
 | 72 |  .S @RESULTS@(0)=+$O(@RESULTS@(""),-1)_"^Set of Codes"
 | 
|---|
 | 73 |  D:MDTYPE="POINTER"
 | 
|---|
 | 74 |  .S MDPTR=$$GET1^DID(DD,FLD,"","POINTER")
 | 
|---|
 | 75 |  .F X=0:0 S X=$O(@(U_MDPTR_"X)")) Q:'X  D
 | 
|---|
 | 76 |  ..S Y=$O(@RESULTS@(""),-1)+1
 | 
|---|
 | 77 |  ..S @RESULTS@(Y)="`"_X_":"_$P(@(U_MDPTR_"X,0)"),U,1)
 | 
|---|
 | 78 |  .S @RESULTS@(0)=+$O(@RESULTS@(""),-1)_"^Pointers as set of codes"
 | 
|---|
 | 79 |  Q
 | 
|---|
 | 80 |  ;
 | 
|---|
 | 81 | GETDATA ; [Procedure] Returns data for a field
 | 
|---|
 | 82 |  I $$GET1^DID(DD,FLD,"","TYPE")["WORD" D  Q
 | 
|---|
 | 83 |  .I $D(^TMP("MDFDA",$J,DD,IENS,FLD)) M ^TMP($J)=^TMP("MDFDA",$J,DD,IENS,FLD)
 | 
|---|
 | 84 |  .E  S X=$$GET1^DIQ(DD,IENS,FLD,"",$NA(^TMP($J)))
 | 
|---|
 | 85 |  .S @RESULTS@(0)=+$O(@RESULTS@(""),-1)
 | 
|---|
 | 86 |  I $D(^TMP("MDFDA",$J,DD,IENS,FLD)) S Y=^(FLD) D  Q
 | 
|---|
 | 87 |  .I $G(DATA) S @RESULTS@(0)=Y Q  ; Internal Format
 | 
|---|
 | 88 |  .S @RESULTS@(0)=$$EXTERNAL^DILFD(DD,FLD,"",Y)
 | 
|---|
 | 89 |  S @RESULTS@(0)=$$GET1^DIQ(DD,IENS,FLD,$S($G(DATA):"I",1:""))
 | 
|---|
 | 90 |  Q
 | 
|---|
 | 91 |  ;
 | 
|---|
 | 92 | GETHELP ; [Procedure] Returns fileman help
 | 
|---|
 | 93 |  D HELP^DIE(DD,IENS,FLD,"D")
 | 
|---|
 | 94 |  D:'$O(^TMP("DIHELP",$J,0)) HELP^DIE(DD,IENS,FLD,"A")
 | 
|---|
 | 95 |  I '$O(^TMP("DIHELP",$J,0)) D  Q
 | 
|---|
 | 96 |  .S @RESULTS@(0)=1
 | 
|---|
 | 97 |  .S @RESULTS@(1)="SORRY: No help available"
 | 
|---|
 | 98 |  M ^TMP($J)=^TMP("DIHELP",$J)
 | 
|---|
 | 99 |  S @RESULTS@(0)=+$O(@RESULTS@(""),-1)
 | 
|---|
 | 100 |  Q
 | 
|---|
 | 101 |  ;
 | 
|---|
 | 102 | GETIDS ; [Procedure] Returns list of required ID's
 | 
|---|
 | 103 |  D FILE^DID(DD,"","REQUIRED IDENTIFIERS;NAME;ENTRIES","MDRET")
 | 
|---|
 | 104 |  S X=$NA(MDRET("REQUIRED IDENTIFIERS",0))
 | 
|---|
 | 105 |  F  S X=$Q(@X) Q:X=""  D
 | 
|---|
 | 106 |  .S Y=$O(@RESULTS@(""),-1)+1
 | 
|---|
 | 107 |  .S @RESULTS@(Y)=@X_U_$$GET1^DID(DD,@X,"","LABEL")_U_$$GET1^DID(DD,@X,"","TYPE")
 | 
|---|
 | 108 |  S @RESULTS@(0)=+$O(@RESULTS@(""),-1)_U_MDRET("NAME")_U_MDRET("ENTRIES")
 | 
|---|
 | 109 |  Q
 | 
|---|
 | 110 |  ;
 | 
|---|
 | 111 | GETLABEL ; [Procedure] Get field label/title
 | 
|---|
 | 112 |  S MDLBL=$$GET1^DID(DD,FLD,"",$S($G(DATA):"TITLE",1:"LABEL"))
 | 
|---|
 | 113 |  S:$G(DATA)&(MDLBL="") MDLBL=$$GET1^DID(DD,FLD,"","LABEL")
 | 
|---|
 | 114 |  S @RESULTS@(0)=MDLBL_":"
 | 
|---|
 | 115 |  Q
 | 
|---|
 | 116 |  ;
 | 
|---|
 | 117 | GETLST ; [Procedure] Get list of records
 | 
|---|
 | 118 |  S IENS=$G(IENS),FLD=$G(FLD,"@;.01")
 | 
|---|
 | 119 |  S:$P(FLD,";",1)'="@" FLD="@;"_FLD
 | 
|---|
 | 120 |  D LIST^DIC(DD,IENS,FLD,"P",,,,,$G(DATA))
 | 
|---|
 | 121 |  F X=0:0 S X=$O(^TMP("DILIST",$J,X))  Q:'X  D
 | 
|---|
 | 122 |  .S @RESULTS@(X)=DD_";"_^TMP("DILIST",$J,X,0)
 | 
|---|
 | 123 |  S @RESULTS@(0)=+$O(@RESULTS@(""),-1)
 | 
|---|
 | 124 |  F X=2:1 Q:$P(^TMP("DILIST",$J,0,"MAP"),U,X)=""  D
 | 
|---|
 | 125 |  .S @RESULTS@(0)=@RESULTS@(0)_U_$$GET1^DID(DD,$P(^TMP("DILIST",$J,0,"MAP"),U,X),"","LABEL")
 | 
|---|
 | 126 |  Q
 | 
|---|
 | 127 |  ;
 | 
|---|
 | 128 | LOCK ; [Procedure] Lock a record
 | 
|---|
 | 129 |  D LOCK^MDRPCU(.RESULTS,DD,IENS) Q
 | 
|---|
 | 130 |  ;
 | 
|---|
 | 131 | LOOKUP ; [Procedure] Lookup on a DD
 | 
|---|
 | 132 |  I DD=2 D RPC(.RESULTS,"PTLKUP",DD,,,DATA) Q
 | 
|---|
 | 133 |  D FIND^DIC(DD,IENS,.01,"P",DATA)
 | 
|---|
 | 134 |  F X=0:0 S X=$O(^TMP("DILIST",$J,X)) Q:'X  D
 | 
|---|
 | 135 |  .S @RESULTS@(X)=DD_";"_$P(^TMP("DILIST",$J,X,0),U,1,2)
 | 
|---|
 | 136 |  I '$D(^TMP($J)) S @RESULTS@(0)="-1^No entries found matching '"_DATA_"'"
 | 
|---|
 | 137 |  E  S @RESULTS@(0)=+$O(@RESULTS@(""),-1)
 | 
|---|
 | 138 |  Q
 | 
|---|
 | 139 |  ;
 | 
|---|
 | 140 | NEWIEN ; [Procedure] Return next available IEN
 | 
|---|
 | 141 |  S @RESULTS@(0)=$O(@($$ROOT^DILFD(DD,$G(IENS))_"""A"")"),-1)+1
 | 
|---|
 | 142 |  Q
 | 
|---|
 | 143 |  ;
 | 
|---|
 | 144 | NEWREC ; [Procedure] Create a new record
 | 
|---|
 | 145 |  I $G(DATA)]"" D  Q:MDRET="^"
 | 
|---|
 | 146 |  .D VAL^DIE(DD,"+1,"_IENS,$P(DATA,U,1),"F",$P(DATA,U,2,250),.MDRET,"MDNEW","MDERR")
 | 
|---|
 | 147 |  .I MDRET="^" D ERROR^MDRPCU($NA(^TMP($J)),.MDERR)
 | 
|---|
 | 148 |  S MDTMP="DATA"
 | 
|---|
 | 149 |  F  S MDTMP=$Q(@MDTMP) Q:MDTMP=""  D  Q:MDRET="^"
 | 
|---|
 | 150 |  .D VAL^DIE(DD,"+1,"_IENS,$P(@MDTMP,U,1),"F",$P(@MDTMP,U,2,250),.MDRET,"MDNEW","MDERR")
 | 
|---|
 | 151 |  .I MDRET="^" D ERROR^MDRPCU($NA(^TMP($J)),.MDERR)
 | 
|---|
 | 152 |  D:$D(MDNEW) UPDATE^DIE("","MDNEW","MDIEN")
 | 
|---|
 | 153 |  S @RESULTS@(0)=$G(MDIEN(1),"-1^Unable to create record")
 | 
|---|
 | 154 |  Q
 | 
|---|
 | 155 |  ;
 | 
|---|
 | 156 | PTLKUP ; [Procedure] Patient lookup handled separately for security
 | 
|---|
 | 157 |  D FIND^DIC(2,,"@;.01;.02;.03;.09","MP",DATA,45)
 | 
|---|
 | 158 |  I $P($G(^TMP("DILIST",$J,0)),U,3) D  Q
 | 
|---|
 | 159 |  .S @RESULTS@(0)="-1^Too many entries found matching '"_DATA_"', please be more specific."
 | 
|---|
 | 160 |  F MDX=0:0 S MDX=$O(^TMP("DILIST",$J,MDX)) Q:'MDX  D
 | 
|---|
 | 161 |  .S @RESULTS@(MDX)="2;"_$P(^TMP("DILIST",$J,MDX,0),U,1,5)
 | 
|---|
 | 162 |  .S MDIENS=+^TMP("DILIST",$J,MDX,0)_","
 | 
|---|
 | 163 |  .S $P(@RESULTS@(MDX),U,3)=$$GET1^DIQ(2,MDIENS,.02,"I")
 | 
|---|
 | 164 |  .S $P(@RESULTS@(MDX),U,4)=$$GET1^DIQ(2,MDIENS,.03,"I")
 | 
|---|
 | 165 |  .S $P(@RESULTS@(MDX),U,10)=$$DOB^DPTLK1(+MDIENS)
 | 
|---|
 | 166 |  .S $P(@RESULTS@(MDX),U,11)=$$SSN^DPTLK1(+MDIENS)
 | 
|---|
 | 167 |  I '$D(^TMP($J)) S @RESULTS@(0)="-1^No entries found matching '"_DATA_"'"
 | 
|---|
 | 168 |  E  S @RESULTS@(0)=+$O(@RESULTS@(""),-1)
 | 
|---|
 | 169 |  Q
 | 
|---|
 | 170 |  ;
 | 
|---|
 | 171 | PTRLKUP ; [Procedure] Lookup a pointer field
 | 
|---|
 | 172 |  S PTRDD=+$P($$GET1^DID(DD,FLD,"","SPECIFIER"),"P",2)
 | 
|---|
 | 173 |  I PTRDD=8925.1 D  Q  ; Handle TIU Note lookup with TIU API
 | 
|---|
 | 174 |  .S DATA=$$UP^XLFSTR(DATA)
 | 
|---|
 | 175 |  .D LNGCP^TIUCP(.MDRET,DATA)
 | 
|---|
 | 176 |  .I '$O(MDRET(0)) S @RESULTS@(0)=0 Q
 | 
|---|
 | 177 |  .I $D(MDRET(44)),$P($P(MDRET(44),U,2),DATA)="" S @RESULTS@(0)=0 Q
 | 
|---|
 | 178 |  .F X=0:0 S X=$O(MDRET(X)) Q:'X  D:$P($P(MDRET(X),U,2),DATA)=""
 | 
|---|
 | 179 |  ..S @RESULTS@(X)="8925.1;"_MDRET(X)
 | 
|---|
 | 180 |  .S @RESULTS@(0)=+$O(@RESULTS@(""),-1)
 | 
|---|
 | 181 |  D FIND^DIC(PTRDD,"","","PM",DATA,151,"",$G(PTRSCRN))
 | 
|---|
 | 182 |  F X=0:0 S X=$O(^TMP("DILIST",$J,X)) Q:'X  D
 | 
|---|
 | 183 |  .S @RESULTS@(X)=PTRDD_";"_^TMP("DILIST",$J,X,0)
 | 
|---|
 | 184 |  S @RESULTS@(0)=+$O(@RESULTS@(""),-1)
 | 
|---|
 | 185 |  Q
 | 
|---|
 | 186 |  ;
 | 
|---|
 | 187 | RENAME ; [Procedure] Rename a record
 | 
|---|
 | 188 |  I DATA=""!(DATA="@") S @RESULTS@(0)="-1^Deletion Not Supported" Q
 | 
|---|
 | 189 |  I $$DUPS^MDRPCU(DD,+IENS,DATA) D  Q
 | 
|---|
 | 190 |  .S @RESULTS@(0)="-1",@RESULTS@(1)="Duplicates not allowed"
 | 
|---|
 | 191 |  D VAL^DIE(DD,IENS,.01,"EFHR",DATA,.MDRET,"MDRENAME","MDERR")
 | 
|---|
 | 192 |  I MDRET="^" D ERROR^MDRPCU($NA(^TMP($J)),.MDERR) Q
 | 
|---|
 | 193 |  D FILE^DIE("","MDRENAME")
 | 
|---|
 | 194 |  S @RESULTS@(0)="1^"_MDRET(0)
 | 
|---|
 | 195 |  K ^TMP("MDFDA",$J,DD,IENS,.01) ; In case of editing
 | 
|---|
 | 196 |  Q
 | 
|---|
 | 197 |  ;
 | 
|---|
 | 198 | RPC(RESULTS,OPTION,DD,IENS,FLD,DATA) ; [Procedure] RPC call tag
 | 
|---|
 | 199 |  NEW MDCHNG,MDDD,MDDEL,MDERR,MDFDA,MDGBL,MDIENS,MDIEN,MDLBL,MDNEW,MDPTR,MDRENAME,MDRET,MDSET,MDTYPE,MDUTL,PTRDD,PTRSCRN
 | 
|---|
 | 200 |  S RESULTS=$NA(^TMP($J)) K @RESULTS
 | 
|---|
 | 201 |  D:$T(@OPTION)]"" @OPTION
 | 
|---|
 | 202 |  D:'$D(@RESULTS) BADRPC^MDRPCU("MD TMDRECORDID","MDRPCOR",OPTION)
 | 
|---|
 | 203 |  D CLEAN^DILF
 | 
|---|
 | 204 |  Q
 | 
|---|
 | 205 |  ;
 | 
|---|
 | 206 | SAVEFDA ; [Procedure] Save changes to the VistA database
 | 
|---|
 | 207 |  I DD<702!(DD>703.1999) D  Q
 | 
|---|
 | 208 |  .S @RESULTS@(0)="-1^Non CLINICAL PROCEDURES DD number space"
 | 
|---|
 | 209 |  K ^TMP("MDSAVE",$J)
 | 
|---|
 | 210 |  S MDFDA=$NA(^TMP("MDFDA",$J))
 | 
|---|
 | 211 |  F  S MDFDA=$Q(@MDFDA) Q:MDFDA=""  Q:$QS(MDFDA,2)'=$J  D
 | 
|---|
 | 212 |  .S MDDD=$QS(MDFDA,3),MDIENS=$QS(MDFDA,4)
 | 
|---|
 | 213 |  .I MDIENS'?@(".E1"""_IENS_"""") Q
 | 
|---|
 | 214 |  .I MDDD'?@("1"""_DD_""".E") Q
 | 
|---|
 | 215 |  .M ^TMP("MDSAVE",$J,MDDD,MDIENS)=^TMP("MDFDA",$J,MDDD,MDIENS)
 | 
|---|
 | 216 |  .K ^TMP("MDFDA",$J,MDDD,MDIENS)
 | 
|---|
 | 217 |  I '$D(^TMP("MDSAVE",$J)) S @RESULTS@(0)="1^No changes to save" Q
 | 
|---|
 | 218 |  D:IENS?1"+1,".NP  ; New record
 | 
|---|
 | 219 |  .D UPDATE^DIE("",$NA(^TMP("MDSAVE",$J)),"MDIEN","MDERR")
 | 
|---|
 | 220 |  .I '$D(MDERR) S @RESULTS@(0)="1^New Record Created^"_MDIEN(1) Q
 | 
|---|
 | 221 |  .D ERROR^MDRPCU($NA(^TMP($J)),.MDERR)
 | 
|---|
 | 222 |  .M ^TMP("MDFDA",$J)=^TMP("MDSAVE",$J)
 | 
|---|
 | 223 |  D:IENS'?1"+1,".NP  ; Existing record
 | 
|---|
 | 224 |  .D FILE^DIE("",$NA(^TMP("MDSAVE",$J)),"MDERR")
 | 
|---|
 | 225 |  .I '$D(MDERR) S @RESULTS@(0)="1^FDA Saved" Q
 | 
|---|
 | 226 |  .D ERROR^MDRPCU($NA(^TMP($J)),.MDERR)
 | 
|---|
 | 227 |  .M ^TMP("MDFDA",$J)=^TMP("MDSAVE",$J)
 | 
|---|
 | 228 |  K ^TMP("MDSAVE",$J)
 | 
|---|
 | 229 |  Q
 | 
|---|
 | 230 |  ;
 | 
|---|
 | 231 | SETFDA ; [Procedure] Validate data and store in FDA
 | 
|---|
 | 232 |  D VAL^DIE(DD,IENS,FLD,"F",.DATA,.MDRET,$NA(^TMP("MDFDA",$J)),"MDERR")
 | 
|---|
 | 233 |  I MDRET="^" D ERROR^MDRPCU($NA(^TMP($J)),.MDERR) Q
 | 
|---|
 | 234 |  S @RESULTS@(0)="1^FDA Set"
 | 
|---|
 | 235 |  Q
 | 
|---|
 | 236 |  ;
 | 
|---|
 | 237 | UNLOCK ; [Procedure] Unlock a record
 | 
|---|
 | 238 |  D UNLOCK^MDRPCU(.RESULTS,DD,IENS) Q
 | 
|---|
 | 239 |  ;
 | 
|---|
 | 240 | VALIDATE ; [Procedure] Validate data for a field
 | 
|---|
 | 241 |  I ($G(DATA)="@"!($G(DATA)=""))&(FLD=.01) D  Q
 | 
|---|
 | 242 |  .S @RESULTS@(0)="-1^Record Deletion Not Allowed Here."
 | 
|---|
 | 243 |  I FLD=.01 I $$DUPS^MDRPCU(DD,+IENS,DATA) D  Q
 | 
|---|
 | 244 |  .S @RESULTS@(0)="-1",@RESULTS@(1)="Duplicates not allowed"
 | 
|---|
 | 245 |  S:$G(DATA)="@" DATA=""
 | 
|---|
 | 246 |  I $$GET1^DID(DD,FLD,"","TYPE")["WORD" D  Q
 | 
|---|
 | 247 |  .S MDGBL=$NA(^TMP("MDFDA",$J,DD,IENS,FLD))
 | 
|---|
 | 248 |  .K @MDGBL
 | 
|---|
 | 249 |  .I $O(DATA(""))="" S @MDGBL="@",@RESULTS@(0)="1^OK" Q
 | 
|---|
 | 250 |  .I $O(DATA(""),-1)=1&($G(DATA(1)))="" S @MDGBL="@",@RESULTS@(0)="1^OK" Q
 | 
|---|
 | 251 |  .S X=""  F  S X=$O(DATA(X)) Q:X=""  D
 | 
|---|
 | 252 |  ..S Y=$O(@MDGBL@(""""),-1)+1
 | 
|---|
 | 253 |  ..S @MDGBL@(Y)=DATA(X)
 | 
|---|
 | 254 |  .S @MDGBL=$NA(^TMP("MDSAVE",$J,DD,IENS,FLD))
 | 
|---|
 | 255 |  .S RESULTS(0)="1^WP"
 | 
|---|
 | 256 |  D VAL^DIE(DD,IENS,FLD,"EF",$G(DATA),.MDRET,$NA(^TMP("MDFDA",$J)),"MDERR")
 | 
|---|
 | 257 |  I MDRET="^" D ERROR^MDRPCU($NA(^TMP($J)),.MDERR) Q
 | 
|---|
 | 258 |  S @RESULTS@(0)="1^"_MDRET(0)
 | 
|---|
 | 259 |  Q
 | 
|---|
 | 260 |  ;
 | 
|---|