[796] | 1 | TMGDELPT ;TMG/kst/Low-level Patient Deletion Utilities ;08/13/08
|
---|
| 2 | ;;1.0;TMG-LIB;**1**;08/12/08
|
---|
| 3 |
|
---|
| 4 |
|
---|
| 5 | DelPt
|
---|
| 6 | ;"Purpose: to try to safely delete a patient
|
---|
| 7 | ;"NOTICE: Deleting could be a violation of laws regulating the maintanance
|
---|
| 8 | ;" of patient records. I.e. if you delete who a patient is, then
|
---|
| 9 | ;" you destroy all records associated with that patient.
|
---|
| 10 | ;" SO, only delete a patient if you are sure that you what you are
|
---|
| 11 | ;" doing, and are sure that you are not causing perminant injury!
|
---|
| 12 |
|
---|
| 13 | new DFN,DIC,X,Y,PtIEN
|
---|
| 14 | Loop1
|
---|
| 15 | set DIC=2,DIC(0)="MAEQ"
|
---|
| 16 | do ^DIC write !
|
---|
| 17 | if +Y=-1 do goto DPDone
|
---|
| 18 | . write "Goodbye.",!
|
---|
| 19 | set PtIEN=+Y
|
---|
| 20 |
|
---|
| 21 | do DelOne(PtIEN,0)
|
---|
| 22 |
|
---|
| 23 | write "Delete another patient (caution!)" do YN^DICN write !
|
---|
| 24 | if %=1 goto Loop1
|
---|
| 25 | quit
|
---|
| 26 |
|
---|
| 27 |
|
---|
| 28 | DelOne(PtIEN,Quiet)
|
---|
| 29 | ;"Purpose: to try to safely delete a patient
|
---|
| 30 | ;"NOTICE: Deleting could be a violation of laws regulating the maintanance
|
---|
| 31 | ;" of patient records. I.e. if you delete who a patient is, then
|
---|
| 32 | ;" you destroy all records associated with that patient.
|
---|
| 33 | ;" SO, only delete a patient if you are sure that you what you are
|
---|
| 34 | ;" doing, and are sure that you are not causing perminant injury!
|
---|
| 35 | ;"Input: PtIEN -- the IEN in file 2
|
---|
| 36 | ;" Quiet -- OPTIONAL. If 1, then user is not prompted.
|
---|
| 37 | ;
|
---|
| 38 | set Quiet=+$get(Quiet,0)
|
---|
| 39 | new PtrsIn
|
---|
| 40 | new File,Field,A,GL,Q,ERR
|
---|
| 41 | set Qt="""",ERR=0,File=0
|
---|
| 42 | for SET File=$O(^DD(2,0,"PT",File)) quit:'File do
|
---|
| 43 | . SET Field=0
|
---|
| 44 | . for S Field=$O(^DD(2,0,"PT",File,Field)) quit:'Field do
|
---|
| 45 | . . SET K=0
|
---|
| 46 | . . for S K=$O(^DD(File,+Field,1,K)) quit:'K DO
|
---|
| 47 | . . . SET A=$G(^DD(File,+Field,1,K,0))
|
---|
| 48 | . . . if '$L($P(A,U,2)) quit
|
---|
| 49 | . . . if $L($P(A,U,3)) quit
|
---|
| 50 | . . . set GL=$G(^DIC(+File,0,"GL"))
|
---|
| 51 | . . . quit:'$L(GL)
|
---|
| 52 | . . . set GL=GL_Qt_$P(A,U,2)_Qt_","_PtIEN_")"
|
---|
| 53 | . . . if $D(@GL) D
|
---|
| 54 | . . . . new IEN set IEN=$O(@GL@(""))
|
---|
| 55 | . . . . set PtrsIn(File,IEN)=""
|
---|
| 56 |
|
---|
| 57 | set File="",Field=""
|
---|
| 58 | for set File=$order(PtrsIn(File)) quit:(File="") do
|
---|
| 59 | . set IEN=""
|
---|
| 60 | . for set IEN=$order(PtrsIn(File,IEN)) quit:(IEN="") do
|
---|
| 61 | . . if Quiet'=1 do
|
---|
| 62 | . . . write "Entry #",IEN," in file ",$piece($get(^DIC(File,0)),"^",1)," (",File,") "
|
---|
| 63 | . . . write "points to this patient.",!
|
---|
| 64 | . . new % set %=2
|
---|
| 65 | . . if Quiet=1 set %=1
|
---|
| 66 | . . else write "Delete this entry" do YN^DICN write !
|
---|
| 67 | . . if %'=1 quit
|
---|
| 68 | . . new TMGFDA,TMGMSG
|
---|
| 69 | . . set TMGFDA(File,IEN_",",.01)="@"
|
---|
| 70 | . . do FILE^DIE("","TMGFDA","TMGMSG")
|
---|
| 71 | . . do ShowIfDIERR^TMGDEBUG(.TMGMSG)
|
---|
| 72 |
|
---|
| 73 | new % set %=2
|
---|
| 74 | if Quiet=1 set %=1
|
---|
| 75 | else write "Delete ",$piece(Y,"^",2) do YN^DICN write !
|
---|
| 76 | if %'=1 goto DPDone
|
---|
| 77 |
|
---|
| 78 | new TMGFDA,TMGMSG
|
---|
| 79 | set TMGFDA(2,PtIEN_",",.01)="@"
|
---|
| 80 | do FILE^DIE("","TMGFDA","TMGMSG")
|
---|
| 81 | do ShowIfDIERR^TMGDEBUG(.TMGMSG)
|
---|
| 82 |
|
---|
| 83 | DPDone
|
---|
| 84 | quit
|
---|
| 85 |
|
---|
| 86 |
|
---|
| 87 |
|
---|
| 88 | TempDel
|
---|
| 89 | ;"Purpose: to delete all TMG-* named patients (testing only...)
|
---|
| 90 |
|
---|
| 91 | new IEN,name
|
---|
| 92 | set name=""
|
---|
| 93 | for set name=$order(^DPT("B",name)) quit:(name="") do
|
---|
| 94 | . if 'name["TMG-" quit
|
---|
| 95 | . set IEN=$order(^DPT("B",name,""))
|
---|
| 96 | . write "Deleting: ",name,"..."
|
---|
| 97 | . do DelOne(IEN,1)
|
---|
| 98 | . write !
|
---|
| 99 |
|
---|
| 100 | quit |
---|